From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: f8899,3c634d3864722c74 X-Google-Thread: 10dd18,3c634d3864722c74 X-Google-Thread: f4fd2,3c634d3864722c74 X-Google-Thread: 103376,3c634d3864722c74 X-Google-Attributes: gidf8899,gid10dd18,gidf4fd2,gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!newsfeed.stanford.edu!news.kjsl.com!news-xfer.nntp.sonic.net!posts.news.sonic.net!nnrp0.nntp.sonic.net!not-for-mail Date: Fri, 28 Dec 2007 12:54:57 -0800 From: John Nagle User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 Newsgroups: comp.lang.haskell,comp.lang.python,comp.lang.lisp,comp.lang.ada Subject: Re: Choosing a new language References: <20071228162351.f29a3ce4.coolzone@it.dk> In-Reply-To: <20071228162351.f29a3ce4.coolzone@it.dk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <477561af$0$36390$742ec2ed@news.sonic.net> Organization: Sonic.Net NNTP-Posting-Date: 28 Dec 2007 20:50:55 GMT NNTP-Posting-Host: 76ba1dae.news.sonic.net X-Trace: DXC=jR[d:28C4mkV0]H<=cm4K\QM1CV^`1OYf0H`?;XaB:lX[gln>1nNbWZ`fJRg6m6:Ob3lDceKi X-Complaints-To: abuse@sonic.net Xref: g2news1.google.com comp.lang.haskell:994 comp.lang.python:161038 comp.lang.lisp:76410 comp.lang.ada:19046 Date: 2007-12-28T20:50:55+00:00 List-Id: 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