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
New
New
DevotionGeo
Some time ago I read somewhere that Rocket will work with stable versions of Rust. The previous version’s changelog says, “Core: Removed...
New
pillaiindu
I have heard many times that languages with a garbage collector aren’t great for system programming. Today I saw a book titled “Hands-On ...
New
CommunityNews
The Magic of Python Context Managers. Recipes for using and creating awesome Python context managers, that will make your code more read...
New
ariandanim
Hello, i am facing difficult using webpack when to install within phoenix framework 1.5.7 because the webpack is still version 4.x.x inf...
New
First poster: bot
https://twitter.com/briandfoy_perl/status/1354535622069919748 This thread was posted by one of our members via one of our news source tr...
New
Jsdr3398
I just thought of this. Are there any disadvantages when making your server in Assembly (other than having to learn a bunch of stuff :ro...
New
AstonJ
And the blog: Rails has been unapologetically full stack since the beginning. We’ve continuously sought to include ever-more default an...
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
dasdom
No chair. I have a standing desk. This post was split into a dedicated thread from our thread about chairs :slight_smile:
New
DevotionGeo
I know that -t flag is used along with -i flag for getting an interactive shell. But I cannot digest what the man page for docker run com...
New
AstonJ
Do the test and post your score :nerd_face: :keyboard: If possible, please add info such as the keyboard you’re using, the layout (Qw...
New
AstonJ
If you want a quick and easy way to block any website on your Mac using Little Snitch simply… File > New Rule: And select Deny, O...
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
PragmaticBookshelf
Get the comprehensive, insider information you need for Rails 8 with the new edition of this award-winning classic. Sam Ruby @rubys ...
New
AstonJ
This is a very quick guide, you just need to: Download LM Studio: https://lmstudio.ai/ Click on search Type DeepSeek, then select the o...
New
PragmaticBookshelf
Lint your docs like code: turn any style guide into enforceable rules with Vale and publish clear, consistent content every time. ...
New
CommunityNews
Open-source implementation of the classic GTA engine now running directly in your browser. Experience the reVC technology demo on DOS.Zon...
New