Live data from Hacker News

Elixir 1.2.0 Released

github.com

41–50 of 69 posts

Re: Elixir 1.2.0 Released

#41
post #17

Earlier quoted context omitted.

Almost, you definitely have a nice REPL however I find the workflow of Clojure way better. The problem I think lays on the fact that Clojure group function inside very flexible namespace, while Elixir use more rigid modules. However in my limited experience the way you code Elixir feels very different from the way you code Clojure. It's difficult to explain, but I would say that I follow more my gut while I code Cloj…

> the code in Clojure support concurrency and parallelism, while in elixir concurrency is the norm This makes little sense to me. You feel it is the norm in both? If you are unsure if a post is readable, why not just rewrite it?

> If you are unsure if a post is readable, why not just rewrite it?

One can grapple with several ways to express something, and be unsure which one is the best. Sometimes just publishing is better than being forever stuck in an indecision loop. :)

The questions that arise from the confusion can tell you how to better structure your words.

Re: Elixir 1.2.0 Released

#42
post #4

Earlier quoted context omitted.

I hear Elixir is great, but I understood and still enjoy what you described in Scala, so I don't see what makes it unique. On top of this, it runs on the JVM, so you get to use the entire history of Java libraries whenever you need it. Your example: >> (1 to 10).map((x) => x*x).filter(_ Of course, Scala is an extremely complex language, but I just take the features I feel are useful and/or relevant to what I'm trying…

The functional aspects are not really that different. I think the key one is that Erlang has tail call optimization baked in, whereas Scala achieves something close, but not exactly there, by working around the JVM's limitations. Scala's implementation works really well when you have a function calling itself, or two functions mutually calling each other, and that basically supports recursion. But the inability of ar…

I'd stress the fact that 90% of network interacting Java code is blocking and is therefore not suitable for use with Scala's concurrency model. Worse, it will work fine in testing and small workloads, but quickly you run out of threads in your execution context and find yourself with a broken production system.

Erlang differs for two main reasons. First, BEAM has a scheduler that will prevent blocked processes from tying up OS threads. So even if a library only supports synchronous calls, it will still work without interfering with other parts of your application. Second, everything is culturally designed around OTP (the standard library for concurrent applications). Libraries tend to support async modes in ways that jive well with the rest of your codebase. There aren't really competing standards like Akka vs Finagle in Scala. Again, even if the code does not support async it will still work. Async is just an optimization (not just for performance, but the wide swath of runtime inspection tools work better on async designs).

Re: Elixir 1.2.0 Released

#43
I'd be curious to hear some criticism, negative experiences, downsides from people with deeper experience. This thread is 100% positivity and praise, which is highly unusual for HN (New Year's afterglow??)

To be clear, my occasional dabbling in Elixir has yet to reveal any major shortcomings so this isn't an elephant in the room kind of situation, just a genuine request from people whose thoughtful opinions I generally appreciate.

Re: Elixir 1.2.0 Released

#44
post #43

I'd be curious to hear some criticism, negative experiences, downsides from people with deeper experience. This thread is 100% positivity and praise, which is highly unusual for HN (New Year's afterglow??) To be clear, my occasional dabbling in Elixir has yet to reveal any major shortcomings so this isn't an elephant in the room kind of situation, just a genuine request from people whose thoughtful opinions I general…

Elixir usually receives this much praise, so it's not unusual. Elixir (and Phoenix) are really great. Phoenix is probably my favorite backend framework I've ever used - and I've used a lot. And the community is wonderful.

Now, before I sound too much like Trump, there are some downsides, as always. It is a dynamic language, which can be a downside for some. (Type-checking is possible though.) It's not that fast with pure number-crunching, so it's best for distributed, networked applications. The syntax isn't always quite as nice as Ruby. And the language is relatively complex (more than Go, much less than Ruby/PHP/Scala).

Re: Elixir 1.2.0 Released

#45
post #43

I'd be curious to hear some criticism, negative experiences, downsides from people with deeper experience. This thread is 100% positivity and praise, which is highly unusual for HN (New Year's afterglow??) To be clear, my occasional dabbling in Elixir has yet to reveal any major shortcomings so this isn't an elephant in the room kind of situation, just a genuine request from people whose thoughtful opinions I general…

