<<< (new yorker, 11/22/04)

Home

Monday, November 22, 2004 11:42 PM >>>


language talks

Sunday,  11/21/04  08:01 PM

One of the really great things about blogging is picking through your referer logs.  Because you serendipidously discover all kinds of great stuff "out there".  The blogosphere is already way too big to grasp, and coming across links to links to links is a great guide.

Anyway, today I found Paul Graham's site; it is not a blog, more an old style home page with a collection of essays.  Among them was Great Hackers, which is quite thought-provoking.  Among the interesting ideas is the notion that when starting a project, or a business, the choice of language limits the quality of programmers.  Paul doesn't think too much of Java:

When you decide what infrastructure to use for a project, you're not just making a technical decision.  You're also making a social decision, and this may be the more important of the two.  For example, if your company wants to write some software, it might seem a prudent choice to write it in Java.  But when you choose a language, you're also choosing a community.  The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python.  And the quality of your hackers probably matters more than the language you choose.  Though, frankly, the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages.

Paul is also biased against Windows:

A couple years ago a venture capitalist friend told me about a new startup he was involved with.  It sounded promising.  But the next time I talked to him, he said they'd decided to build their software on Windows NT, and had just hired a very experienced NT developer to be their chief technical officer.  When I heard this, I thought, these guys are doomed.  One, the CTO couldn't be a first rate hacker, because to become an eminent NT developer he would have had to use NT voluntarily, multiple times, and I couldn't imagine a great hacker doing that; and two, even if he was good, he'd have a hard time hiring anyone good to work for him if the project had to be built on NT.

I'm not sure I share his biases against Java or Windows.  (Although I must say for myself, if I have to build something, I wouldn't choose either one.)  Anyway I fully agree that in choosing a platform, you are choosing a culture.

This is particularly relevant to me because I'm embarking on a new project.  I have the opportunity to begin from scratch, with any language.  I need to build programs which are clients and servers, and I need to build an interactive website.  I want at least some of the stuff to be cross-platform.  So what do I use?  ASP?  C#?  Java?  I don't think so.  Perl?  PHP?  Maybe.  C++?  Python?  Very likely.

This isn't just about me.  I'm going to be working with others...  And like Paul points out, this is not just a choice of programming technique, it's a choice of culture.  Language talks.