lawik

lawik

What languages seem reliable to you?

Spending my time in the Elixir/Erlang world has shifted my focus onto reliability as a central criteria in selecting tech. I had some such tendencies before, preferring Postgres to the NoSQL hype when that was a thing.

But now I’m thinking about the programming languages I look at for reliability where I feel like the language and ecosystem has priorities that align with mine.

I tend to lump the Elixir/Erlang/BEAM ecosystem in with some other languages. Specifically Rust which seems like the future for native extension in Elixir. And then we have Go which seems to be great for self-contained binaries and very popular for some types of devops infrastructure projects (such as the Rancher stuff, k3s, rio…). I don’t code in Rust or Go currently. But I sense a kind of kinship in aggregate from reading about and using software from those ecosystems.

Do you have another constellation you’d consider belong together? Do you feel like my estimation about these languages and their priorities are mostly right, mostly wrong?

Most Liked

dimitarvp

dimitarvp

Go is like a modern Python + a shell scripting language and it is quite good at that but do have in mind that complete reliability and type safety aren’t its first priorities. It was designed to be mostly easy to pick up by former C++ and Java engineers (source: unofficial testimonials from people who chatted with the creators long ago, shared on HN). This severely reduces its potential usefulness as a good native bridge from higher-level languages despite continuous heroic efforts like cgo.

This doesn’t detract from its usefulness in general. A lot of excellent programs have already been written in Go. I just get kind of nervous about when will the security researches start finding easy ways to pwn Go programs, but let’s see what the future brings.


As for Rust, I share your assessment – it’s indeed a very good native bridge and not only for Elixir. It has an amazing tool that allows it to parse existing C/C++ header files and generate Rust wrappers for almost any [well-written and following good practices] native C/C++ library. From then on it’s not much work to make a few hand adjustments and boom, you have a Rust wrapper towards insert-existing-well-known-native-library-here.

That makes it an excellent tool to both (1) provide a gradual migration path towards pure Rust should the original C/C++ authors choose to go down that path and (2) still give a Rust developer as close to the original library code as possible in the meantime. And that’s not even mentioning how amazingly good a language Rust is.


As for other such seemingly natural pairs as Elixir and Rust, I am not sure but I am curious myself.

lawik

lawik

Hmm, your notes on Go are interesting. I think what I’m appreciating from the Go side might not strictly be about reliability. It might be some of the other values that seem to come from the community, performant, portable, high performance and also, from what I hear, quite friendly as a community. Also, the idea of designing a simplistic language which I gather to be part of Go appeals to me.

Go is not really on my radar to learn but there seems to be a lot of software that comes written in Go that I’m happy to use. Simple static binaries, old school but modern if you put them next to C and NodeJS. I’m trying to capture some ineffable qualities here I realize.

Ted

Ted

Ah, gotcha; thanks for elaborating!

Yeah, I feel fortunate that I didn’t get sucked into the hype for Enterprise Java Beans, although I’m under the impression it’s been greatly overhauled in recent years.

Libraries that return Object references and expect the programmer to correctly type cast them are indeed annoying. I tend to abstract this away behind wrapper functions but I’d much rather not feel compelled to do so in the first place.

Probably all of the above. :laughing: I recall hearing horror stories in the early days of Maven where developers would spend more time wrestling with pom.xml than writing code.

Many Java libraries now offer the option to configure via @annotations instead of XML, e.g. Spring, but XML is still very common in the Java ecosystem.

Where Next?

Popular General Dev topics Top

AstonJ
The obligatory speed test thread :smiley: Check here: https://www.speedtest.net When complete, click on the share link and copy and pas...
New
AstonJ
If you’re a fan, why? If you’re not fussed on it, how comes?
New
AstonJ
Looking at @siddhant3030’s photo from the Do you blog? thread, do you cover your computer or phone camera as a security precaution? Wha...
New
AstonJ
Thought it might be worth having a dedicated thread for standing desk treadmills (for those interested, here’s our general thread on stan...
New
Exadra37
Have you ever wanted to build something but you had no idea what to do? Just as authors sometimes have “writers block” it’s also true for...
New
finner
One of my 2021 resolutions is to read more tech books. As part of this effort I purchased two MEAPs (Manning Early Access Program) which...
New
AstonJ
Continuing the discussion from Thinking about learning Crystal, let’s discuss - I was wondering which languages don’t GC - maybe we can c...
New
DevotionGeo
For me it’s six to seven steps above complete dark, on MacBook Air M1.
New
DevotionGeo
Hi everyone! I bought this domain name when I was planning to create a website like ElixirSchool.com, but that didn’t ever happen. Now ...
New
AstonJ
Chris Seaton, the creator of TruffleRuby has died. It appears from suicide :cry: He left this note on Twitter on the weekend: And one...
New

Other popular topics Top

AstonJ
What chair do you have while working… and why? Is there a ‘best’ type of chair or working position for developers?
New
Exadra37
I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New
siddhant3030
I’m thinking of buying a monitor that I can rotate to use as a vertical monitor? Also, I want to know if someone is using it for program...
New
brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
AstonJ
poll poll Be sure to check out @Dusty’s article posted here: An Introduction to Alternative Keyboard Layouts It’s one of the best write-...
New
PragmaticBookshelf
Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters...
New
mafinar
This is going to be a long an frequently posted thread. While talking to a friend of mine who has taken data structure and algorithm cou...
New
New
PragmaticBookshelf
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
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