5 ms·
I've been programming my web projects exclusively in Elixir for the last few years and I've been deeply enjoying the language. Although at first, some unfamili
by plainOldText 4y ago
I've been programming my web projects exclusively in Elixir for the last few years and I've been deeply enjoying the language.
Although at first, some unfamiliar design decisions annoyed me, for they were not well explained in the tutorials I was learning the language from – e.g `arg: value` as a shortcut for `[{:arg, value}]` in function arguments and other places – over time, I've grown to love and appreciate the language and I now more or less regard it as an elegant programming language put together by a thoughtful person with great programming taste.
The Phoenix framework is a great bonus point if you want increased productivity for writing web apps. I don't miss Python at all.
Elixir rests on the shoulders of giants though, and the Erlang/OTP is yet another elegantly engineered piece of technology, enabling one to develop concurrent, distributed and fault tolerant systems with ease, and in this regard I think the Erlang/Elixir ecosystem takes the crown. The actor model is simple, yet very powerful.
For reference, I've also been learning Nim and F#, and they're also pretty unique and well designed languages in their own ways. I love Nim's fast compilation times, efficiency and expressiveness and F#'s powerful type system which enables one to develop domain models with ease. I've also been occasionally taking stabs at Rust, but it always feels just a tad too complex for my brain. I'll continue playing with it though, maybe it will eventually make sense.
Ultimately, every design decision is also a tradeoff. I don't think we'll ever have a perfect, human designed language.
My dream language would probably be a combination of Elixir and F# though, a language with an advanced and powerful type system, functional programming and the actor model as the building blocks. I guess fast compilation times à la Nim wouldn’t hurt either. :)
- mdm12 4y agoSounds like Gleam[0] would be up your alley :) As an F# guy myself, I am hoping it pans out, as I miss the BEAM platform! [0] https://gleam.run/ https://gleam.run/
- plainOldText 4y agoYeah, I've known about Gleam, but I don't recall exactly why I wasn't too compelled to use it. I installed it with brew a while back, I tried a few basic examples and since then it's just been sitting there. I guess I should revisit. But thanks for the reminder anyway.
- AlchemistCamp 4y ago> Although at first, some unfamiliar design decisions annoyed me, for they were not well explained in the tutorials I was learning the language from – e.g `arg: value` as a shortcut for `[{:arg, value}]` in function arguments and other places This complaint and a similar one for maps were the primary driver in me making an "Elixir tips" playlist of YT videos: https://www.youtube.com/watch?v=7w98voHko20&list=PLFhQVxlaKQEmO3gaork2WD5AY51LH3Ls0&index=13 https://www.youtube.com/watch?v=7w98voHko20&list=PLFhQVxlaKQ... What kinds of things have you been coding or reading in your Rust learning so far? I'm a pretty big fan of Herbert Wolverson's Pragprog Rust book and open source Roguelike project, as well as Tim McNamara's Rust in Action (which I've only gone through part of due to how each project leaves you wanting to keep building it after the book moves on to another).
- plainOldText 4y agoI wish I had this when I learned the language. :) I'll take a look, as your playlist is quite comprehensive it appears. Thanks for sharing! Re: Rust - I've been trying out basic examples, simple web servers, etc; nothing too fancy. But it just seems too ceremonious to get even the most basic things done. I own the book "Rust in Action", I just didn't have the proper time to go over it.
- AlchemistCamp 4y agoIt takes you through the heavy lifting of writing a CHIP-8 emulator, a database and a whole bunch of things. It really feels like it could have been several books and he just had to cut back the scope of each part to fit everything in and ship it. The great thing about that is that it leaves you with projects just begging for you to dot the "i"s and cross the "t"s.