this post was submitted on 19 Mar 2024
145 points (92.9% liked)

Programming

17209 readers
183 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 [email protected]



founded 1 year ago
MODERATORS
145
submitted 7 months ago* (last edited 7 months ago) by [email protected] to c/[email protected]
 

Python is memory safe? Can't you access/address memory with C bindings?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 7 months ago (2 children)

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).

[–] [email protected] 1 points 7 months ago

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).

[–] [email protected] 1 points 7 months ago (1 children)

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.

[–] [email protected] 2 points 7 months ago

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.