AstonJ

AstonJ

Types on the BEAM

Currently a hot topic in the BEAM world, let’s start a thread for it (as suggested by @crowdhailer here) :smiley:

What are your current thoughts? What would you like to see/not see? :upside_down_face:

Most Liked

Korbin73

Korbin73

I would really like to see types on the beam. Right now the one that I’m keeping the closest eye on is Hamler (https://github.com/hamler-lang/hamler). I know the other project is Gleam, but I’m indifferent to the syntax. It must be pretty hard since projects like Alpaca, and Elchemy have been abandoned.

For me it’s not about checking types, it’s really about reasoning about the code. When I put my Elixir projects down and come back 3 months later, when I navigate to the function that needs changing, it involves tracing every call site to infer what types are getting passed in. I loose interest in having to Hindley/Milner all my types when the computer can do it better than me :stuck_out_tongue: To be fair typespecs are great but it’s so easy for them to get out of sync and doesn’t help when you pass a function to another function and need to know the type signature (at runtime).

dimitarvp

dimitarvp

I am fully with you on the sentiment – but I am trying very hard to detach myself from syntax tastes. I have found so many times during my career that syntax barely matters. If the language constructs and the runtime are good I can swallow almost any syntax (well, maybe not COBOL but who knows).

wolf4earth

wolf4earth

Very true.

Personally I quite like the ML-style syntax, speak Haskell, Elm, and the like. At the same time I’m not really fond of the C++ style syntax with deeply nested :: namespaces with lots of shortened names, like std or Buf (seriously, you couldn’t call if Buffer)?

But the latter also applies to Rust and I cannot deny that Rust is a very thoughtfully designed language with a lot of merits (I’m actually learning it at the moment).

So yeah, as I see it good language design is nearly orthogonal to choice of syntax.

Where Next?

Popular Backend topics Top

AstonJ
Which server-side languages are you most interested in right now? Anything new or relatively new that’s caught your eye? Maybe an older l...
New
bot
Announcing the Error Handling Project Group | Inside Rust Blog. Want to follow along with Rust development? Curious how you might get in...
New
New
finner
Just wondering how many devs out there are using Spring Reactive, specifically WebFlux?
New
New
AstonJ
Inspired by this post by @stefan.jarina, I’m curious about the kind of Bash scripts you’ve written and whether you still use Bash given t...
New
New
Cellane
Phoenix 1.6.0 got released last week, with built-in authentication and mailer generators, a whole new HEEx (HTML-aware Embedded Elixir) e...
New
mafinar
Hello folks! We had a pretty fun thread here around the same time last year - talking about Advent of Code problems. That also happened t...
New
jaeyson
Hi all!, anybody tried this Elixir quiz from @Tetiana? She’s the one who made Elixircards.
New

Other popular topics Top

AstonJ
If it’s a mechanical keyboard, which switches do you have? Would you recommend it? Why? What will your next keyboard be? Pics always w...
New
AstonJ
SpaceVim seems to be gaining in features and popularity and I just wondered how it compares with SpaceMacs in 2020 - anyone have any thou...
New
AstonJ
We have a thread about the keyboards we have, but what about nice keyboards we come across that we want? If you have seen any that look n...
New
AstonJ
Thanks to @foxtrottwist’s and @Tomas’s posts in this thread: Poll: Which code editor do you use? I bought Onivim! :nerd_face: https://on...
New
AstonJ
I ended up cancelling my Moonlander order as I think it’s just going to be a bit too bulky for me. I think the Planck and the Preonic (o...
New
New
PragmaticBookshelf
Author Spotlight: Peter Ullrich @PJUllrich Data is at the core of every business, but it is useless if nobody can access and analyze ...
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New
NewsBot
Node.js v22.14.0 has been released. Link: Release 2025-02-11, Version 22.14.0 'Jod' (LTS), @aduh95 · nodejs/node · GitHub
New
Fl4m3Ph03n1x
Background Lately I am in a quest to find a good quality TTS ai generation tool to run locally in order to create audio for some videos I...
New