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
Which screen resolutions do you frequently use? Note: not the resolution the display is capable of mind, but the resolution you’re using...
New
AstonJ
Thread to discuss ideas and thoughts on how developers might be able help in the Coronavirus pandemic.
New
chasekaylee
Just like the title says :smiley: which courses you find that have had the most impact in the span of your career as a developer?
New
AstonJ
Always interested in seeing what apps people use and how they organise their phones/home screens! Here’s mine…
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
DevotionGeo
The V Programming Language Simple language for building maintainable programs V is already mentioned couple of times in the forum, but I...
New
AstonJ
Maybe a specific language or framework? Or a book or tool perhaps? What’s made your life easier and what do you think could make the live...
New
TwistingTwists
Hello Fellow developers, I have been trying to wrap my head around How difficult would it have been to be a dev 20-30 years ago? I have...
New
jaeyson
Hi all, does anybody tried Shankar Devy’s Phoenix Inside Out book series? Also, will there be a big difference (aside from context prior...
New
harwind
I’m developing a web-based application that uses Java servlets to make RPC calls. I’m searching for a solid technique to dispatch and ha...
New

Other popular topics Top

PragmaticBookshelf
Stop developing web apps with yesterday’s tools. Today, developers are increasingly adopting Clojure as a web-development platform. See f...
New
PragmaticBookshelf
Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that r...
New
AstonJ
Or looking forward to? :nerd_face:
503 14742 279
New
Exadra37
Please tell us what is your preferred monitor setup for programming(not gaming) and why you have chosen it. Does your monitor have eye p...
New
AstonJ
In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first: asdf plugin-upd...
New
Maartz
Hi folks, I don’t know if I saw this here but, here’s a new programming language, called Roc Reminds me a bit of Elm and thus Haskell. ...
New
New
First poster: AstonJ
Jan | Rethink the Computer. Jan turns your computer into an AI machine by running LLMs locally on your computer. It’s a privacy-focus, l...
New
RobertRichards
Hair Salon Games for Girls Fun Girls Hair Saloon game is mainly developed for kids. This game allows users to select virtual avatars to ...
New
PragmaticBookshelf
Fight complexity and reclaim the original spirit of agility by learning to simplify how you develop software. The result: a more humane a...
New