6 ms·
Erlang/OTP 27 Highlights
- cpursley 2y agoJSON is a big one, great job Erlang folks!
- sph 2y agoI love the new documentation site: https://www.erlang.org/doc/apps/stdlib/lists#duplicate/2 https://www.erlang.org/doc/apps/stdlib/lists#duplicate/2 Looks a lot like Elixir's. The previous one was functional, but a little barebones. A little colour, hyperlinking and syntax highlighting goes a long way. Also, navigation seems to be improved. I always lost my way navigating across Erlang modules to find a specific function. The entire Erlang/OTP ecosystem got a boost of mind share with the explosion in popularity of Elixir, and it's so nice to see it improve at breakneck pace [1], with some cross-pollination between Erlang itself and Elixir. The ideas of Armstrong, Virding and Williams are in many ways far ahead than a lot of mainstream languages, and they were long overdue a revival under the spotlight. Keep up the good work! 1: yet, it's still the most rock-solid platform to build services upon, and you can quote me on that.
- andy_ppp 2y agoI love that the Erlang guys seem to be so open to Elixir being a big part of their ecosystem even relying on ExDoc for their new documentation system (I think everyone can see it's a big improvement over the brutalist UI that was there before). A lot of software projects would be ego driven rather than pragmatic on something like this.
- cschmatzler 2y agoExDoc is arguably one of the nicest documentation systems out there, and Erlang moving to it means two things: 1. The Erlang devs do not need to implement and maintain their own anymore. 2. ExDoc will improve faster since people previously working on Erlang’s documentation system shift to it. It’s really a win for both, and I love it.
- mikl 2y agoIt doesn’t just look like Elixir’s docs, Erlang has adopted ExDoc, Elixir’s documentation system.
- neillyons 2y agoReally like the new Erlang 27 docs https://www.erlang.org/doc/readme.html https://www.erlang.org/doc/readme.html
- ollysb 2y agoWhat a breath of fresh air, the old docs really were showing their age.
- sergiotapia 2y agoWoah! They copied the excellent hexdocs format, this is great. https://hexdocs.pm/nanoid/readme.html https://hexdocs.pm/nanoid/readme.html
- adregan 2y agoBetter still—they didn’t copy ExDoc, they are using it exactly as it is! It’s really refreshing to see the sharing between Erlang and Elixir. Having been stuck in the js world my whole career, it’s really cool to watch a community that’s rooted in collaboration instead of competition.
- mikl 2y agoIt’s a nice example of cross-polination, they essentially adapted Elixir’s documentation system for Erlang.
- deleted 2y ago[deleted]
- victorbjorklund 2y agoFinally. I never liked erlang doc style.
- biorach 2y ago> The Erlang/OTP documentation before Erlang/OTP 27 was authored in XML ouch
- sabzetro 2y agoHyped about json becoming a first class citizen. As an Elixir engineer and daily Jason user it will be great to rely on stdlib functionality. Jason is great, regardless!
- aloha2436 2y agoReading about Erlang always feels like getting messages from an alternate dimension where we as an industry made much better choices in the 90s about how we write distributed software.
- spinningslate 2y agothis. Erlang's concurrency support is one of those things you can't unsee. Going back to sequential-by-design languages (which is pretty much every other industrial quality language bar go[1]) just feels cumbersome: C/C++/C#/Python/...: "You want concurrency? Sure. We have OS processes, and threads, and this cool new async doohickey. Pick whatever you fancy! Oh, but by the way: you can't use very many processes cos they're _really_ heavyweight. You can have lots more threads, but not too many, and beware corrupting the shared state. Asyc though, you can have _loads_ of things going on at once. Just, y'know, don't mix the colours up". With Erlang/Elixir it's just: "You want concurrency? Sure, here's Erlang processes. You can have millions of them. Oh, you need to communicate between them? Yep, no probs, messages and mailboxes. What's that? Error handling? Yep, got that covered too - meet the Supervisors" -- [1] Counting Elixir as "Erlang" in this context given it also sits on the BEAM VM.
- neonsunset 2y agoC# tasks are lightweight, and I'd expect for per-task overhead to be significantly lower than that of Erlang's. e.g.: var delay = Task.Delay(3_000); var tasks = Enumerable .Repeat(async () => await delay, 1_000_000) .Select(f => f()); Console.WriteLine("Waiting for 1M tasks..."); await Task.WhenAll(tasks); Console.WriteLine("Finished!"); edit: consider suggesting a comparable example in Erlang before downvoting :)
- rdtsc 2y agoDo they have isolated heaps and can they be preempted, even if they spin in an infinite loop doing some CPU intensive things?
- nickpeterson 2y agoI think I’m going to just break down and learn erlang. I’ve been interested in it for awhile but mostly work in f#. I recently started looking at gleam but I don’t think learning it with no knowledge of OTP is a good idea.
- systems 2y agothis link might help you with learn otp with gleam https://github.com/bcpeinhardt/learn_otp_with_gleam https://github.com/bcpeinhardt/learn_otp_with_gleam
- worthless-trash 2y agoI think you can use it without OTP with very little issues, I did write this, which is a port of the erlang design principals for gleam: https://github.com/wmealing/gleam-otp-design-principals/blob/main/gleam-otp-design-principals.org https://github.com/wmealing/gleam-otp-design-principals/blob...
- lkuty 2y agoI would learn Elixir instead (unless you want to specifically learn Erlang) as it is a sort of a more modern Erlang and you get access to all Erlang ecosystem for free. Years ago, I switched a codebase from Erlang to Elixir and it was a breath of fresh air. Note that I like Erlang a lot, but Elixir even more.
- deleted 2y ago[deleted]
- systems 2y agoJust mentioning gleam https://gleam.run/ https://gleam.run/ which is a typed (and very opinionated) languages that runs on the BEAM
- deleted 2y ago[deleted]
- metadat 2y agoThe `maybe_expr' meta pattern matching fallback mechanic is nice, and can surely help avoid a lot of boilerplate code while simultaneously encapsulating the logic in a structure which is easy to read and reason about. It's also not a thing in any other programming language I've learned- C, Java/Scala/C#/C++, Go, Javascript, Tcl, Bash(lol), PHP, Forth, ML, and so on. I had to look up it's usage though, because I'm new to both Erlang/BEAM and Elixir. https://chiroptical.dev/posts/2024-03-04-erlang-maybe_expr.html https://chiroptical.dev/posts/2024-03-04-erlang-maybe_expr.h...
- neonsunset 2y agoYou do realize that Rust, C#/F#, Kotlin/Scala, now Java to an extent, pretty much all FP and many other languages have extensive pattern matching support?
- adregan 2y agoIn fairness, it's doing a bit more than "just" pattern matching. It's very similar to the `with` expression in elixir: https://hexdocs.pm/elixir/1.16.3/Kernel.SpecialForms.html#with/1 https://hexdocs.pm/elixir/1.16.3/Kernel.SpecialForms.html#wi... You can use it to execute a series of functions returning `either`-ish tuples and build up a railway oriented program.
- metadat 2y agoIt goes beyond your typical pattern matching, check out the link in my first post if you're curious to learn!
- flembat 2y agoI really appreciate that this software has been under continuous development, maintenance and improvement for so long. Its nice to see such long term support, no better way to preserve engineering insights, than continuing to use them in production.