In case anyone wants the real meanings: I am not a lawyer, read the f***ing manual, bank of america.
I’m a software engineering developer from Ottawa, Ontario, Canada.
In case anyone wants the real meanings: I am not a lawyer, read the f***ing manual, bank of america.
Beej’s guides are absolute classics. The networking guide is also amazing. Definitely worth the read.
Yeah, that's pretty much what I was thinking too. The combination of a c API and a JVM API (and maybe .NET if you're in Microsoft land?) Hits most FFI available in languages I've seen. I can't think of any language I've used that couldn't Interop with either a c library (.a or .so) or JVM library (.jar). However I've never used any .NET system seriously, so I don't know about them.
FWIW I regularly remake the same API based game whenever I start a new job working in a new environment to test that my environment is "up to snuff" with my development methodologies. I've never needed to port more than API.a and API.jar to play around in any language. I've ported that system to at least 100 languages over the years, and while some have more friction than others, and often the c/JVM paradigm doesn't line up well with the target language, it is always effective.
After years, and many languages, I still have to say Ada. Kotlin, Rust, Julia, and Nim are my current contenders to overtake, but here’s what Ada does well enough to still be my preferred tool when appropriate:
There are some situation where Ada shows its age:
func
/proc
(Nim) vs fun
(Kotlin) vs fn
(Rust) doesn’t make much difference to me, but function X returns Y
/procedure X
starts to add a lot of visual noise to a file.Here’s when I use the alternatives, and their biggest weaknesses:
Thank you for attending my TED talk :P. Any questions?
I still use Ada daily for my personal projects after having used it at work. I find it compliments my thinking patterns well. My only gripe with it is that they ate too much of their own dog food at AdaCore and now it can be hard to install Ada and gprbuild (due to a circular dependency). Plus gprc stole libgpr and broke some stuff too.