\

Erlang/OTP 29.0

147 points - yesterday at 11:33 PM

Source
  • solid_fuel

    today at 12:40 AM

    Looks like a nice set of improvements. Disabling the SSH daemon [0] by default is a good security change, same with disabling the SFTP by default.

    I think the io_ansi [1] module sounds pretty cool, imo erlang doesn't have a great story for building complicated CLI applications right now, but I haven't tried much. I imagine having this in the stdlib will be a nice leg up in the future. The way fwrite works seamlessly across nodes is very nice, and exactly what I love to see from erlang.

    The addition of Native Records [2] is really cool. I'm curious how this will be leveraged in Elixir in the future, since right now I think there is a mix of records, tuples, and maps depending on exactly what is being done. Like the EEP says, I doubt we'll ever see the old records deprecated entirely but this looks like a substantial improvement.

    [0] https://www.erlang.org/doc/apps/ssh/ssh.html

    [1] https://www.erlang.org/docs/29/apps/stdlib/io_ansi.html

    [2] https://github.com/erlang/eep/pull/81

      • toast0

        today at 1:03 AM

        I don't think the ssh daemon was ever automatically enabled or started. The two bullet points are phrased differently, but I think they mean the same thing, when starting the ssh daemon, the listed parts won't be started by default.

        > The SSH daemon now defaults to disabled for shell and exec services, implementing the โ€œsecure by defaultโ€ principle. This prevents authenticated users from executing arbitrary Erlang code unless explicitly configured.

        > The SFTP subsystem is no longer enabled by default when starting an SSH daemon.

    • tmoertel

      today at 2:15 AM

      For anyone wondering what the "OTP" part is in Erlang/OTP, it is a set of libraries and associated principles that, in effect, standardize the creation of highly reliable, fault-tolerant applications, originally for the telecom domain. It's worth checking out the brief introduction to the fundamental ideas in the introduction to "OTP Design Principles":

      https://www.erlang.org/doc/system/design_principles.html

    • faangguyindia

      today at 4:42 AM

      Who even uses Erlang? I used Rails and then i tried Phoenix and it was lot more difficult to get things done.

      I don't understand Phoenix hype

      For solo devs, Rails is arguably most productive webapp system. LLM is very good at writing ruby rails code. Much better than writing django in my experience even though python training corpus is huge.

      I write my experimental apps in Rail when it stabilizes, i do a Go rewrite.

      I don't write directly in Go because, it consumes lot more token when the app scope is unknown but it's very efficient for rails.

      These day i don't need react or angular anymore, i use Hotwire in Rails and HTMX in Go.

      Erlang forum itself uses Discourse (written in Rails)

        • tommica

          today at 4:57 AM

          Erlang != Elixir - but otherwise a good question. I think WhatsApp uses erlang

      • ksec

        today at 4:09 AM

        Does anyone knows if WhatsApp is still based on Erlang?

        • ch4s3

          today at 2:25 AM

          I'm interested to see how records play out in the ecosystem.

            • sbrother

              today at 3:12 AM

              I was about to say "what, we've had records for decades" but then I read the changelog.

              Interesting. I wonder if there a world where Elixir starts compiling maps to "native records"?

                • dnautics

                  today at 4:07 AM

                  probably not maps, but structs yes.

          • SteveGregory

            today at 1:20 AM

            Can someone please explain the innards?

          • keyle

            today at 2:48 AM

                  Added support for -unsafe attributes
            
            Right in time for the Rust rewrite! /s