Of course if a language does not have a niche nor popular support then it's going to struggle more.
Of course if a language does not have a niche nor popular support then it's going to struggle more.
You can really tell when you're using an unviable language; big parts of it are broken, often in subtle ways that you can only find out about after heavy use, and the maintainer doesn't give a shit about your problems, even if your problems should be in the niche the language addresses. There are many open source languages which fit this description; some of which rank in the top-100 or even top-50 in this ranking system. By contrast, something like Awk with a relatively low rank may score poorly but will be viable as long as there are text files.
I suspect I know which, but not sure. Also would like to know more about your critiques.
Some real businesses use Haskell too.
Other than that, you have a point.
"if all the existing volunteer mainteners for this language went down in a single airplane accident, would businesses who depend on this language step up and fund its maintenance and could they support that organically from the margins of their business?"
When the answer is yes you have a language that is going to live forever independent of whether it's a fad this year or not etc. Which is partly why I think some seriously out-of-fashion languages keep going surprisingly strongly. Meanwhile some pretty awesome languages just wither on the vine.
"Yes they're used successfully in some companies, but they're not truly commercially viable".
If you have someone who has the resources and time to experiment, then sure everything that is literally viable may be viable.
In general, it's probably somewhere in between. I wouldn't take one or two companies or even solely proprietary companies as a good example though. For the average person it probably matters most if a language has a rich and alive open ecosystem.
Ada is used widely in safety critical software outside the US
GenodeOS project, started to rewrite security critical modules from C++ into Ada/SPARK.
Air Traffic Management and Rail Signalling systems are probably the two biggest fields outside of Defense/Aerospace where Ada has commercial success.
A big barrier to entry was previously the high cost of the toolchain for commercial applications (that's somewhat changed). Which meant it was only economically feasible for large companies in very safety-critical contexts.
https://en.wikipedia.org/wiki/James_Clark_(programmer)
https://www.drdobbs.com/a-triumph-of-simplicity-james-clark-...
http://xml.coverpages.org/ni2002-02-14-c.html
https://news.ycombinator.com/item?id=14154049
DonHopkins on Apr 20, 2017 | parent | favorite | on: What programming languages are used late at night?
I got some insight into what's great about Haskell by reading James Clark's "An algorithm for RELAX NG validation":
http://www.thaiopensource.com/download/old/relaxng/20020531/...
>This document describes an algorithm for validating an XML document against a RELAX NG schema. This algorithm is based on the idea of what's called a derivative (sometimes called a residual). It is not the only possible algorithm for RELAX NG validation. This document does not describe any algorithms for transforming a RELAX NG schema into simplified form, nor for determining whether a RELAX NG schema is correct.
>We use Haskell to describe the algorithm. Do not worry if you don't know Haskell; we use only a tiny subset which should be easily understandable.
Text.XML.HXT.RelaxNG.Validation
http://hackage.haskell.org/package/hxt-relaxng-9.1.5.5/docs/...
>Validation of a XML document with respect to a valid Relax NG schema in simple form. Copied and modified from "An algorithm for RELAX NG validation" by James Clark.
Clark Updates Jing - A RELAX NG Validator in Java.
http://xml.coverpages.org/ni2002-02-14-c.html
>James Clark has announced a new version of Jing with significant changes and revised documentation. Jing version '2002-02-13' implements the final RELAX NG 1.0 Specification and also implements parts of RELAX NG DTD Compatibility, specifically checking of ID/IDREF/IDREFS. James has "almost completely rewritten the validator using an improved algorithm. In the old algorithm, the state of the validation was represented by a stack of sets of patterns; in the new algorithm, the state is represented by a single pattern... The new release includes a documented API for Jing; in fact there are two APIs, a native API and JARV. James has rewritten the description of derivative-based validation to correspond to what's been implemented and to incorporate feedback received on the previous version from Murata-san and Kawaguchi-san... The Jing implementation is available for download as a JAR file and as a Win32 executable for use with the Microsoft Java VM.
The trick with any Lisp is to "get it". Once you do there is no comparison between Lisps and any non-Lisp language.
Let's compare it in some useful way. If I was assembly developer for my entire life, "getting" C++ would be comparable to getting Lisp for any JS/Python/Ruby developer.
From my point of view JS/Python/Ruby is just a reiteration, variation on roughly similar, impaired subset of features that I can roll off in Lisp on my leisure. By definition, any language feature can be written in Lisp (well... more in Common Lisp than in Clojure which is hindered by its integration with Java environment) which is something that is really hard to grasp until you start rolling off your own language for any problem you try to solve (and one reason Lisp programmers are so much hated by other programmers).
Having said that, and going back to the original point, Clojure struggles and will continue to struggle because it doesn't have any strong hold in any domain, in contrast to JS/Python/Ruby. Each of these have big ecosystems of libraries, documentation, big market share in various domains and big job markets. So yeah, worse its better.
> Not strong in any domain and doesn't have any fundamental benefits over other dynamic programming languages like JS/Python/Ruby.
Don't get me wrong, but this can be said only by someone who never used it seriously or simply didn't get it. Reminds me on Scheme/Racket complains from students who took classes only for GPA or simply got in wrong university.