3 ms·
I don't appreciate the criticisms in the article made to languages that have problems which are artefacts of their popularity. Some of these problems are merel
by muyuu 4y ago
I don't appreciate the criticisms in the article made to languages that have problems which are artefacts of their popularity.
Some of these problems are merely cosmetic, which doesn't mean they are to be dismissed, but the very choices those languages took were either a result of some school of thought being demanded by the market, or they created that school of thought themselves. That would cover mainly syntax and verbosity/explicitness choices.
He mentions the GIL. Well, this is a well-known Python limitation because... Python has a particular implementation in CPython that is extremely popular, and they made the choice to focus in making every running Python process being relatively fast as a single thread, which turned out to be a good compromise combined with micro-services. Perhaps it was even partly a catalyst of the trend. But by no means this is the only Python implementation, it's just an extremely popular one that needs to be taken into account. Smalltalk doesn't have this problem to have any single implementation that is so popular, it became an externality and people needed to account for its choices.
But on the positive side, I agree with the sentiment that in order to beat the averages, popularity of your tools shouldn't be the deciding choice.
There's a reason why some (powerful, useful) languages remain "secret weapons": they have characteristics that are out of step with the mainstream. But this itself is not a bad thing. Smalltalk, Common Lisp, Scheme/Chicken/Gambit/Racket etc will remain secret weapons with a focus on creation and in not being part of the rat race, while others will be more focused in industrialisation, large team management, etc. The mainstream has to do that pretty much by definition. And outsiders will have the advantage of not having this burden on top of them.
It does appear to me that many startups decide to start off with what they anticipate it will be a good choice once they are big, prematurely. Facebook started as PHP spaghetti code. The main thing is that it has to work, and it has to allow you to move fast. Scale comes later, especially so nowadays with so many scaling solutions on the hardware side that will let you survive early hits in popularity, a problem most people would wish for.