Live data from Hacker News

Elixir 1.5 released

github.com

101–110 of 167 posts

Re: Elixir 1.5 released

#102

I highly recommend playing with Elixir or another purely functional language. I've only gone through the Programming Elixir book[1], but it has fundamentally challenged how I think about solving problems in other languages. [1]( https://pragprog.com/book/elixir13/programming-elixir-1-3 )

If you are interested in learning a purely functional language, I'd recommend against picking a dynamically typed language like Elixir. Functional programming only starts to show its power with types and parametric polymorphism (higher kinds, etc...). Without type annotations, all you get is a watered down, crippled version of what a functional language can achieve.

Well first, Elixir isn't purely functional. It's got side effects all over the place, it just doesn't have mutable variables.

Second... While I love static typing as much as the next guy, there's definitely value in immutable data in a dynamic language. You also get Dialyzer in Elixir/Erlang, which is an interesting alternative to the usual type systems you find in Haskell/Rust/etc. in that it focusses on finding places where there's provably a problem, rather than where it's not provably correct.

Re: Elixir 1.5 released

#103

Earlier quoted context omitted.

You and blatyo are convincing me. :-) I really appreciate your openness in sharing these stats. I don't need to serve 2 million concurrent websockets. But I need to render HTML/JSON based on some database queries, under moderate traffic, and I'd like to get it under 200ms without trying so hard. I mostly agree with DHH that response time is dominated by database queries and Rails is "fast enough". Most problems you c…

The performance aspect also makes a huge difference in development. The application boots fast and the live reloading experience is rewarding. Having a 100 test cases that hit your endpoint+database running in less than a second is pure joy.

Yes. Tests run so quickly!

Re: Elixir 1.5 released

#105

What frontend stack fits Elixir most symmetrically? Is there a "ClojureScript" to Elixir's "Clojure"?

Elm has been going strong among Elixir users, including a bunch of influencers.

I personally haven't tried it out of personal preference and instead had a great experience coupling Vue with a Phoenix backend.

Re: Elixir 1.5 released

#106
post #52

Earlier quoted context omitted.

+1 for rustler. Writing NIFs (native implemented functions) in Rust can speed up your Elixir apps significantly. I think Rust & Elixir are a great duo.

Have you written any Rust NIFs? What's the dev experience like?

With the Rustler Rust library, almost blissfully easy. I highly recommend it.

Re: Elixir 1.5 released

#107

Earlier quoted context omitted.

Also, Bleacher Report is a pretty large site on it: http://www.techworld.com/apps-wearables/how-elixir-helped-bl... They went from 150 Rails servers to 5 BEAM servers "and could probably get away with two" (!)

To be fair, if you're running Rails, any different choice of technology will yield huge performance improvements.

[deleted]

Re: Elixir 1.5 released

#108

Earlier quoted context omitted.

Also, Bleacher Report is a pretty large site on it: http://www.techworld.com/apps-wearables/how-elixir-helped-bl... They went from 150 Rails servers to 5 BEAM servers "and could probably get away with two" (!)

To be fair, if you're running Rails, any different choice of technology will yield huge performance improvements.

For an improvement of 2 orders of magnitude while maintaining the same level of developer complexity, I'm hard pressed to think of any other web framework besides Phoenix that can deliver this.

Re: Elixir 1.5 released

#109
post #10

Earlier quoted context omitted.

I'm just starting to use elixir and I'm curious, when would one use `()` in place of `nil`?

it's one of the controversial points in lisp dialects. treating empty list as nil means it's falsey when used as predicate which has it's pros and cons. for instance if empty list is truthy, this pseudocode won't terminate if tail is defined to always be a (possibly empty) list: while seq: head, seq = seq.head_tail() f(head)

If empty list isn't "falsey", it's not Lisp. It's a "Lisp-like" at best.

Sussman and Steele had the good sense not to call Scheme " Lisp", because they knew that it would "ring falsey".

Re: Elixir 1.5 released

#110
post #30

Elixir is truly an under-appreciated language. I've only toyed with it, and I'm really impressed with the whole ecosystem. Elixir, Phoenix, Ecto, Hex, etc all make a great ecosystem, and the awesomeness that is BEAM/OTP is just amazing. I loved the hot code deploys, and updating a system while it's running is something I've never seen before in action. Also Rustler is a great way to write CPU intensive NIF code too.

I wonder how the popularity trend of Elixir has been lately. I know you can try to see it through GitHub or Google Trends, but as many members of the Elixir community use Slack I don't know if it's the best way to do it. One thing I'd like to see would be the evolution of downloads of the language and on Hex.

I think is not that popular yet. Look at this issue for the sublime elixir plugin [1], it's breaks a lot of things and seems stalled for a long time...

[1] https://github.com/vishnevskiy/ElixirSublime/issues/8

Post reply on HN