4 ms·
After learning about Elixir (http://elixir-lang.org/ http://elixir-lang.org/) and playing with it some, I now want an Elixir job. (I'm skilled in Ruby, and Ruby
by lectrick 11y ago
After learning about Elixir (http://elixir-lang.org/ http://elixir-lang.org/) and playing with it some, I now want an Elixir job. (I'm skilled in Ruby, and Ruby already back in the day wanted me to get a Ruby job... which I finally did)
One nice thing about Elixir for Lisp lovers is that you get "real" macros (full AST access within a quoting context) AND actual syntax. I am not sure there are any other languages which feature that combination currently.
- vezzy-fnord 11y agoAND actual syntax What does "actual syntax" mean here?
- cursork 11y agoPresumably a riff on "Lisp has no syntax"
- vezzy-fnord 11y agoI actually thought it was a riff on Erlang's syntax, which is just as annoying a complaint in 2015.
- lucozade 11y agoIt does have a syntax. It's just hard to find in amongst all the parenthetical shrubbery.
- lectrick 11y agoYes, I was riffing on Lisp not really having a "syntax." The fact that Erlang's syntax is (disclaimer: subjective) awful just adds further grist to the Elixir mill, assuming you think Elixir's syntax is (disclaimer: subjective) sweet. Which a lot of people seem to be coming to the same conclusion on.
- vezzy-fnord 11y agoThat's their loss, then.
- lectrick 11y agoI don't see a loss. I see a win. In Elixir, I have the full power of Lisp-level macros, in a functional immutable pattern-matching language, with a ridiculous level of concurrency (you can spawn a million or so processes in a second on your typical laptop), hot software upgradability (https://www.youtube.com/watch?v=96UzSHyp0F8 https://www.youtube.com/watch?v=96UzSHyp0F8 for a cool demo), access to the entire repository of already-existing battle-tested Erlang code... ... AND it's readable. :P Lisp with its powerful macro facility has had literally dozens of years to find acceptance and still struggles (argumentum ad populum notwithstanding, a userbase with critical mass brings a plethora of other advantages). Ruby found enough of a niche that I think there is something to be said for Ruby's style of syntax. Elixir gives you both, and then some.
- vezzy-fnord 11y agoI was talking about Erlang and Elixir, not Lisp and Elixir. I don't need an introduction to Erlang/OTP, as I've used it for quite a while. You sound a lot like you're in the hyper-enthusiastic newbie phase, though.
- lectrick 11y agoI... guess I am. Is that OK? :) I like Erlang too... but I was one of the folks for whom the syntax turned me off originally. I can't explain why, especially if you're one of those developers (bless their pure-engineering hearts) who thinks syntax is irrelevant once you grok it. The best I can explain it is that some brains interpret computer code as a very abstract form of writing and some don't (or don't need to), and I may be one of the former, and that causes some syntaxes to "feel better" or "feel worse". It's... not very rational, sigh.
- TeMPOraL 11y agoYou get full AST access in Erlang as well. I don't know how it is in Elixir, but in Erlang you don't want to touch that feature with a ten foot pole. It's hairy and incredibly annoying to work with. I'm having a hard time to imagine how it couldn't be without homoiconicity and with that "actual syntax". I've been reading about macros in Scala recently, and they seem to suffer from the same problem - they just don't fit well with the rest of the language.
- lectrick 11y ago> but in Erlang you don't want to touch that feature with a ten foot pole. It's hairy and incredibly annoying to work with It's pretty much the exact opposite in Elixir. The only thing you really have to wrap your head around is the switch between the quoting context and the unquoting context... which is pretty much no different from understanding macros period. The definition syntax looks just like a method definition, except it's "defmacro" instead of "def", and the macro body receives an AST instead of (or in addition to) your usual arguments. But I'm probably not doing it justice... http://elixir-lang.org/getting-started/meta/macros.html http://elixir-lang.org/getting-started/meta/macros.html https://pragprog.com/book/cmelixir/metaprogramming-elixir https://pragprog.com/book/cmelixir/metaprogramming-elixir Here Dave Thomas creates a simple "returning" macro, you can just watch the screencast if you're feeling lazy: http://pragdave.me/blog/2014/11/05/a-simple-elixir-macro/ http://pragdave.me/blog/2014/11/05/a-simple-elixir-macro/