3 ms·
I was thrust into a go project after a decade of python. The most jarring thing besides the 3rd party panics, was the idiom that nils are typed. This was diff
by bb88 3y ago
I was thrust into a go project after a decade of python.
The most jarring thing besides the 3rd party panics, was the idiom that nils are typed. This was different than python, java, JavaScript, c, c++, etc.
Variable loop scoping is also weird.
Writing unit tests is 10 times harder than python.
Go statically links everything, and just that seems like going back 30 years in software development. Any security in a dependency means a total recompile and redeployment.
In C land you would just update the affected library.
- arp242 3y agoPython has complex mechanisms to avoid depending on "whatever random stuff is in /usr/lib/python$v/site-packages" like pyenv and whatnot. Clearly that approach comes with a lot of downsides, too. Most newer languages avoid this pattern, including Rust, Zig, and probably others, and languages that don't tend to have workarounds; e.g. npm, bundle, etc. all use a "local" installation by default. And while security problems are of course still a thing, there are a lot fewer of them than in C. Even in C it's not as bad as in "buffer overflow of the week" like in the 90s. It's that argument that's 30 years out of date.
- pharmakom 3y agoIf you have CI/CD then rebuild and deploy isn’t a big deal. If you’re mutating running systems in an uncontrolled way you’re probably doing it wrong
- selfmodruntime 3y agoThe reason that we have static linking is because it's not "you" updating the affected library, it's more often than not the package manager and more often than not entirely out of your control.