4 ms·
My observation is that quite often, systems built with the 'advanced' languages are more sophisticated and are much closer to cutting-edge researchy ideas. Tha
by pnathan 16y ago
My observation is that quite often, systems built with the 'advanced' languages are more sophisticated and are much closer to cutting-edge researchy ideas. That also tends to correlate with 'niche' and 'small company'. The essential complexity of the problem must be surmounted. If performance is the gate, C is still the best.
If development time, algorithms, and ability to wrap the language around the problem is the gate, an advanced language is going to be better.
According to the Alioth Shootout, OCaml, Haskell, and SBCL are in shouting range of C/C++ speeds. Link:
http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php?gcc=on&gpp=on&ghc=on&ocaml=on&sbcl=on&fsharp=on&calc=chart http://shootout.alioth.debian.org/u64q/which-programming-lan...
Therefore, if I was selecting an 'advanced' language for a performant real-world system, I would select one of those.
- kenjackson 16y agoMy observation is that quite often, systems built with the 'advanced' languages are more sophisticated and are much closer to cutting-edge researchy ideas. That also tends to correlate with 'niche' and 'small company'. I agree, but I think this is the problem. If advanced languages are better, its surprising that it doesn't manifests itself in virtually any way that one can measure. For example, if you're a CTO deciding which language to use, there is virtually no data to suggest using an advanced language is advantageous except religious arguments. Which is odd given they're supposed to confer both a superior language and superior developers. Where's the beef? If I'm building a skyscraper, I'm using steam shovels, not standard shovels. The data makes it clear which is more effective. There's no remotely similar argument to be made for advanced languages.
- pnathan 16y agoIt doesn't help when developers aren't willing to seriously investigate and code in the languages, but rather throw mud on the ideas. /done with thread
- pjscott 16y agoIt might help to look not at languages, but at attributes of languages. For example, garbage collection has gone from an expensive feature in "advanced" languages to something used in almost every programming language. This is compelling evidence that garbage collection is, in general, a good thing. Or how about the idea of having special syntax for some common data types, like lists and dictionaries and (sometimes) sets? This kind of thing is spreading and becoming more popular, because it really does seem to make people's jobs easier. Some more up-and-coming language attributes include type annotations, more immutability by default, and Erlang-style message passing concurrency. And maybe support for asynchronous I/O, either with JavaScript-style anonymous functions or with coroutines. Some of these things really can make certain programming tasks dramatically easier. The religious arguments tend to be anchored to languages, but there's some real information if you look past that to a deeper level.
- bpyne 16y agoThe only place you may see a data driven argument to support advanced languages would be a journal on software engineering or the like. (I'm a little skeptical that many CTO's read academic journals.) Developers in the field are not going to publish formal studies on language comparisons. CTO's most likely would have to use the method suggested by pjscott.