Re:Why We Switched from Python to Go (2021)
by Sohcahtoa82 on Thursday May 26, 2022 @12:48PM
(#31520570)
> I still enjoy using Python but "runtime is funtime" even with type hinting and linting and everything else.
I'd love to see a s̶t̶r̶o̶n̶g̶ statically-typed Python that could throw type errors at compile time. I've only taken advantage of the duck typing once, and the way I did it was a massive code smell and I ended up refactoring it out anyways.
You mean statically typed? Python is already strongly typed.
Try running it through mypy with all the strict options. If you can get it to 100% pass and don't try to "cheat" the system too much with dynamic casts, I think you will find runtime type errors to be very rare.
Re:Why We Switched from Python to Go (2021)
by Sohcahtoa82 on Thursday May 26, 2022 @01:30PM
(#31521103)
> You mean statically typed? Python is already strongly typed.
Err...yes. I forget that "strong" and "static" are not the same and that "strong" and "duck" are not mutually exclusive.
Re:Why We Switched from Python to Go (2021)
by robertlagrant on Thursday May 26, 2022 @01:01PM
(#31520732)
Mypy gets you a lot of the way there.
For me, readability, simplicity and having compile time checks are wonderful. Go feels like a better Python. I still enjoy using Python but "runtime is funtime" even with type hinting and linting and everything else.
I am also a sucker for good tooling and a pleasant dev experience. Go has fantastic tooling. That being said, it has its warts and weak points. If I need to write something quick and dirty, I prefer Python. If I need to parse JSON and I don't have an easy way to generate client code, I prefer Python.
There are some quirky bits in Go I don't particularly like e.g. the reversal of parameter type and name in function signatures. . . that just confuses me because I typically am using 2-4 different languages in any given week and Go is the weirdo in this regard. :)
I would be thrilled to see Rust become the dominant systems programming language some day. I'm planning to learn it as soon as it looks like the right choice for me - for most of my work, Python + Go + bash (I love and hate bash) are more than sufficient.