9 ms·
I was thinking about this today in reference to Elixir. I've noticed there seems to be less of the unalloyed fanboyism, and more realism in people's reported ex
by noneeeed 6y ago
I was thinking about this today in reference to Elixir. I've noticed there seems to be less of the unalloyed fanboyism, and more realism in people's reported experiences with it now they've had a chance to use it for a few years. Reports still seem to be positive, but more balanced, which I think is the sign of a language ecosystem maturing.
I generally take breathless coverage of how brilliant some new language (or tech stack) is with a large pinch of salt. The foibles and pitfalls of modern languages are often hard to spot until people have code-bases that are at least a couple of years old. I think the good stuff is generally easier to see at first, while the problems (which are often consequences/side-effects of the good aspects) generally take longer to appear.
Programming languages seem to follow a variation of the Gartner Hype Cycle, with the twist that just after you get to the Plateau of Productivity and lots of people are quietly getting stuff done with it everyone starts to declare that "language X is dead/dying".
- thejosh 6y agoIt's also about using the language/tool in ways that it should be used, was designed to be used. Elixir is great at what it does, but I wouldn't use it for building a CLI tool or something like that.
- noneeeed 6y agoDefinitely. That's part of my point about understanding the problems and limitations. After thirty-something years of programming I've seen numerous languages (or model) touted as the one true language that will save us all.
- alephu5 6y agoWhat is the best way to confront this problem? On paper languages like Rust, Elixir/Erlang, and Haskell stand out in non-trivial ways from other languages but as you say they require a considerable investment to evaluate properly. Either you risk years of wasted effort or potentially missing out on a game-changing tool.
- sobani 6y agoLet others evaluate the language for you. Unless a feature of the language is game-changing for you. This might mean it solves a problem that would be very hard to solve otherwise or it might mean it looks very interesting to you. Which I think is good advice with anything that requires you to be an early adoptor.