“I realized at some point that all programming languages are the same.”
bugtrackers.io
bugtrackers.io
I did bite for the click-bait title because I expected something tongue-in-cheek. But there's no explanation or context for that in the article.
A dubious quote, presented in the worst possible way, all that leaves a bad taste in my mouth. How can someone say such a thing without explanation and expect to be taken seriously?
If I click on a headline that interests me it'd be nice to actually see some discussion of it.
Closest I can find is "But I quickly got the hang of it because I knew all the important concepts from other languages and frameworks."
I'll admit to finding a guilty pleasure in the usual, "Why Rust is Awesome and Go Sucks" blogtrash... when the content actually DOES reflect the title. However, when someone slaps an inflammatory title onto a piece that doesn't really even address that subject, it's the worst of all worlds. Makes me form a negative opinion of the author, of the hosting site, and in this case even of the person being interviewed (rightly or wrongly). Since the majority of people don't actually read the content, all of the comments just deal with the title anyway.
Material like this belongs in a "spam" folder.
A caustic reminder of effect on the reader, not of the content of the article, but of the headline and pull quotes which are considered part of the editorial domain.
Amusingly the song title had nothing to do with the lyrics of the song.
> 1936 - Alan Turing invents every programming language that will ever be but is shanghaied by British Intelligence to be 007 before he can patent them.
> 1936 - Alonzo Church also invents every language that will ever be but does it better. His lambda calculus is ignored because it is insufficiently C-like. This criticism occurs in spite of the fact that C has not yet been invented.
(from http://james-iry.blogspot.nl/2009/05/brief-incomplete-and-mo...)
As someone who appreciates both C and FP languages, I can't upvote this enough :)
However, the more interesting comparisons happens above that level. There are real differences in the implied semantics, the lightness/heaviness of the syntaxes for common tasks, the division of labor between the programmer and the compiler (aka static vs dynamic typing, unit tests vs compiler error, etc.) A language with deep metaprogramming (Lisp, Ruby, etc) will feel different than a language that requires writing adhoc custom code generation tools to approximate the safe effect.
Discussion about languages at a layer above the Turing Tarpit means Lisp, Haskell, Prolog, C++, Python, Java, Bash, x86-assembly, BASIC, etc are all very different.
This is a useful definition because a feature like an enhanced for-loop doesn't have global effects on the program if it's plunked into some local context -- the same program could have been written without it. But adding something like, say, exceptions does have interesting nonlocal effects, and allows for differently-shaped computations than before.
The useful point here is that the feature is added as an incremental change on an already-existing language, so its effects can be measured relative to the original language. The original and extended language can both be Turing-complete, and this is still a useful definition.
[1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.4...
Most people who make comments like this have only seen languages which differ in syntax, but many do differ in semantics.
Interestingly, Pure Data is not all a fad (but neither a growing trend!). In the art community, I have friends that are very proficient with Pure Data, using it for creating various visual and audio programs. A lot of them are still using it more than a decade after they first started.
ps: I realised at some point that "java all the way", "haskell all the way", "php all the way" is definitely not the way :P
If you're writing an app that's going to be able to run on a single small vm, you might as well write everything in the language your developer is most comfortable in and will deliver fastest with. If you have ten developers but 50,000 servers, you might want to pick a faster language, but the math is pretty simple, hosting costs vs development costs, what's greater?
Of course it's more complicated than that, because your ops guy can make a meal of the scaling, your java developer can write slow code, and your PHP developer can write efficient code (within the constraints of the language, of course).
For me the general problems with hiring based on tech is if you go for the new and shiney, you'll deal with people who'll never finish anything, and if you go with old and reliable, you'll get people who are slower because they aren't following resonable practices.
Most companies just need someone who'll deliver though, so there's nothing wrong with them picking old reliable $foo for everything, and I'd suggest your good senior developer shouldn't care about anything else than delivering, both long term and short, and if the advice is that everything needs to be rewritting in flavour of the month, I'd suggest said developer may be good, but they're probably not mature enough to be senior.
Technically it's all machine code all the way anyway. :)
Now, are all programming languages the same? Most definitely not. Lisps exist, functional languages exist, heck, BASIC exists, to name some other language families. But all mainstream languages are virtually the same.
How so? There's a lot of choice, but quite little diversity. There are more languages than there are big differences between them. You could combine Python, PHP, JavaScript, Lua, and Ruby, then C++ and C, then C# and Java. There'd only be 3 mainstream programming languages left, but you'd have lost almost no diversity.
Even with the differences between them, an algorithm implemented in any of them will look nearly identical.