4 ms·
Programming languages are seldom chosen because of the merit of their core semantics. Successful programming languages are coupled to some platform or ecosystem
by goto11 7y ago
Programming languages are seldom chosen because of the merit of their core semantics. Successful programming languages are coupled to some platform or ecosystem and it is the platform that is chosen. For example JavaScript could have been functional or imperative or whatever - it wouldn't have mattered for it's success. Objective C was obscure until the success of the iOS platform, C# was pushed by MS as the way to write Windows apps, VB was the way to script office applications. None of these languages became successful due to their core semantics.
Haskell will always remain niche since it is not coupled to a successful platform. But compared to the thousands of other "second tier" languages it is doing pretty well.
- mtberatwork 7y agoC/C++, Java, Python aren't tied to any specific platform and are some of the most popular languages used today.
- npmaile 7y agoC was tied to unix and C ++ was on the coattails of C. Java was actively sold to every major corporation in the early aughts. I will agree, that python came up without a platform to support it.
- josephorjoe 7y agopython is supported by easy to learn basic syntax + great math/science libraries. as i typed that i thought: python is the excel of programming languages. it also has very solid web frameworks (Django, Flask, etc.).
- EvilTerran 7y ago> python came up without a platform to support it What about numpy (+ its ecosystem, scipy/pandas/etc)? I get the impression that's contributed a lot to Python's growth over the years.
- jki275 7y agoThose are probably the only reason Python still exists.
- Icathian 7y agoI believe that you're right about why languages aren't chosen, but miss the alternative explanation. Languages are chosen for speed of deployment and ease of use, almost nothing else. From the dawn of time, when C and Unix beat out Lisp, all the way to modern JavaScript, the tool that solves a given set of problem quickest and easiest wins regardless of 'merit'. Worse is better, all the way down.
- AnimalMuppet 7y agoI agree, but there's one more twist: Problems are different. Languages are chosen for ease of writing specific programs, not for "general programming". I think, then, that FP is great for certain kinds of problems, and not so good for others. If you've got an FP problem, reach for an FP language. If you don't, don't. What's an FP problem? Someone here (I wish I remembered who, I'd give credit where due) said "if you can think of your program as a pipe", then FP is appropriate. If the nature of your problem has a lot of state, FP probably isn't the answer. (Note well: problems themselves can have a lot of state. It isn't always just the implementation - the problem itself may demand it.)
- goto11 7y agoFully agree! I just wanted to emphasize that what makes a language the quickest and easiest for a given task is typically more due to ecosystem or platform integration than to the "geeky qualities" like advanced language constructs.