By: sp (no.delete@this.thanks.com), October 19, 2006 1:05 am
Room: Moderated Discussions
Foo_ (foo@mail.com) on 10/18/06 wrote:
>Why don't you try Python?
>Python is a highly dynamic language, much more flexible and >less verbose than Java.
I'm a happy python user as well. One of the absolute joys of my job is that we're explicitly mandated to use the technology we feel makes most sense to solve our clients problems - so long as it does solve them. Given the level of trust in our choices we actually tend to step quite carefully. I find python absolutely great for interative work. Its often fast enough (esp. with scipy/numpy). I use ipython and a whole mess of useful libraries like matplotlib. If I output c/c++ then yes, as you note, I can get those fast functions when required. That's a very static process though, and requires a c compiler installed on the client machines in addition to python+libs. One attraction of the virtual machines with jit compilers, be they java or c# or lisp implementations like sbcl/cmucl, is that I can generate specialized routines on the fly. That, for hairier problems, is becoming more and more attractive I must say.
As is the ability to add type annotations to encode some of the more important information we know and have it mechanically checked. So I hope python 3000 does add this optional feature.
Actually given lisp's optional static typing information to augment the type inference some compilers perform it is, as one poster noted, becoming a compelling platform again. I'd use Allegro lisp if the license costs for development and deployment of parallel applications were a bit more "sane" (ie. more aligned with my expectations). It is extremely hard to justify their costs despite the quality of the software. Why you might ask? Well its sufficiently expensive where competitive bids for external software development projects become rather uncompetitive. For internal software projects, that are intended to become products, its not clear to me that its the best use of my team's budget. I can hire a couple of very good Objective Caml guys instead, which is a nice advantage for the team all on its own.. in my experience, even if we don't use the language!
However, I always get back to a core problem that none of the above, unless I use the escape hatch to C or Fortran, really give me access to optimizations with loop transformations and code generation to exploit the vector units, often they don't make great use of prefetch, and so on.
(I suppose if life was too easy I'd complain it was boring ;-)
>Why don't you try Python?
>Python is a highly dynamic language, much more flexible and >less verbose than Java.
I'm a happy python user as well. One of the absolute joys of my job is that we're explicitly mandated to use the technology we feel makes most sense to solve our clients problems - so long as it does solve them. Given the level of trust in our choices we actually tend to step quite carefully. I find python absolutely great for interative work. Its often fast enough (esp. with scipy/numpy). I use ipython and a whole mess of useful libraries like matplotlib. If I output c/c++ then yes, as you note, I can get those fast functions when required. That's a very static process though, and requires a c compiler installed on the client machines in addition to python+libs. One attraction of the virtual machines with jit compilers, be they java or c# or lisp implementations like sbcl/cmucl, is that I can generate specialized routines on the fly. That, for hairier problems, is becoming more and more attractive I must say.
As is the ability to add type annotations to encode some of the more important information we know and have it mechanically checked. So I hope python 3000 does add this optional feature.
Actually given lisp's optional static typing information to augment the type inference some compilers perform it is, as one poster noted, becoming a compelling platform again. I'd use Allegro lisp if the license costs for development and deployment of parallel applications were a bit more "sane" (ie. more aligned with my expectations). It is extremely hard to justify their costs despite the quality of the software. Why you might ask? Well its sufficiently expensive where competitive bids for external software development projects become rather uncompetitive. For internal software projects, that are intended to become products, its not clear to me that its the best use of my team's budget. I can hire a couple of very good Objective Caml guys instead, which is a nice advantage for the team all on its own.. in my experience, even if we don't use the language!
However, I always get back to a core problem that none of the above, unless I use the escape hatch to C or Fortran, really give me access to optimizations with loop transformations and code generation to exploit the vector units, often they don't make great use of prefetch, and so on.
(I suppose if life was too easy I'd complain it was boring ;-)