As a software developer, do you consider yourself part of a community? Is the community based on a programming language? Something else? A bubble, a cult?
@frescosecco@maas (I see we are in good company with #lisp and #erlang people here) as an intermittent OSS contrib to #haskell of a few years, I felt waves of community engagement too: from "I can change her" to burnout, and back
I've been reading about #Erlang lately. I'm a little disappointed. Erlang seems real good and powerful, but it's not nearly as weird as I thought. I had somehow gotten the impression that it was #Prolog-level weird, but it's only #Lisp-level weird, which is not actually all that weird these days, since everybody else added some functional elements to their languages.
So I was ready to have my mind blown, but instead I only got it expanded.
First reaction after installing #Erlang 27 rc1 (kerl build-install 27.0-rc1 27): yes ~"foo" is shorter than <<"foo">>. But 1/ it's a lot less ergonomic to type (try it!) and 2/ the default printer is still going to spit out <<"foo">>.
Today I was writing elixir code the first time in my life, to convert mix.lock to json, for later processing and converting to guix package definitions.
One of the problems I faced is a lack of specification of lock file format.
I still have a few questions, but having sha256 in lock files is very promising. We will be able to generate package definitions for the whole project without accessing network.
The s390x open source team at IBM confirms the latest versions of various software packages run well on #Linux on #IBMZ. In October 2023 validation was maintained for over two dozen projects, including: the #Apache web server, #ApacheCamel & #Erlang
What is the use case for #elixir / #erlang I have been reading more into functional programming languages, and one that pops up a lot is Elixir.
As far as I understand, the great thing about these is that they run on the Erlang BEAM VM, which seems to be very suitable to distributed computations right? Does this mean that the BEAM VM could run on multiple machines? If I understand correctly, Elixir/Erlang would not be that great if I just want to write simple CLI tools, but would excel if I was writing for example a Data streaming platform or the backend for some app right?
Hacked some initial #Erlang mode for the #Lem editor yesterday evening.
I have an Erlang shell but did not manage to connect to LSP/ELP, it hangs while initializing. Language server support is also still somewhat minimal in Lem.
@frescosecco tangential, but wasn't there a project long ago to make an Emacs clone in Erlang? SWI-Prolog has a barebones Emacs clone! An Erlang Emacs makes a lot of sense when considering that Emacs became more usable after it got async support. If parantheses matter, there are multiple Lisps on the BEAM.
The standard type of list in Erlang and Elixir being a linked list seems like it introduces a lot of undesirable patterns. It shapes how we match on them, how we add to them, what we avoid doing on them (appending, concatenating). It generally imposes and awareness and you also see it reflected in what API gets exposed. Standard libraries are trying to help you not do the less optimal thing.
Is there a way to move on from it. So much is built on it.
How would you do it? #elixir#erlang
It's so rare that anyone remembers about #scala when talking about other #ProgrammingLanguages like #gleam in this particular case. Just happy and surprised 🧐
Various thoughts on too many programming languages, for no discernible reason.
I have been interested in Go since it's very initial release, but their dependence on Google is uncharming to say the least. I still haven't made up my mind on its GC, but its definitely better than most.
I used to do some ML work in .NET and if it wasn't dependent on Microsoft it would be a heavy contender for a great language, but it has far too many Microsoft-isms to ever really go much farther.
Rust is great, I enjoy beating my head against a brick wall battling with the compiler, and their safety is great, but overly complicated and feature-creep is a real problem on that entire project. I do a lot of work these days in Rust, for better (mostly) or worse (mostly-ish).
C is my bread-and-butter, as is Javascript for quick prototyping.
Elixir is great, but Erlang is unwieldy, the community is growing, but not fast enough - and I just can't get my mind to enjoy the syntax no matter how nice it is.
D is a lot of fun, but their GC can be slow at times, and the community is very small and packages are often broken and unmaintained.
Python was my first true love, but I really can't stand the whitespace, again love the language, hate the syntax.
Zig is fun, but just that. Fast, nimble, but early days, a bit confusing, could replace my insistence on C for core projects, but again, early days. I love to use them as a compiler for C, much faster than the defaults on any of the others.
Odin is one I love to keep an eye on, I wish I could get behind using it for more things. When I first took notice ~4 years ago the documentation was a bit scattered, but it looks much better now. The developer behind it is incredibly cool, could be seen as the next Dennis Ritchie imo. Runes are dope. The syntax is by far my favourite.
Julia, I love Julia, but performance last I tested was a bit of a miss, and by miss, it required a decent chunk of compute for basics, but when you gave it the system to throttle, it would be insanely productive to write in. Javascript is something that I prototype even syscalls in, but Julia is just the same but much better and more productive (and less strange) in many regards. I am really hoping this takes over in the ML/Data world and just eats Python alive. I've heard there has been major work in the perf department, but I haven't had reason to try it out lately.
Ada, memory safety before Rust! Great language, especially for critical applications, decades of baggage (or wisdom), slow moving language, insanely stable, compilers are all mostly proprietary, job market is small, but well paid, great for robotics, defense, and space industry types, but the syntax is... rough. Someone should make a meta-language on top of Ada like Zig/Nim/Odin do for C, or Elixir does for Erlang.
The others: Carbon, haven't tried; Nim, prefer when they were "Nimrod" (cue Green Day), decent but not my style; Crystal, seems cool, but not for me; Scala, great FP language, but JVM; Haskell, I'm not a mathematician, but my mathematician friends love it. I see why, but not my thing as much as I love functional languages. I'll try it again, eventually. I did not learn Haskell a great good.
I tend to jump from language to language, trying everything out, it's fun and a total timesuck.
Since writing this I've started looking more into Lisp, and I am starting to understand why everyone things its "gods chosen language". it's great, and you can turn/embed any language into a lisp. That's cool.
I like both Ada and C, but I work in the robotics industry, so we have to constantly switch between the two for anything hardware based. They both have their benefits, C is my preferred because of how simple (it can be, if you try...), but Ada (Primarily SPARK is what I've done work in) is great, but dated in many regards. I don't know if I've ever looked into Austral, but I'll take a look!
Haskell, tried it many times, never a good time. Ocaml isn't bad, but again, not my thing or style but definitely something I inherently understand more.
Scala, JVM, my sworn enemy. Never again. They can't get me suckered into reading Java docs again.
Elixir, great language, but I am going to agree with you - I am starting to prefer working with Erlang directly, but its early days on that. I've started looking into @lfe which looks incredible.
Nim, I dislike whitespace reqs in languages, I tend to value customization of my styles to make it all make sense to me, so Nim is too controlling for me in that regard. I read code a lot more than write it.
No real opinion on C2-3, love D, V looks interesting but not sure yet, Jai - if it ever comes out, haven't heard of Scopes, and I already mentioned Carbon.
If someone could find a way to package Rusts memory management in a tenable way to be cross-language, we would have a massive explosion of greatness. I know it's possible, but nearly impossible without some wicked genius' at the helm.
Functional programming wise I like Erlang. It’s simple, to the point, surprisingly powerful with a few charming quirks. Elixir is fine but I like Erlang better. I am interested in the new set-theory type system for Elixir though. The initial presentation looks really good.
I haven’t really given Haskell a chance, but when I dabbled with Elm I liked the approach. Elm is more simple of course. What I don’t like so much about Haskell is that there are several compiler extensions and even if you decide for yourself not to use them to keep it simple they might sneak into your projects via packages. And then you still have to learn the underlying concepts.
Compared to Haskell I prefer Ocaml, although that has also some charming quirks. In total it feels to me that in functional programming the language communities there are a lot of discussions about concepts and less about actual coding. I was a fan, but I gravitate back to procedural. Especially as a lot of procedural languages have some functionality now that used to be associated with functional programming.
Scala looks great, but I haven’t got around it.
A few interesting variances of Ada are Austral, which provides a linear type model that gives interesting guarantees for memory but also file management (and more). A really interesting approach. Austral is also quite new and still growing.
Then there is HAC which currently covers a subset of Ada and has a compact compilation suitable to embed into other programs.
Last but not least Nim. A very pleasant language. Versatile, fast and you can choose to use it with or without garbage collector. This is in my view a great option as there are many problems that benefit from a garbage collector but sometimes you need to know where your bits and bytes are exactly.
@marcuse1w@macleod If you like #haskell, #purescript is an option. With #purerl there is also a stable erlang backend. Or #gleamlang I find very exciting in the erlang world (erlang and Javascript backend). Otherwise you might also like #roclang (native and wasm backend) if you are generally into ML languages. I also think #erlang is an extremely nice language. I've never understood what many people have against the syntax. I find it extremely simple and beautiful. Well, I also like #prolog 😉
@mathiasx C is a 100-year language. Even a small worthy improvement like Plan9's C dialect didn't catch on, so I guess first-to-market and compiler adoption renders any other language moot (as much as I would like to like Ada, and like Zig and Forth).
Higher-level languages is where there has been wiggle-room around Python and PHP.
Sim-Diasca is a discrete systems simulation package written in #Erlang, developed at Électricité de France a few years ago. I'm surprised that Erlang is not more prominent in simulation frameworks. (of course, I'm not an expert on simulation). Are there other frameworks? https://github.com/Olivier-Boudeville-EDF/Sim-Diasca