Live data from Hacker News

Erlang/OTP 25.0 Release

erlang.org

51–60 of 125 posts

Re: Erlang/OTP 25.0 Release

#51
post #26

I've seen more than once recently an engineer saying that software solutions outside of the Serverless ecosystem (FaaS, DB, etc) is "the new legacy". And that cloud providers have solved all the pains that Erlang was supposed to address. What's your feeling on this? Elixir sounds very compelling to me, but I worry that I might be going in a direction that's not where the industry is going.

> I've seen more than once recently an engineer saying that software solutions outside of the Serverless ecosystem (FaaS, DB, etc) is "the new legacy".

There's, as I see it, three different kinds of legacy: (1) code that has an inordinately costs to maintain and especially update to changing requirements because it lacks tests, documentation of existing business intent and/or design, or otherwise has lost institutional knowledge needed for nontrivial work, relying on the foggy memories of a high priesthood increasingly, over time, working through ritual without understanding, (2) software with deep and fundamental dependencies on platforms or external components that are no longer supported or no longer available, and (3) software which doesn't meet the current arbitrary tech platform decisions of the organization using it, but which has no fundamental problem preventing maintenance or use.

In lots of places, software that isn't adapted to a particular serverless architecture that the org has adopted is now the third type of legacy.

> And that cloud providers have solved all the pains that Erlang was supposed to address.

They haven't, though for some use cases, the parts of the stack Erlang would be most useful for implementing are the parts you are likely to just get from a cloud vendor (that's not true of all use cases, though.)

> Elixir sounds very compelling to me, but I worry that I might be going in a direction that's not where the industry is going.

Elixir is probably not the best bet if your concern is to direct the most focussed possible effort learning the things that are most likely to dominate the largest share ofnthr general software dev marketplace in the near future.

Re: Erlang/OTP 25.0 Release

#52

Earlier quoted context omitted.

> What's your feeling on this? That anybody claiming serverless has "solved all the pain" is definitely trying to sell me something.

Anybody claiming that anything has "solved all the pain" is definitely selling you something after having bought a load of it themselves. State is suffering, and life is stateful, even after you're long dead and garbage collected.

I laughed and cried at that last sentence. 10/10

Re: Erlang/OTP 25.0 Release

#53
post #26

I've seen more than once recently an engineer saying that software solutions outside of the Serverless ecosystem (FaaS, DB, etc) is "the new legacy". And that cloud providers have solved all the pains that Erlang was supposed to address. What's your feeling on this? Elixir sounds very compelling to me, but I worry that I might be going in a direction that's not where the industry is going.

> I've seen more than once recently an engineer saying that software solutions outside of the Serverless ecosystem (FaaS, DB, etc) is "the new legacy". There's, as I see it, three different kinds of legacy: (1) code that has an inordinately costs to maintain and especially update to changing requirements because it lacks tests, documentation of existing business intent and/or design, or otherwise has lost institution…

To that end, cloud platforms like fly.io[0] provide first-class support for Erlang/Elixir and related frameworks. If the industry is converging on Erlang-like solutions, it makes sense that Erlang is a natural fit.

[0]: https://fly.io/phoenix-files

Re: Erlang/OTP 25.0 Release

#54
post #11

Earlier quoted context omitted.

It is very much that. The Erlang team have not been too proud to steal good ideas from Elixir. Elixir has been a good source of fresh thinking for the BEAM ecosystem which has helped both the Erlang and Elixir side.

The Erlang 'maybe' expression expands on what 'with' allows in Elixir, mostly because the 'with' construct allows a list of conditional patterns and then a general 'do' block, whereas the Erlang 'maybe' allows mixed types of expressions that can either be conditional patterns or any normal expression weaved in together at the top level. It is therefore a bit more general than Elixir's 'with', and it would be interest…

The with statement in Elixir already allows for abitrary expressions between the with and the do. I'm not sure what I'm missing here.

Re: Erlang/OTP 25.0 Release

#55
post #11
post #6

Earlier quoted context omitted.

At first sight it looks like Elixir's `with` expression.

It is very much that. The Erlang team have not been too proud to steal good ideas from Elixir. Elixir has been a good source of fresh thinking for the BEAM ecosystem which has helped both the Erlang and Elixir side.

I hope to think that it's just that the bar to make significant changes to Erlang is very high. Stability and backward compatibility over time is something worth valuing. For me, this is a property that makes Erlang a great ecosystem.

Re: Erlang/OTP 25.0 Release

