Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Thanks for the great work, I am a big Elixir and Phoenix fan. Although I don't think it will ever hit the heights of ruby or node in terms of popularity, I believe elixir and phoneix are very good long term bets.

The improved Compiler checks are a great step in the right direction. I know elixir language isn't going to change much (if at all?) now, so putting more time into things like safety and developer productivity will be warmly welcomed.



I have used Rails and Django extensively in the past, and I tell you there is no way I'm coming back after using Phoenix and Elixir.

For me, is not just the concurrency primitives that I now take for granted, but also the fact that you can write beautiful maintainable code.


What do you think it is about Elixir that leads to beautiful/maintainable code? I keep thinking about giving it a try.


My mind instantly darts to the combination of piping + pattern matching.

Edge cases can live as two line adjustments in ways I don't know how to do in any other language.


Worth noting that the concepts of piping and pattern matching don't just exist in the language itself, but also in an architectural level. Plugs, for example, allow you to "pipe" entire web requests in a very elegant and logical fashion.


Couldn't have answered the question better/more succinctly myself.

When I'm working on the JavaScript (front end) side of an Elixir project, I repeatedly get into these positions where I'm thinking, "Man, I could express this so succinctly and elegantly in Elixir. There's no way in JavaScript that doesn't feel clunky in contrast."


That makes sense. For a period of my career I did some Prolog and always liked the way pattern matching allowed you to write extremely descriptive code.

Funnily enough, I think pattern matching is one of the most exciting things to happen in Ruby for a long time. While it isn't on a par with functional pattern matching it's still going to be incredibly useful.


Pervasive use of pattern matching, including function definitions. It makes if-less programs a reality. IMHO enumeration is much easier to read.


I was just thinking that a language not changing much can be a sign of a very good initial design. Having to change things all the time is often a sign that there is a major flaw in the foundation. Good to see a language that is very active, but refining rather than ripping out the floors.


A talk in ElixirConf this year showed that the pipe operator in Elixir is just a macro. A Code BEAM V conf Q&A with Jose had a (playful, trolling) question about implementing right handed assigns and Jose said that you can just write a macro if you want it. That all reinforces that the core lang doesn't need to change really; it's extensible enough to let you do whatever you want on top. Pretty cool.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: