Choosing a new language

John Nagle nagle at animats.com
Fri Dec 28 15:54:57 EST 2007


Rico Secada wrote:
> Hi. 
> 
> First let me start by saying, please don't let this become a
> flame-thing.
> 
> Second, I need some advice.
> 
> I am a 35 year old programmer, who program in C/C++, PHP and Bourne
> Shell almost daily.
> 
> I am currently going to start focusing on becoming more skilled at a
> few key languages, rather than knowing many (which I do on a more
> superficial level). 
> 
> My key languages are C, PHP and SH (Bourne Shell), and I have stopped
> using C++ because I find that its a C-hack rather than a good design
> choice. 
> 
> I have made the following decision:
> 
> To study Ada and use it instead of C++. I come from a Pascal background
> and I love the Ada syntax and wide area of usage. I am also attracted
> to Ada because of its usage in the industry.
> 
> Now I have three more languages that I am very attracted to, but I
> prefer to focus on just one of them:
> 
> Python, Haskell and Lisp.

    I've used every language mentioned except Haskell.

    I'm somewhat fed up with C++ myself.  I've used it for years; I've
written large systems in it, and I have to face that it has a fundamental
problem.  C++ is the only major language with hiding but without memory safety.
C has neither hiding or safety; Java and Ada have both hiding and safety.
No language since C++ repeats that mistake.

    Ada has its advantages, but outside the DoD world, it's more or less
dead.  If you have a security clearance and are interested in real
time avionics programming, maybe.

    LISP has a cult problem.  It's not used much any more, even in the
AI community.  LISP users tend to be too wierd.  The language itself
is OK, but few commercial applications use it.  Viamall, which became
Yahoo Store, is one of the very few major commercial LISP apps.
I've written about 20,000 lines of LISP, but I'll never use it again.

    Actually, the ability to "fix a running program" isn't that useful
in real life.  It's more cool than useful.  Editing a program from
a break was more important back when computers were slower and just
rerunning from the beginning was expensive.

    Python suffers from a slow implementation. Numbers vary, but
10x to 60x slower than C is typical.  The language is quite
powerful, but is held back by the CPython implementation, the
lack of a language standard independent of any implementation,
and a clunky mechanism for linking to external non-Python libraries.
There's no fundamental reason that Python couldn't be made to run at least
as fast as Java, but with the language spec tied to CPython, the
other implementations are always playing catch-up and run far behind the
CPython implementation.

     As languages, C# and Java are reasonably good.  They tend to come
with too much excess baggage in the form of frameworks, run-time systems,
and packagers, but as languages they're fast, safe, and expressive.

     Can't speak for Haskell.

					John Nagle



More information about the Python-list mailing list