4 ms·
This is true for debates like Java vs C# or Python vs Ruby, but some languages are unambiguously better than others. Usually this happens because the languages
by billyjobob 13y ago
This is true for debates like Java vs C# or Python vs Ruby, but some languages are unambiguously better than others.
Usually this happens because the languages were never actually designed; they were nasty hacks thrown together in a few days by amateurs that happened to strike it lucky and become embedded in a technology stack that then took off, e.g. Javascript and PHP. Of course they are unambiguously worse than any language that was actually designed.
Sometimes there is a case where a language was explicitly designed to fix the problems of an earlier language. For example languages like Coffeescript and Dart were designed to fill exactly the same niche as Javascript but they had the benefit of being developed later, so it's not surprise if they are better than their inspiration.
Occasionally there is the slightly ambiguous case where a language is a superset of another language. For instance C++ is (almost) a superset of C, and Scala can be used as simply a better Java. So obviously C++ can do everything C can do, and more. The only ambiguity over their superiority comes because you can't trust programmers not to use the many new complex features of C++ and Scala, so there is a risk of the results being too complicated.
Deciding on a 'best' language often comes down to IDE support and library availability, rather than just the merits of the languages. Also there is strength in numbers - I would love to use Scala on Android, but I would fear that number of users of that combination is so low that I could hit an obscure compiler error that affects no one else and so doesn't get fixed. (I saw reports of this on mailing lists a couple of years ago, when users were fewer than they are now.) Also if you are choosing a language but hiring someone else to do the programming for you you have to consider that it's ten times easier to replace a Javascript monkey than a Lisp hacker.
- bonemachine 13y agoGenerally valid, but it'd be better to qualify that assessment by saying that "some languages are better than others at certain things." e.g. for a PHP one could fairly state "it's great if you're new to programming and want to spend a few hours figuring out how to get a web page up and running. But don't spend any more time than that with it, please." or for JS: "yes it has serious flaws, but overall it's not as bad as you first think, especially if you read Crockford's book. The bigger point is that it's welded to the browser platform for the time being, and most likely will be for quite some time. So if you want to do frontend stuff, you have to at least be OK with it." You see, it's all about context.
- amirouche 13y ago> This is true for debates like Java vs C# or Python vs Ruby, but some languages are unambiguously better than others. I strongly agree with that. What I find ridiculous is fanboyism, people that don't want to recognize the draft level of thisthose language/s. > Deciding on a 'best' language often comes down to IDE support and library availability, rather than just the merits of the languages. The Best Tool For The Job. True. But don't think business and practical use or usage of the language for a minute. There must be an absolute in languages and its implementation. I mean theoretically some languages are better than others. For instance take D, it does more and better than C, C++ (and Java?). I think this debate has been implicitly solved, basically there is the scientific side dedicated to solve piratical dev issues, implementation details, math theory. In this area we can find Scheme, LISP and ML languages. The other side is the business, engineering and fanboism where focus is on real world problems, where pragmatism beats theory and whether it's cool or not. Here there is almost only imperatives and compiled languages. Why? Winners write History and Thruth. > The only ambiguity over their superiority comes because you can't trust programmers not to use the many new complex features of C++ and Scala, so there is a risk of the results being too complicated. And AFAIK that's what killed Scheme and LISP, because the syntax is too powerful. And what still kills dynamic languages in general.
- rzwitserloot 13y agoBut even in such cases, there is often no unambiguous X is better than Y argument, because the question isn't exactly clear (There are many dimensions to this. How large is the project, which people are available to work on it, what is the maintainance schedule, which players are involved and will have to look at it, what kind of things do you intend to do, and do you envision hiring people in the future who will work on this?). These then add the a bunch of possibly conflicting dimensions to the right answer, and many of these can be better for X than for Y, even if Y is, from a language design standpoint, 'unambiguously better': * Dev stacks * # of developers you have or can reliably hire for it * The general 'vibe' of the community. Some amazing languages have communities that are nasty, or tend to like overly verbose catering-to-ridiculous-generality libraries, just have way too many conflicting libraries for the same thing, don't have ANY libraries, prefer writing academic 'look at how fancy I can make this code look!' over just getting things done, and so many more unfortunate habits. A great many things that need doing are so simple, the benefit of a strictly better designed language often just don't weigh up to burdening yourself with the nasty habits of the community. You can try and go against the community, but now every time you search, the examples won't 'feel' right, most libraries will clash with your programming styles, when hiring new folks you need to retrain them significantly, and so on and so forth. Even PHP has benefits. I admit the language is badly designed, extremely inconsistent, dev tooling sucks and the language by design isn't helping in that department either, and the community has an unbelievably nasty habit of mixing up a complete disdain and cluelessness about even basic security and a love of 'hey, it works for me' mentality. But.. PHP's deploy stack is easy to understand, very widespread, the model pretty much forces you into writing your apps in a way that throwing money at the problem will pretty often work to solve scaling issues, there are a bajillion examples out there, programmers are easy to find, and that 'hey it works for me' attitude can actually come in handy if you're developing in-house. I love to get on my high horse and shout trite things such as '... but PHP rots the brains of your programmers!', and I do, but if I have to be perfectly honest, I can foresee scenarios where it makes sense for a company to go with PHP. And, hey, if PHP can sometimes be the right answer, clearly there is no room for the concept of 'X is unambiguously better than Y'.