4 ms·
Ted Neward evaluates 20 programming languages
- wanorris 19y agoThis is very biased toward the considerations of an enterprise datacenter, and thus against languages like Ruby, Python, et alia, that run in their own interpreters, which makes them harder for enterprise datacenters to manage than languages that run in the JVM and CLR, for which tons of monitoring tools and such exist. Nevertheless, Ted is crazy smart and knows a ton of programming languages, and he has a fair number of insightful things to say about the comparisons here. Just go in knowing that he's not going to be recommending Lisp or Python for the enterprise.
- jrockway 19y agoAnd interestingly, he forgot Clojure. It's a decent Lisp, and your ops folks (or clients) can deploy to the existing JVM environment. A pretty good compromise, if you ask me. Oh, and it runs pretty fast. (I haven't done a Clojure project, but I imagine it might be unpleasant dealing with the usual Java-isms in the libraries you'll have to use. But at least you'll be able to understand the code a few months after you've written it.)
- Zak 19y agoThere are also implementations of CL and Scheme for the JVM and maybe the CLR. I know that brlewis is using Kawa Scheme in a large financial company of some sort.
- deleted 19y ago[deleted]
- ajbatac 19y agoWhere's PHP?
- Zak 19y agoProbably on the "if we ignore it, maybe it'll go away" list. On that topic, I'm interested in creating a something-not-evil to PHP compiler in the style of Fog Creek's Wasabi (not that the language would be an extended version of VB like Wasabi is). Is anyone else interested in working on something like that?
- pchristensen 19y agoIt's a brilliant idea for a project. I'm not sure if I'm up for it now but I'd love to hear about how it progresses.
- justindz 19y agoI've been wrestling with "what to learn next" recently and had kind of narrowed it down to learning Javascript (probably using Rhino) more fully and trying Erlang as my first functional language. I think this nudged me towards Javascript. Even if I stick with Ruby for most of my server-side work down the road--I don't deal with data center integration--it can't make me worse at client side stuff.
- tptacek 19y agoHere I stopped reading: Scripting languages have a purpose, and that purpose is generally different from what general-purpose languages do. C# really doesn't need a REPL--don't fall into the trap of trying to make it into Lisp.
- michael_dorfman 19y agoYou disagree? How so?
- tptacek 19y agoThat there's a fundamental difference between "scripting" languages and "application" languages? That if there is, Lisp is on the scripting side? That a REPL would be useless to an application developer, or even a systems developer? I'm writing Ruby code right now that generates X86 basic blocks to runtime patch Win32 PE images in memory as part of a scriptable debugger for a DMA-driven peripheral I'm reversing. You cannot get more systems-y than I am now. I'm using a REPL to test X86 code written as Ruby. It is the best thing ever. People who talk about "scripting" languages are the 2008 equivalent of the people who stuck up for assembly language application development in the early '90s: an in-joke for the rest of us.
- ardit33 19y ago"'90s: an in-joke for the rest of us." -- Or maybe you are the VB equivalent of the 90s? Easy to use, and fast, but try to do anything large scale and it becomes a kludge. I am using both scripting (Lua), and Java for mobile development, and I can tell you that in large programs scripting languages start becoming a burden. If you are working on a small thing, or on something when only few people are involved (4 or less), scripting languages are great, but when it comes to larger applications it takes a very high level of disipline in the team, and higher calibre developers to produce bug free code. -- unfortunately not every company can afford high calibre developers, and have to settle with average programmers. In scripting languages, team member X, and modify a shared component, and team member Y sudenly sees his part of the code doing wierd things, or even failing silently. It is easy to break things appart and introduce bugs in scripting langauges. In java, if a method's signature get changed, you are going to see compilation errors allover the place that will force you to fix them. Plus, there is the dynamic languages performance penalty, that will always be there. I am not advocating Java, as I sweared my next job has to be "Java free", but as a static language (together with C#) it has good place. It allows average programmers to be somehow productive in large systems, where there are many people working at a code at the same time, something that is actually value creating.
- jrnewton 19y agohe _nails_ javascript (referred to as ES in quote): Can we please finally just accept that ES is much more than just a browser extensibility tool? For most developers, this is their first exposure to a classless prototype-based object-oriented language, and unfortunately, most developers don't ever bother exploring it beyond "How do I make my web page do that floating image thing...?" Gah.