Live data from Hacker News

Elixir 1.5 released

github.com

111–120 of 167 posts

Re: Elixir 1.5 released

#111

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

Elm works very well with Elixir[0] [0] https://www.dailydrip.com/topics/elixirsips/drips/phoenix-an...

In what way does Elm work better with Phoenix than, say, with Rails or Django?

Re: Elixir 1.5 released

#113

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 )

Beware, because it can make you hate your current day-job language

Not for me. I've gone back and forth between projects that required functional languages, and projects that didn't across different companies. Bad code is bad code no matter what language it's written in. What makes me love my day job is whether I have the ability to make it better, and if those that work with me are aligned in wanting to do so.

I think practitioners of functional languages get a little preachy when really, exposure to functional languages should just be assumed to be part of the basic training of any engineer. It's a tool and as good as it is for some things, it's absolutely awful for others.

Re: Elixir 1.5 released

#114
post #60

What do people use as a PaaS provider for Erlang/Elixir?

Using Heroku at the moment (largely because I was already familiar with its ecosystem) for a phoenix app, though they don't have support for Elixir. In the future I'm considering doing my own hot deploys to AWS, but the cost of running on Heroku is small enough that it may not be worth the time to migrate off.

Re: Elixir 1.5 released

#115
post #108

Earlier quoted context omitted.

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.

Java and C# easily outclass Phoenix i performances, if only because they are statically typed, but also because they run on VM's that are more advanced (and admittedly older, so more optimized) than BEAM.

Re: Elixir 1.5 released

#116

Earlier quoted context omitted.

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 pla…

> there's definitely value in immutable data in a dynamic language.

Sure, but there's even more value in immutable data in a statically typed language, because of all the advantages that come with such a language (automated refactoring, better performances, tooling, etc...).

Re: Elixir 1.5 released

#117

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.

Urg, I'm so sick of waiting for rails to boot up. It takes like 30-45 seconds at work...

Re: Elixir 1.5 released

#118

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 )

Beware, because it can make you hate your current day-job language

Not necessary. Boring CRUD apps are similarly boring in Elixir/Erlang/Haskell/Ocaml as well...

Re: Elixir 1.5 released

#119

Is Elixir being used exclusively for web development? If not, what else are people using it for?

Backend services that need high reliability, low latency, lots of concurrency. Lower p99 latency and better concurrency model than Java, more reliable/productive than C++.

Re: Elixir 1.5 released

#120

Can anyone doing Phoenix in production share their typical HTTP response times? I built a small Phoenix project about a year ago, and compared to Rails it wasn't quite as fluent but still pretty nice. But ever since then, I've been trying to decide if the extra development time is worth it for the performance gains. I get that Elixir is more scalable, and I love how the RAM requirements compared to Rails are tiny, bu…

For single a web api server Elixir is going to be far behind, performance wise, against nodejs, the JVM and Go. Their big feature is reliability/clustering but in the context of web requests, scaling them is real easy today, just use a load balancer. For me Erlang/Elixir have very specific niche use cases(at which it excels at) but its fans confuse beginners promoting it as a "general purpose language" that they shou…

> For single a web api server Elixir is going to be far behind, performance wise, against nodejs, the JVM and Go.

To some Go web api frameworks perhaps.

To the JVM, not really. The frameworks I used with it in the past (spring/play/coupleOtherSmallOnes) are throttled to the number of threads for concurrent connections. The BEAM (Erlang/Elixir) has no such limitation and it blew away my old Java servers handily just due to its concurrency alone.

And not to nodejs at all. Running a single BEAM vs a single node there is no comparison, the BEAM runs circles around it. With nodejs you can shard it out to multiple running instances to get concurrency better but you run into OS limits far before the workload that the BEAM can handle.

Post reply on HN