this post was submitted on 19 Mar 2024
145 points (92.9% liked)
Programming
17540 readers
199 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Go is totally different from Rust. It has garbage collection and built-in lightweight threads with message passing, but a fairly simple type system comparable to C's.
Rust and post-2011 C++ have fancier type systems influenced by e.g. Haskell. If you haven't used such languages before, there may be a learning curve, but that temporary confusion you'll feel is the sensation of your brain getting bigger, so it's a good effort to make.
Rust and C++.afaict are mostly designed for systems programming where you want to control resources and memory manually. If you can stand a larger footprint, you might be more productive in a GC'd language. That said, I haven't used Rust yet. Lots of Haskellers like it though.
For Haskell, try learnyouahaskell.com .
For Ada, try http://cowlark.com/2014-04-27-ada/index.html and then "Ada Distilled" (online book, use web search).
I'm not a fan of Go, but calling its type system comparable to C is unfair. C has nothing like Go's interfaces, and Go has generics now. Plus having strings and maps as built-in types is a huge win for convenience. Go's slices are also superior to how arrays are usually done in C (but still a lot less ergonomic than a C++ vector or Rust Vec).
thanks for the excellent reply. will check out all of your links.
I do like built-in light weight threading, so Go is still on the to-play-with list and I am currently tracking a few Go projects to get my feet wet.
you have given me options and impetus to get out of my decades long rut and, honestly, that is the best gift any programmer can give to another. thank you, friend.
You should also look at Erlang and Elixir (same VM, different surface syntax). They have some similarities with Go but aim at higher reliability in the presence of faults. Erlang was originally designed to run phone switches, and it was a critical requirement that the switch keeps running even if some part of it goes wrong.