4 ms·
Sure but those are all minor things (and greatly exaggerated) in the grand scheme of shipping stuff and producing value IMO, today, a language being mainstream
by facelessuser 5y ago
Sure but those are all minor things (and greatly exaggerated) in the grand scheme of shipping stuff and producing value IMO, today, a language being mainstream and its ecosystem matters. You are falling for the exact trap the article warns about.
You'll say you can use the Java ecosystem but them you loose all the benefits you mentioned, you say you will keep interop/mutation/side effects isolated but then again you can do the same in JS if some lib is causing unwanted mutation.
I have seen JS developers run in circles around Clojure developers because the JS devs have specialized in their language and ecosystem while the others keep moving between ecosystems and niche languages hoping for some magical thing that will fix all their problems.
Rich Hickey is a great software engineer and software architect but what most don't notice is that he also is a good salesman.
- dgb23 5y agoThere is no "trap" I fell into here. The point of the article you refer to was that there is more value in being more proficient in some language/tech choice rather than jumping around and that the ecosystem matters. From the article > If anything, my progress was often hampered by the lack of libraries, unreliable tools and not spending enough time in any one ecosystem to develop real fluency. These got in the way of working on hard problems, and working on hard problems was the main thing that actually led to improvement. > By way of counter-example, check out this ICFP contest retrospective. Nikita is using clojure, a pretty niche language, but has built up incredible fluency with both the language and the ecosystem so that he can quickly throw out web scrapers and gui editors. Whereas I wouldn't be able to quickly solve those problems in any language after flitting around from ecosystem to ecosystem for 12 years. And I largely agree with this. > You'll mention you can use the Java ecosystem but them you loose all the benefits you mentioned, you say you will keep interop/mutation/side effects isolated but then again you can do the same in JS if some lib is causing unwanted mutation. Been there, done that and I explained honestly above why I prefer having more explicit and built-in boundaries, rather than tacking it on via libraries and discipline. Interop, mutation and side-effects stand out and there are utilities that let you do those things in a convenient, productive way without you having to worry about copying stuff around or similar. There are some really good libraries in the JS world too, that are a joy to work with and are powerful productivity wise. No doubt about that. I merely cited the reasons most important to me why I have a preference and why it feels liberating and relaxing to me to use Clojure over JS in general. There are more, and there are also some downsides. None of them de-validate your judgement or preference.