From my experience the positivity is not unwarranted, Elixir is a great, young language with an awesome community (as most new languages have). The creator, Jose Valim, comes across as a very nice person and I feel that a lot of the positive attitude in the community stems from this. As to the language itself, it feels well designed and fun to use (the pipe operator is really cool). Plus it runs on the Erlang VM which is an incredible piece of engineering. Overall a great next language to pick up and experiment with, plus it has reached a good level of maturity so you won't see your code break from one release to another.

Re: Elixir 1.2.0 Released

#46
In today's Who's Hiring thread, there is only one mention of "elixir". I quite like that as Elixir still has the aura of something new for its own sake with the type of people that this attracts.

Re: Elixir 1.2.0 Released

#47
post #17

Earlier quoted context omitted.

Almost, you definitely have a nice REPL however I find the workflow of Clojure way better. The problem I think lays on the fact that Clojure group function inside very flexible namespace, while Elixir use more rigid modules. However in my limited experience the way you code Elixir feels very different from the way you code Clojure. It's difficult to explain, but I would say that I follow more my gut while I code Cloj…

> the code in Clojure support concurrency and parallelism, while in elixir concurrency is the norm This makes little sense to me. You feel it is the norm in both? If you are unsure if a post is readable, why not just rewrite it?

Hi,

nope, I feel that concurrency is the norm in Elixir, while it is supported in Clojure, let me explain better.

In Clojure you have an idea on which order what function is called on what data ie. you read your data from IO, you clean it, you analyze it and finally return the result in IO.

This code is sequential, granted you can ask the first batch of data to the IO and while you wait for the second batch start to analyzes the data you already got (concurrency) or/and spawn a lot of map-reduce jobs to use all your processors to analyze the data (parallelism)

In Elixir you define a lot of independent process (you can see a process as data plus functions that act on that data itself) and each process run concurrently with the other, this create a lot of new problems but is also very powerful.

> If you are unsure if a post is readable, why not just rewrite it?

Actually I was in the car while I wrote the message, this is the first chance I got back on my computer.

You are the only one who felt to comment on the post asking for more clarification, it means that either people don't care or that people did understand what I was saying, I am just glad that you asked so I can clarify myself and explain better ;)

Re: Elixir 1.2.0 Released

#48

Earlier quoted context omitted.

> the code in Clojure support concurrency and parallelism, while in elixir concurrency is the norm This makes little sense to me. You feel it is the norm in both? If you are unsure if a post is readable, why not just rewrite it?

> If you are unsure if a post is readable, why not just rewrite it? One can grapple with several ways to express something, and be unsure which one is the best. Sometimes just publishing is better than being forever stuck in an indecision loop. :) The questions that arise from the confusion can tell you how to better structure your words.

Wise words, thanks :)

Re: Elixir 1.2.0 Released

#49
post #46

In today's Who's Hiring thread, there is only one mention of "elixir". I quite like that as Elixir still has the aura of something new for its own sake with the type of people that this attracts.

My company will be hiring soon and is using Elixir for backend services. Knowing Elixir is just a plus and any competent engineer can pick it up in a week.

However, finding Elixir jobs is harder if you're the seeker... I agree.

Re: Elixir 1.2.0 Released

#50

Just want to chime in reiterating everyone's thoughts already here that this language is fun, interesting, and worth your time investment to investigate. The biggest hurdles I had coming from OO Ruby were 1) how to handle state, since you no longer can just hang information off any arbitrary object attributes, 2) pattern matching (but now that I grok it, I love it, it's so useful and leads to more concise code), 3) l…

> the fantastic :observer.start() utility for visually observing tons of details about a running pid hierarchy, etc. observer is a rather nice tool. It is, -however- not an Elixir feature, but is something that ships with Erlang. [0] As you mentioned, you can call any Erlang code in Elixir (and vice-versa!). IIRC, you do the former by prefacing the Erlang code with a ":". So, ":observer.start()" would be written in E…

Yes to all of the above :)
Post reply on HN