Live data from Hacker News

Elixir 1.0.5 released

github.com

21–29 of 29 posts

Re: Elixir 1.0.5 released

#21

I've been reading about Elixir here-and-there for a while and decided to jump into it last week. I really like it. I'm a big fan of FP and, having increasingly found myself falling out with Python, can definitely see this becoming my dynamically typed language of choice.

Would you recommend Elixir for a first FP language? I am familiar with FP from using Python and JavaScript, but I have never used a completely functional language yet. Can I dive into Elixir or should I learn something more "traditional" first such as Haskell, Lisp, etc?

I personally didn't understand FP at all until I played around with Erlang (specifically, the "Learn You Some Erlang" book). I reckon Elixir would be similarly enlightening (if not more; I feel like Elixir's macros are easier to wield than most Erlang equivalents, for example).

The friendly, consistent syntax and the imperative-ish constructs in some places can work as a great stepping stone into the rest of the functional/declarative programming world.

Re: Elixir 1.0.5 released

#22
post #2

Haven't looked at elixir yet, but being an erlang fan and quickly hopping through the source it looks like elixir is doing for erlang essentially what coffeescript does to javascript. Something many non-erlangers have long lamented is the syntax so this looks quite interesting, also adding the running compiler is a nice idea for the macro support :)

Hi, Elixir creator here, thanks for commenting! You may want to watch my talk at Erlang Factory SF 2015: https://www.youtube.com/watch?v=Lqo9-pQuRKE Elixir is not really about the syntax, we have great tooling, our own standard library (with proper Unicode support, collections, unified API for dictionaries, etc) and our own approach to some constructs in OTP. Feel free to ping here if you have any questions. I will m…

> Elixir is not really about the syntax

Don't lie, Jose; we all know it's about the syntax ;)

Kudos for the awesome language you've created.

Re: Elixir 1.0.5 released

#23
post #11

I sponsored the OpenBSD port of Elixir 1.0.5 & Erlang 18: http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/lang/elixir/ So it'll be included in OpenBSD 5.8.

Thank you so much!

I just noticed the Erlang port yesterday; it was a most pleasant surprise.

Re: Elixir 1.0.5 released

#24
post #14

Earlier quoted context omitted.

I can't see how they would be much different from the use cases of Erlang/OTP, of which there are plenty of stories.

I'm interested in more than just the use cases (although still curious to hear why someone chose Elixir, whether it be for the language, BEAM, or whatever.) I'm looking for stories of why it was chosen over another language and what the end results were.

Well neither will win any speed races, but if your problem requires soft-realtime functionality, concurrent execution, or incredible fault tolerance you'd do much worse than to choose Elixir/Erlang. And a simpler learning curve than many FP languages (in my experience, at least) sweetens the deal.

Re: Elixir 1.0.5 released

#25
post #18

Earlier quoted context omitted.

Hi, Elixir creator here, thanks for commenting! You may want to watch my talk at Erlang Factory SF 2015: https://www.youtube.com/watch?v=Lqo9-pQuRKE Elixir is not really about the syntax, we have great tooling, our own standard library (with proper Unicode support, collections, unified API for dictionaries, etc) and our own approach to some constructs in OTP. Feel free to ping here if you have any questions. I will m…

Love the language, I've been using it (phoenix) to build a more real-time version of my current rails app. But I have a concern with Elixir core's Enum. In particular, the Enumerable protocol has us implementing Enum.reduce for our own data-types, but Enum.map is written as `reduce(collection, [], R.map(fun)) |> :lists.reverse` is there any chance Elixir's enum core can take a page from Clojure's transducer idea and,…

It would be possible to have something like `Enum.map |> Enum.into`. You could also do `Stream.map |> Enum.into` if you don't want to traverse it multiple times (similar to Clojure's `into`). In fact:

    iex> Stream.unfold("hello", &String.next_codepoint/1) |> Enum.to_list
    ["h", "e", "l", "l", "o"]
The reasons we don't have first class support for this though are:

1. There are multiple ways you could traverse a string. By bytes, by codepoints or by graphemes. I don't think we should pick any of those as default. Ruby did that and to this day it is source of confusion (aggravated by the behavior change from 1.8 to 1.9)

2. Modifying strings like this would be horribly inefficient. Using split/join wouldn't be recommended also as you are generating a bunch of intermediate garbage to go from string -> string. The recommended way is to rely on pattern matching and Elixir's bit syntax as the compiler will be able to optimize most cases well.

Re: Elixir 1.0.5 released

#26
post #6

I'd love to read about people's real life uses of Elixir, whether it be for their jobs or side projects.

You can also check out conference videos:

* Elixirconf EU 2015: https://www.youtube.com/playlist?list=PLWbHc_FXPo2jBXpr1IjyU... (at least Michael's and Claudio's talks)

* Elixirconf 2014: http://confreaks.tv/events/elixirconf2014 (at least Martin's and Stephen's)

Re: Elixir 1.0.5 released

#27

Earlier quoted context omitted.

Would you recommend Elixir for a first FP language? I am familiar with FP from using Python and JavaScript, but I have never used a completely functional language yet. Can I dive into Elixir or should I learn something more "traditional" first such as Haskell, Lisp, etc?

With this book: https://pragprog.com/book/elixir/programming-elixir I would say it's an outstanding choice to learn functional programming. The book is written for someone who knows an imperative language and wants to learn about functional programming.

Dave's book is a great read. I also recommend the Manning book "Elixir in Action" although I'm only half way into it.

Re: Elixir 1.0.5 released

#28

Earlier quoted context omitted.

Would you recommend Elixir for a first FP language? I am familiar with FP from using Python and JavaScript, but I have never used a completely functional language yet. Can I dive into Elixir or should I learn something more "traditional" first such as Haskell, Lisp, etc?

My current feeling [bearing in mind that it's been less than a week!] is that Elixir is to Haskell as Python is to C++. If you want to learn a dynamically typed FP language, then I think Elixir is a fine choice; especially from a JS/Python background, plus all the goodies that come with the Erlang VM. I've read it's also good for metaprogramming, so it ticks the same boxes as Lisp, without having to get used to S-exp…

Thanks for the suggestion, I will definitely be giving Elixir a try!
Post reply on HN