4 ms·
The case against <insert non-mainstream language here> for most people is the chicken-and-egg problem of the mainstream adoption of the language. It should be
by danielbarla 6y ago
The case against <insert non-mainstream language here> for most people is the chicken-and-egg problem of the mainstream adoption of the language.
It should be relatively obvious at this point that the outright merits of a language have little or nothing to do with its popularity, at least when compared to things like the corporate backing and will behind a language (see: Objective-C / Swift), and other factors such as positioning and luck (e.g. Javascript). So, you cannot start from "this language is _clearly_ better, so it will certainly become more popular".
And this is the problem for most people / dev shops choosing a language. Popularity brings a huge amount of good things, such as good quality training materials, job security, easy hiring, good quality libraries, etc (and a few negative things), so it is kind of a big deal.
- mumblemumble 6y agoI don't like to shy away from languages just because they won't ever become one of the top 5 languages. Moderate success for a language can often be more than enough to keep the things built on it afloat for a long time. I also suspect that the relationship between how many people are successfully using a language, and how often you hear about it on the Internet, is non-linear. And most the popular rankings (TIOBE, SO developer survey, etc) are really measuring how often you hear about it on the Internet. For me, the real killer feature that every language must have is an escape hatch. This is every bit as true of AAA languages as it is of up-and-coming ones. Give me a way to expose a C ABI or a COM interface, and I'll feel more confident I won't get trapped. (Though I still cry myself to sleep at night knowing POSIX doesn't have a great answer to COM or WinRT.) For one project I'm working on, I'm currently feeling very trapped in Java, of all things. Because, while Java has decent enough facilities for calling out, it's much more difficult/expensive/both to call into Java from other platforms.
- danielbarla 6y agoI totally agree with you, when it comes to my own personal projects. (In fact, the number of languages I have relatively seriously dabbled in is getting to the point that it's best to leave off a CV, lest one comes off as a jack-of-all-trades or something.) But for companies, it's pretty hard to put together 3-4 teams of developers in some esoteric language. And to find developers for it many years down the line for maintenance. So, they understandably stick to mainstream stuff, even if there are significant inherent advantages to something off the beaten bush.
- mumblemumble 6y agoMy sense is that that is unnecessarily self-inflicted. Companies' focus on hiring people who already know the language they use is penny wise and pound foolish. Even if a new developer is a complete novice at a language, I would still expect that to be less effort than learning the business domain, getting to know the codebase, and socially integrating oneself with the team.
- johnnycerberus 6y ago> It should be relatively obvious at this point that the outright merits of a language have little or nothing to do with its popularity I beg to differ. People had 25 years to abandon Java but since then, the usage has only grown. I remember when Groovy and Ruby had their hyped periods sometime in the 00s, but what happened to that wave in the end? Grails and Rails became history, FAANG nowadays runs on Spring, the same for the rest of the world. Every practical feature that a JVM language had at a moment in time was later adopted by Java in some way. (maybe with the exception of Clojure which is the only language that didn't try to be a better Java).
- mrkeen 6y agoYou didn't describe anything meritorious about Java. You described the network effect of large companies converging on one language.
- camdenreslink 6y agoI don’t really see how Rails is history. It’s still one of the most popular web frameworks.
- AnimalMuppet 6y ago> It should be relatively obvious at this point that the outright merits of a language have little or nothing to do with its popularity, at least when compared to things like the corporate backing and will behind a language (see: Objective-C / Swift), and other factors such as positioning and luck (e.g. Javascript). So, you cannot start from "this language is _clearly_ better, so it will certainly become more popular". Well... it's complicated. I would say that for a new language to succeed now, it has to be clearly better at something - some niche, or some programming paradigm, or some such. It also has to meet the minimum bar of having libraries that cover much of the normal stuff that we expect libraries to cover. (That's where corporate backing comes in - it pays for building all the libraries that people have come to expect.) But if the language isn't clearly better at something, then it's clearly worse, because I can hire people for a mainstream language, or I can have trouble hiring people for the offbeat language. If the offbeat language isn't enough better to make that a worthwhile trade-off, then why not use the mainstream one?