Critical Section

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.

About Me

Greatest Hits
Correlation vs. Causality
The Tyranny of Email
Unnatural Selection
Aperio's Mission = Automating Pathology
On Blame
Try, or Try Not
Books and Wine
Emergent Properties
God and Beauty
Moving Mount Fuji The Nest Rock 'n Roll
IQ and Populations
Are You a Bright?
Adding Value
The Joy of Craftsmanship
The Emperor's New Code
Toy Story
The Return of the King
Religion vs IQ
In the Wet
the big day
solving bongard problems
visiting Titan
unintelligent design
the nuclear option
estimating in meatspace
second gear
On the Persistence of Bad Design...
Texas chili cookoff
almost famous design and stochastic debugging
may I take your order?
universal healthcare
triple double
New Yorker covers
Death Rider! (da da dum)
how did I get here (Mt.Whitney)?
the Law of Significance
Holiday Inn
Daniel Jacoby's photographs
the first bird
Gödel Escher Bach: Birthday Cantatatata
Father's Day (in pictures)
your cat for my car
Jobsnotes of note
world population map
no joy in Baker
vote smart
exact nonsense
introducing eyesFinder
to space
where are the desktop apps?