I just came across this article, which concludes Crystal won’t become popular (see at bottom, Fourth
). Well, let’s prove him wrong.
Go
One can argue whether focus on simplicity at the expense of everything else is good or bad, but statically linked zero dependency binaries definitely were a reason for Go popularity in the devops sphere. In a sense, Go is an upgrade over “memory safe & reasonably fast” Java runtime, when you no longer need to install JVM separately.
I casually say crystal is “what if golang was good?”.
Rust
Crystal in many ways feels like Rust without the horrors of having to know what a “borrow checker” is, and more importantly, without semicolons.
I predict that Nim, Crystal and Zig (which is very interesting, language design wise) would not become popular.
matklad desperating hoping nobody asks for an explanation or elaboration to this throwaway one-liner
I wouldn’t give this a second thought. The wording on the headline, and in the nature of his arguments are more emotional than logical. The author is just trying to antagonize for attention.
I give him that he stated up front it’s just his opinion, and he didn’t doing any research to validate his principle premise. But it would have been nice if he stayed consistent to his premise, i.e. a language’s runtime is the primary determiner of its ultimate popularity.
If so, he should project Nim to become very popular, because it creates very small programs.
I think the important thing to always take from these types of musings is, people will create/hold all types of opinions, mostly about things they have no empirical knowledge of, or familiarity with. And people are more likely to act on readily available mis, false, or distorted information, than do research to find a better truth. (Lie will travel halfway around the world before Truth gets out of bed.)
Of course, popularity isn’t an empirical and rigorous characteristic of goodness (just look at who lead various countries), and is mostly a metric based on emotional affinity and familiarity. But real decisions, that affect real people/things/money, are made primarily on such basis.
The tangible takeaway from articles like this for me is, you ALWAYS need to control the narrative of your stuff. People have short attention spans, and will remember the most the thing they last saw/heard. So while its a PITA to continual do, Crystal (any project) needs to create and maintain a continual stream of good/positive/true information, in places where people can receive it. Unfortunately, mass marketing mostly beats empirical knowledge (I’m not wearing no stinking mask!), so you then have to mass market empirical knowledge to beat it.
So if you want to help to control the narrative for Crystal, don’t spread BS, not even to criticize it ;) Let it stay some random thing nobody pays attention to.
I concur with your points about controlling the narrative, as I have wasted far too much of my early career in OSS arguing with bad-faith critics/pundits instead of just blowing past them. I also posit that there is always some nugget of value in these types of blog posts, mainly the inconvenient facts that the author avoids or omits to make their argument work. Things such as, legacy (C, C++, Java), corporate buy-in (C, C++, ObjC, Java, Python), monopolies (JavaScript, C#), popularity curves (Smalltalk, Node.js), academy buy-in (Fortran, R, Haskell, Python), killer apps (Flash animations, “Web 2.0”, iOS/Android apps, Games), market over-saturation. It is these factors or dynamics that we should be aware of when thinking about how to best promote or advance Crystal.