Live data from Hacker News

Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

elixir-lang.org

131–140 of 170 posts

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#131

The last few years the Elixir ecosystem has started to become the simplest solution to so many use cases: - Web development with Phoenix and Liveview is immensely enjoyable and fast - AI with NX, Axon, Bumblebee - Audio and Video streaming and manipulation with Membrane - CQRS and Event Sourcing with Commanded - Embedded with Nerves to make your own devices - Mobile apps with Liveview Native ( in development ) - Queu…

I'll take the opportunity for a shameless plug on LiveView Native. In addition to mobile apps we can also build for desktop, watch, TV, and even Apple Vision Pro. All using LiveView concepts, performance, and ease of development.

Already sold. Just waiting for updates on production-readiness and Android support.

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#132
post #87

Earlier quoted context omitted.

I'll take the opportunity for a shameless plug on LiveView Native. In addition to mobile apps we can also build for desktop, watch, TV, and even Apple Vision Pro. All using LiveView concepts, performance, and ease of development.

Hi Brian, thanks for all effort put into LiveView Native. Quick suggestion, it would be nice if the landing page [1] has more information or links to actual examples of how to use LiveView Native. That page has not been updated in a long time and give the (misleading) impression that the project is on hold. [1] https://native.live/

website comes last

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#133

Earlier quoted context omitted.

When you use Elixir you have to go into it knowing you might have to end up maintaining any library you are using because the vast majority of Elixir libraries are abandoned. You have to search through libraries to find out which one is being maintained. For example if you want to use an OpenAI API client, you wouldn't want to use the most starred one because that hasn't been maintained in 7 months. If you just use P…

> Very very few companies build and maintain SDKs for Elixir. This is true with any tech until it gets traction. React/Next is backed by a big company, but Vue/Nuxt still managed to grab its piece of the pie. In order to get traction Erlang / Elixir needs enthusiasts who are ok with risking and introducing it to their company or product, at least partially. No offense, but instead of condemning the Elixir ecosystem,…

We did and it was a lot of work. We had to maintain 5-6 libraries ourselves instead of using one maintained by the services themselves. We had to fork libraries because they became abandoned.

Elixir has been around for 12 years now and still hasn't gained any meaningful traction.

The risk of using Elixir vastly out ways the benefits today if you are trying to build a product.

There is a reason why almost every product today is built using JS and Python because it easy to find developers, it's easy to find everything you need, almost every service supports it and there are tons of resources for it.

We switched for Elixir to JS and we only have to maintain the app itself. We have hundreds of OSS helping maintain the libraries we use most of them working for companies that the libraries are for. That's the massive advantage of using popular languages that everyone uses.

Elixir is a fun language but that's about it.

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#134

Earlier quoted context omitted.

> Very very few companies build and maintain SDKs for Elixir. This is true with any tech until it gets traction. React/Next is backed by a big company, but Vue/Nuxt still managed to grab its piece of the pie. In order to get traction Erlang / Elixir needs enthusiasts who are ok with risking and introducing it to their company or product, at least partially. No offense, but instead of condemning the Elixir ecosystem,…

We did and it was a lot of work. We had to maintain 5-6 libraries ourselves instead of using one maintained by the services themselves. We had to fork libraries because they became abandoned. Elixir has been around for 12 years now and still hasn't gained any meaningful traction. The risk of using Elixir vastly out ways the benefits today if you are trying to build a product. There is a reason why almost every produc…

Million+ concurrent users per server - Discord are certainly having fun.

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#135
post #103
post #84

Earlier quoted context omitted.

You know that Elixir is on the low end of performance right, so you take Go/Java/C# that are close to 10x faster.

performance has many dimensions. for example the cost/speed of spawning a process/thread and their intra process communication.

Very cheap in C# and Go. I assume Java has now closed the gap with its Green Threads implementation.

