Productivity in a programmer is not particularly strongly tied to the language used though. And Lisp, while powerful for certain tasks, is most certainly not the most productive choice for many applications. Sure, if you want to write AI routines, it'll be hard to beat, but how often do you actually do that? Most of the programming I do would be much better done in Python. Sadly I'm forced to use Rapid (a FORTRAN like robot control language with no OO or functional support at all), VB.NET and to some extent C#.NET. The main reason being device support (ABB robots only work with Rapid) and ability to interoperate with other programmers on projects (hardly anyone knows Python).
In addition, it's a lot harder to make GUI's quickly in Python than in the .NET languages, and it's much harder to make easy to deploy executables. In practice this means a lot more to our productivity than the power of the language itself, and I don't doubt that is generally true of most environments where productivity actually matters (which is fewer places than one might envision).
That said, learning more languages and particularly more paradigms is going to help your productivity immensely. Getting a good, solid understanding of functional programming by using Lisp will make your Python development much more efficient, for example.
AI is a pretty broad field, and Lisp does excel at it, but of course it's got lots of use outside of that. However, it's hampered by a rather unwieldy syntax when working with many common tasks. Of course, that's true of C++ as well, and it's doing well in the mainstream (don't ask me how, I have no clue) so maybe it's no real obstacle.
For server and servlet programming the GUI and deployment side of things don't matter much, this is true. And the stream/list nature of Lisp may very well be rather productive there. Would be interesting to hear about your experiences if you give Lisp a solid try in these applications. I admit I've never looked much at it. For that kind of applications I've worked mostly in Java, Smalltalk and scripting, although at times I've been forced to implement VB6 solutions *shudders at thought*.
"And the stream/list nature of Lisp may very well be rather productive there."
yeah, i expect it will -- most of my server side work seems to be data driven and stream oriented.
Its funny how in Graham's article on blub (or maybe it was a different one) he uses a litmus test involving writing an accumulator with closures.
Sorry, no citation for that, but I've read it in several places on the internet so it must be true.
revenge of the nerds. http://www.paulgraham.com/icad.html
just read it.
that's just really unfair to python -- the fact that it doesn't have lexical closures is probably it's #1
a major problem with js is not just the language itself, but also the implementations -- shoddy error reporting and inconsistencies.
2008-07-03 03:28 am (UTC)
2008-07-02 08:58 am (UTC)
For a bunch of reasons, I've been thinking of poking around with Ruby, this might just have been the tipping point.
2008-07-02 07:19 pm (UTC)
Re: Very interesting
good for you. there are things i miss about ruby even though i have never used it :) the lack of distinction between callable and non-callable attributes is the primary one.
I've heard good things about O'Caml. Its supposed to have decent library support (at least compared to Haskell) which is ironic because O'Caml was supposed to be a more academic language than Haskell (or so I've heard).
I'm not yet sold on lisp. I know that companies like Orbitz use it in their super complex systems but it always seemed to me that they were good because they just happened to be really smart programmers who just happened to like lisp a lot rather than because of any productivity gain with lisp (if you read the blurb they wrote about using lisp, they had to leave out some of the features that make lisp attractive like closures and macros for performance reasons). And also, the reddit guys rewrote their app but I guess you already knew that.
oh, i think learning any of ocaml/haskell/ml/lisp/scheme is vastly better than learning none of them. i say pick any one of those and run with it!
2008-08-17 10:03 pm (UTC)
Popular = bad?
So, you're saying that Python is now bad because more people are using it?
2008-08-18 01:42 am (UTC)
Re: Popular = bad?
how about you keep the non-RTFA comments at news.yc?
that's not what i said. more people using python doesn't make python bad in itself, it just means that i have less of an advantage over the competition.