#56
post #47
post #43

> The JIT now works for 64-bit ARM processors. Does this mean mobile apps in Erlang is not far off ?

I don't see any serious attempt at UIs with erlang. I think erlang processes would provide a great foundation for UI components, but has it even been tried?

Erlang comes with a binding to wxWidgets that is used to implement the graphical debugger and observer it comes with, but they are fairly utilitarian in their styling and I don’t know of any other Erlang/Elixir GUI apps. Which is to say: it probably could be done, but doesn’t seem to be popular even among Erlang programmers.

Re: Erlang/OTP 25.0 Release

#57
post #11

Earlier quoted context omitted.

It is very much that. The Erlang team have not been too proud to steal good ideas from Elixir. Elixir has been a good source of fresh thinking for the BEAM ecosystem which has helped both the Erlang and Elixir side.

The Erlang 'maybe' expression expands on what 'with' allows in Elixir, mostly because the 'with' construct allows a list of conditional patterns and then a general 'do' block, whereas the Erlang 'maybe' allows mixed types of expressions that can either be conditional patterns or any normal expression weaved in together at the top level. It is therefore a bit more general than Elixir's 'with', and it would be interest…

> the 'with' construct allows a list of conditional patterns and then a general 'do' block, whereas the Erlang 'maybe' allows mixed types of expressions that can either be conditional patterns or any normal expression weaved in together at the top level.

This seems slightly incorrect to me. You can write expressions in Elixir's with macro too, by simply swapping the arrow for an equals sign. For example, this is perfectly valid Elixir code:

    with {:ok, x} 
Did you mean something else?

Re: Erlang/OTP 25.0 Release

#58

Earlier quoted context omitted.

The Erlang 'maybe' expression expands on what 'with' allows in Elixir, mostly because the 'with' construct allows a list of conditional patterns and then a general 'do' block, whereas the Erlang 'maybe' allows mixed types of expressions that can either be conditional patterns or any normal expression weaved in together at the top level. It is therefore a bit more general than Elixir's 'with', and it would be interest…

The with statement in Elixir already allows for abitrary expressions between the with and the do. I'm not sure what I'm missing here.

You're right. After all these years (and even writing a book that had Elixir snippets in it) I had never seen a single example showing it was possible and did not know it could do it.

Well there you go, I guess the pattern is equivalent but incidental.

Re: Erlang/OTP 25.0 Release

#59

Earlier quoted context omitted.

There is a huge community, not just in Erlang, but in the larger BEAM ecosystem. Have you tried the Erlanger or Elixir slack? We also have https://erlangforums.com/ and https://elixirforum.com/ . For smaller BEAM languages like Gleam, we have Discord available https://discord.com/invite/Fm8Pwmy There's a lot of great stuff in the BEAM ecosystem, I would caution on writing it off too fast

I know there's a lot of power there. Whatsapp was written in OTP and had something like half the world using it with a development team of maybe 12. I'm glad to hear the community is bigger than what I found. I don't actually remember that search process. What I remember clearest was running into the brick wall of the OTP documentation.

If you'd want to try again, I can recommend "Elixir in Action" [1]. It has a great introduction to the basics of OTP later on in the book. I understood it much better after reading that book that any other materials.

While the book is about Elixir (which is a BEAM language) the underlying OTP principles are the same. The book covers "basic" OTP before moving on to some abstractions that Elixir provides.

[1] https://www.manning.com/books/elixir-in-action-second-editio...

Re: Erlang/OTP 25.0 Release

#60
post #57

Earlier quoted context omitted.

The Erlang 'maybe' expression expands on what 'with' allows in Elixir, mostly because the 'with' construct allows a list of conditional patterns and then a general 'do' block, whereas the Erlang 'maybe' allows mixed types of expressions that can either be conditional patterns or any normal expression weaved in together at the top level. It is therefore a bit more general than Elixir's 'with', and it would be interest…

> the 'with' construct allows a list of conditional patterns and then a general 'do' block, whereas the Erlang 'maybe' allows mixed types of expressions that can either be conditional patterns or any normal expression weaved in together at the top level. This seems slightly incorrect to me. You can write expressions in Elixir's with macro too, by simply swapping the arrow for an equals sign. For example, this is perf…

See https://news.ycombinator.com/item?id=31425298 for a response, since this is a duplicate. TL:DR; I had never seen it and had no idea it was possible because I don't recall seeing any documentation or post ever mentioning it! Ignorance on my part.
Post reply on HN