4 ms·
> Not about Elixir specifically, but don't people get tired of switching languages? Are you a developer because you don't want to keep learning? Maybe you walk
by lectrick 11y ago
> Not about Elixir specifically, but don't people get tired of switching languages?
Are you a developer because you don't want to keep learning? Maybe you walked into the wrong room? ;)
> What, people will now have to port all Ruby libraries to Elixir (or, at the very least, relearn them), and then a few years down the line to the next thing? Isn't this a huge waste of effort?
In this case, Elixir actually has a selling point, as Erlang has existed for over 20 years and has its own fairly mature box of tools (which are all easily accessed from Elixir).
From a bigger picture, a lot of code construction of late has moved to a SOA paradigm, in which case you can still call into perfectly-working Ruby codebases, except as a client from another language.
- pron 11y ago> Are you a developer because you don't want to keep learning? Maybe you walked into the wrong room? ;) Don't you rather be learning new concepts rather than new syntax/APIs? Not that Elixir doesn't bring new concepts to Ruby developers (it does), but even so, I think switching a language for production code has a terrible cost/benefit ratio compared to learning a new algorithm or even a new approach without switching a language. Since when has "learning" in CS meant adopting a new language?
- lectrick 11y agoIf we would all just have used Lisp from the get-go, then none of this would have even been necessary. ;) > Don't you rather be learning new concepts rather than new syntax/APIs? I ran out of new things to learn in Ruby, around the time I wrote a fizzbuzz implementation using pure functionals without any conditionals. And the mutability issue was bothering me in a very real way (I spent a month, A MONTH, tracking down a dropped-session issue which ended up being a stray mutation of the gigantic ENV variable in the middleware stack... That class of bug would not exist in Elixir/Erlang). Elixir/Erlang provided very brand-new things to learn... pattern-matching instead of complicated nested logic, explicitly passing around state instead of holding it everywhere, macros, OTP, I mean pretty much everything underneath is different except for the syntax. ;) You can't learn something like macros in Ruby, at all. If certain things aren't core language features, it's just difficult to learn them, period.
- pron 11y ago> I ran out of new things to learn in Ruby, around the time I wrote a fizzbuzz implementation using pure functionals without any conditionals. I am not a Ruby developer, but if Ruby is Turing complete I can think of a great many things you can learn. Have you implemented a B-Tree? Edmonds-Karp? Linear programming algorithms? Dynamic programming? Why are you limiting your learning to different styles of implementing a trivial algorithm? That's pretty much the same as learning new languages, and programming language concepts occupy a tiny, tiny bit of computer science (like, 4% tops). The programming language or the style you're using -- imperative, pure-functional, whatever -- is just something to express an algorithm. To me, what you said sounds like: "I've learned all I could about writing with pens -- I've tried all the colors to write 'the quick brown fox'-- so now I must switch to pencils".
- lectrick 11y agoI have some bad news for you (and for Edsger W. Dijkstra, who you would probably be a fan of)- In the "real world" of programming work, you will likely rarely encounter most of those things. Real-world dev is NOT about "computer science proper". (Unless you're building a language from scratch. Which is like 0.01% of all programming work.) You should of course be aware of them and what they do, and when you think you need them you should Google them and learn them then (and of course be able to do so). Sometimes you need to switch languages- Perhaps you want the "look and feel" of pencil art which you can't do with pen-driven art without A LOT of work. You can implement immutable data structures in Ruby- for example, see the Hamster gem here https://github.com/hamstergem/hamster https://github.com/hamstergem/hamster - but 1) it is much, much slower, 2) none of the other gem code you will call into will use Hamster 3) you actually have to code differently to Hamster data structures than to the built-in Ruby ones. Just because you CAN make pencil-art with pens, doesn't mean that's the "happy path." And just because you can represent every possible computer operation as a series of lambda functions (see "Programming With Nothing" here, great article: http://codon.com/programming-with-nothing http://codon.com/programming-with-nothing) doesn't mean you should.
- pron 11y ago
- jtwebman 11y agoYou are correct. In me learning Elixir I have taken the patterns and write very different Javascript, php, and C# because of it. Every language I learn I learn new approaches to coding in all the languages I already know.