(Spawning an asynchronously yielding C# task is ~100B of allocations depending on state machine box size, with very small overall overhead and threadpool handling millions of them, they are cheaper than Elixir tasks which make different tradeoffs (and are subject to BEAM limitations), you can try this out on your machine by running the examples from this thread: https://news.ycombinator.com/item?id=40435220)

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#136
post #4

Super-excited for this release. I wish someone would put some resources into the Elixir IntelliJ plugin. I've tried, but I just can't enjoy using VSCode (vs IntelliJ based IDEs, Visual Studio, etc.)

Zed has been amazing so far for my Elixir journey, and their latest preview release has additional support for Elixir tests. Not sure how it compares to IntelliJ

I’ve also been using Elixir + Zed for the last couple months. Love it. And it’s so snappy. It’s the first editor I’ve found where ElixirLS doesn’t feel like it’s making my editor lag. Not sure what they do differently.

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#137
post #103

Earlier quoted context omitted.

performance has many dimensions. for example the cost/speed of spawning a process/thread and their intra process communication.

Very cheap in C# and Go. I assume Java has now closed the gap with its Green Threads implementation. (Spawning an asynchronously yielding C# task is ~100B of allocations depending on state machine box size, with very small overall overhead and threadpool handling millions of them, they are cheaper than Elixir tasks which make different tradeoffs (and are subject to BEAM limitations), you can try this out on your mach…

thanks for sharing!

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#138
post #56

Earlier quoted context omitted.

I love elixir. I use it for basically everything. And LiveBook has become my go-to place to start building toy software. I just can't do liveview. I have a very hard time grokking it, and it has a lot of footguns. (ex: if you need to remember to perform auth checks both doing a `pipe_through` in a router and using the `on_mount` callback in a LiveView, see [0].) In fact, the fact that the above sentence has zero mean…

Thanks for the link. This is my fault because the sentence is ambiguous. Where it tries to explain that "you need to remember to perform auth checks both", it rather means that you need to protect controller routes and LiveView routes the same way, but for a single LiveView, you don't need to do both. I will try to clarify it! If you have other footguns in mind, feel to shot me an email at jose dot valim on gmail!

Hi José, thank you for the reply. I hope I didn't come across as critical of the incredible work the elixir (and LV) teams have done. You are all absolute treasures to the programming ecosystem.

I think you'll find that my argument ("LiveView shouldn't be the default way of doing things") is fairly common.

It's not necessarily about the footguns (or lack thereof), or improving the docs: it's about there being a shared vocabulary among people that do web development that LiveView is alien to.

Web frameworks have historically been great tools to drive adoption of programming languages (Ruby/Rails, react/ts). The same could be true of Elixir.

However, in order for that to obtain, the learning curve can't be too steep, at least in the initial portions of it. I think you'll find that with LV the learning curve looks like a step, and imho that step is a bit too high.

Of course, all these arguments apply both at the individual level and the company/org level. Think about a new hire's time-to-productivity if they first have to learn elixir, then phoenix + liveview vs just elixir & MVC phoenix.

If there's a way I could contribute to an effort that helps people learn elixir sans lv--perhaps writing, sketching, or even reading a guide/documentation--I'd be happy to give it a crack.

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#139

Earlier quoted context omitted.

Zed has been amazing so far for my Elixir journey, and their latest preview release has additional support for Elixir tests. Not sure how it compares to IntelliJ

I’ve also been using Elixir + Zed for the last couple months. Love it. And it’s so snappy. It’s the first editor I’ve found where ElixirLS doesn’t feel like it’s making my editor lag. Not sure what they do differently.

From what I gather it’s a combination of immutable data structures, light caching, and running the lsp/treesitter in background processes. The founder has a bunch of interesting interviews going deep into the mechanics if you’re interested!

Re: Elixir 1.17 released: set-theoretic types in patterns, durations, OTP 27

#140

The last few years the Elixir ecosystem has started to become the simplest solution to so many use cases: - Web development with Phoenix and Liveview is immensely enjoyable and fast - AI with NX, Axon, Bumblebee - Audio and Video streaming and manipulation with Membrane - CQRS and Event Sourcing with Commanded - Embedded with Nerves to make your own devices - Mobile apps with Liveview Native ( in development ) - Queu…

> Adding types is indeed the last piece to the puzzle to bring even more confidence in the code we ship. This is the hard missing piece for me and why I'm looking curiously over to Gleam. Coming from a language with a very powerful and useful statical typesystem, I just can never go back to something like Erlang or Elixir in my life. :-(

Go back? Have you ever worked on a significant project in either Erlang or Elixir? If so, what issues did you experience?
Post reply on HN