[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

languages for mediocre programmers (was: Language Marketing)

> Date: Fri, 14 Dec 2001 15:56:55 -0500 (Eastern Standard Time)
> From: "S. Alexander Jacobson" <alex@shop.com>
> To bring this back to language design; you should design a language for a
> population to whom you can market effectively.  If that language is to be
> used in a commercial setting, then that population may be PHBs.  If that
> language is for hackers to use on their own projects, thats fine too.
> However don't assume that PHBs interests are necessarily aligned with
> hackers.  For example, PHBs may be concerned with:
> * the availability of libraries for a particular task (developers may
>   prefer to roll theirown)
> * a plan/opportunity to merge/collaborate with a different organization (a
>   plan for which the developer may be ignorant)
> * development environment and pricing advantages provided by platform
>   vendors (get a discount if you use C# or if you use PL/SQL)
> * the cost of planned deployment environments (the PHB may prefer Linux
>   because of a plan for an embedded version even though the developers
>   like Visual Studio)
> * etc.

And a very big point: availability of programming talent.

Anyone who's tried to recruit programmers for a startup knows what a
thankless job it can be.  It's hard to find people who are competent in
*any* programming language, much less people who know how to use postfix
stackless objective-Haskell with first-class continuations :-)  This is one
big reason that languages get established.  When a lot of programmers learn
the language, then the developer pool is larger.  This makes it easier to
hire new people for a project, more people then want to learn the language
to make them employable, etc. etc.

Now, I fully agree with the idea of designing a language for your smart
peers.  But PHBs have to have languages that even mediocre programmers can
use fairly well, because they can't be sure they will be able to hire a
star programmer.  Languages like lisp and ML are (at least currently)
languages that only smart programmers know.  I would add C++ to this list
too, because even though a lot of mediocre programmers "know" C++, they
really shouldn't be using it.  If I were starting a startup today, I would
probably get my programmers to use python and java, because almost any
reasonably competent programmer can do a decent job with these languages.
Or I might hire one or two great programmers and use lisp :-)  But that's a
riskier proposition; those one or two programmers are not easily
replaceable.  For my *own* work, I want the Arc-style
languages-designed-for-smart-peers.  It's no coincidence that the
"beautiful" languages were all designed for people to do their own work