5 ms·
Metaprogramming Elixir
- chrismccord 12y agoAuthor here. Fun to see this getting some HN love. Those who want a glimpse of what Elixir metaprogramming is all about can check out my Erlang Factory SF talk which gives a nice overview of Elixir's macro system: http://www.chrismccord.com/blog/2014/03/13/write-less-do-more-and-have-fun-with-elixir-macros/ http://www.chrismccord.com/blog/2014/03/13/write-less-do-mor...
- dpeck 12y agoFor anyone looking to learn more about Elixir/Erlang, here's a dump of links that I posted recently to the local Atlanta Elixir Meetup group. Roughly in the order I'd recommend consuming them. Dave Thomas - Power of Erlang, Joy of Ruby - https://www.youtube.com/watch?v=lww1aZ-ldz0 https://www.youtube.com/watch?v=lww1aZ-ldz0 Dave Thomas Elixirconf Keynote - Think Different- http://www.confreaks.com/videos/4119-elixirconf2014-opening-keynote-think-different http://www.confreaks.com/videos/4119-elixirconf2014-opening-... elixir-lang.org tutorial - http://elixir-lang.org/getting_started/1.html http://elixir-lang.org/getting_started/1.html Programming Elixir - https://pragprog.com/book/elixir/programming-elixir https://pragprog.com/book/elixir/programming-elixir Awesome Elixir - Curated list of great libraries - https://github.com/h4cc/awesome-elixir https://github.com/h4cc/awesome-elixir Elixir In Action - http://www.manning.com/juric/ http://www.manning.com/juric/ Learn You Some Erlang For Great Good - http://learnyousomeerlang.com/ http://learnyousomeerlang.com/ Erlang and OTP In Action - http://www.manning.com/logan/ http://www.manning.com/logan/ I haven't had a chance to read McCords new book, but having read his code and interacted with him a fair bit in #elixir-lang the last few months I can only assume I'll be adding it to the bottom of this list as an important intermediary step to becoming proficient in Elixir along with learning OTP.
- bphogan 12y agoThis is a great list. I appreciate this. I have to add that your last entries are really important. Elixir is great, but I'm finding more and more that I have to dig into Erlang to do many, many things, because Elixir doesn't have that many libraries yet. Things like basic hashing have to be done using Erlang, so knowing the Erlang standard library seems to be pretty important right now. And yea, you're not going very far without digging into OTP, and Martin Logan's book is pretty excellent. Great entry on this list.
- bradfordarner 12y agoI agree with you so much. I find myself digging into Erlang docs more and more. That being said, I think there needs to be a communal effort to improve Erlang documentation. It is very terse. One of the points brought up in Garret Smiths talk: https://www.youtube.com/watch?v=3MvKLOecT1I https://www.youtube.com/watch?v=3MvKLOecT1I
- dpeck 12y agoAgree completely. For me its all about OTP, thats the difference maker with Elixir/Erlang, without that its just another functional language, with it is an incredibly powerful tool/framework for building impressive distributed fault tolerant systems.
- adamkittelson 12y agoA lot of that is by design. It's my understanding that they made the decision not to wrap erlang standard libraries just for the sake of wrapping them, because the erlang standard libaries work just fine when called from elixir. If something needed to be wrapped to make it play more nicely with elixir, for example to change argument order to better suit elixir's |> operator, or if there were other real benefits to wrapping an erlang library, then they might wrap it. Otherwise if the erlang library is good just use the erlang library.
- bphogan 12y agoYea, that's what I figured. But I don't like it so much. I tend to end up wrapping it myself just because I like piping with |>. But my main point was that when I started, I could just look to one source for language docs. But as I dug in, I realized that to do a lot of things, I needed to look at Erlang too. And then I realized I had to understand it. It's not bad, it's just a thing that makes learning the awesome language a lot more difficult.
- kungfooguru 12y agoAlso checkout How I Start Elixir http://howistart.org/posts/elixir/1 http://howistart.org/posts/elixir/1 and Erlang http://howistart.org/posts/erlang/1 http://howistart.org/posts/erlang/1
- mseepgood 12y agoErlang in Anger (Frank Herbert): http://www.erlang-in-anger.com http://www.erlang-in-anger.com
- dpeck 12y agoyeah, I'm sure thats a good addition, I've skimmed it and it's on my list to actually read.
- unvs 12y ago*Fred Hebert
- mVChr 12y agoYeah, otherwise it would be http://www.the-erlang-must-flow.com/ http://www.the-erlang-must-flow.com/
- pselbert 12y agoThanks for bringing this up. I've seen and heard it mentioned before and never took the time to seek it out.
- AnkhMorporkian 12y agoIf I may, I feel that there's a better version of the first video. The version you linked suffers from terrible framing where you can't see a single line of code he writes. This video has a much better view, but unfortunately has awful sound. For me though, code is more important than sound quality. https://www.youtube.com/watch?v=KQwEmdOH-GM https://www.youtube.com/watch?v=KQwEmdOH-GM
- dpeck 12y agoyeah, I found that one, but I couldn't deal with the sound and I felt that the videos were more about getting the general idea of Elixir and understanding some of the things you could do with it in an infotainment way. I know were you're coming from though, its a really good preso with surprisingly bad recordings.
- bentanweihao 12y agoAwesome list! I also did two presentations at RedDotRubyConf 2014 and RubyConf 2014 on Elixir: Rubyists! Have a sip of Elixir – http://www.confreaks.com/videos/5078-RubyConf2014-rubyists-have-a-sip-of-elixir http://www.confreaks.com/videos/5078-RubyConf2014-rubyists-h... Ruby + Elixir – Polyglot FTW! – http://www.confreaks.com/videos/3845-rdrc2014-ruby-elixir-polyglotting-ftw http://www.confreaks.com/videos/3845-rdrc2014-ruby-elixir-po... Also, I'm writing a book on Elixir – http://www.exotpbook.com http://www.exotpbook.com Finally, I've done a few posts of Elixir – http://benjamintan.io/blog/tags/elixir/ http://benjamintan.io/blog/tags/elixir/
- rjsamson 12y agoI bought the ebook last weekend and I have to say that Chris has done a really great job here. For anyone looking to get deeper into Elixir, this is a great read - can't recommend it enough!
- thisishugo 12y agoThe first rule of Macros is: don't write macros. However, if you are going to use (and abuse) this powerful feature of Elixir, I can't think of anyone better than Chris McCord to help guide you on your way. Chris' talk on Macros[0] at Erlang Factory last year was not only highly education, but also very entertaining. If that video doesn't convince you, I recommend you take a look at the Phoenix web framework codebase[1]. Chris is an incredibly talented programmer, and an incredibly helpful, and patient guide to those less skilled than he attempting to contribute code to his projects (I know this because he held my hand through getting a pull request merged into Phoenix some months ago when I was still playing with Elixir). [0] http://vimeo.com/88885763 http://vimeo.com/88885763 [1] http://phoenixframework.org http://phoenixframework.org
- bradfordarner 12y agoI got the book last weekend. Chris has done a wonderful job! For me, metaprogramming is one of the things that was a deciding factor with Elixir, in addition to all the other functional programming aspects that are part of the language. I'm most definitely not an amazing polyglot with a wide degree of experience with every single functional language out there, but this feature pushed me to invest time to learn Elixir. Metaprogramming has saved me immense time in numerous applications in Ruby. So, I consider it a critical thing to learn. Of course, after investing time in Elixir you very quickly learn the power of the Erlang VM. Elixir is like a gateway drug! I now have a consistent mix of Erlang and Elixir syntax in the stuff I'm playing around with. One of the chief complaints for people with Erlang is the syntax. Elixir makes the entire proposition of learning Erlang far more appealing...and then you really it is all actually Erlang under the hood! And, one of the big things that Elixir adds on top of the Erlang VM is metaprogramming. There aren't a lot of great sources out there on the subject. Chris's book is a great addition to the slowly growing Elixir library.
- alanpeabody 12y agoEven coming in with a few years experience in Clojure and having spent time writing macros in Elixir I have found this to be a really worthwhile read (so far). That said, this should not be your first Elixir book (as Chris points out in the book's introduction). It should be your second, especially if you are interested in writing libraries.
- perishabledave 12y agoDave Thomas' Programming Elixir should be the first :)
- djm_ 12y agoAgreed - fantastic book and very well written. You can get a taster of it by watching his keynote at ElixirConf. [1] [1] http://www.confreaks.com/videos/4119-elixirconf2014-opening-keynote-think-different http://www.confreaks.com/videos/4119-elixirconf2014-opening-...
- deleted 12y ago[deleted]