Re:The Go Programming Language by Brian W. Kernighan, Alan D...
by arthurtw on Thursday March 05, 2015 @09:16PM
(#9155218)
> 2. Static compilation. This makes a massive difference over Python in terms of catching and correcting problems at compile time vs run time.
Correct. When comparing a static programming language to a dynamic one such as Go vs Python, this is a critical difference. It impacts system stability (production outage rate) and code maintainability a lot, the two characteristics a long-running product desperately needs.
But Go is not comparable to C. Go is garbage-collected, so unlike Rust, it is not a true system programming language (i.e. not low-level enough). On the other hand, it is not high-level enough. It lacks many advanced language constructs, and its type system is rather limited. Simplicity is a big merit of Go, but it's too limited IMO.
Go solves many software development problems for large engineering teams, so I think its ecosystem will keep growing for a while.
Two big things here, for my applications.
1. Memory. You mention CPU use, but memory use is even more critical for what I do. For game servers, for example, lower memory usage for an application can change the multipliers on how many users I can handle per server. This can make a dramatic (like 20x) difference in what you can offer users for free vs charging.
2. Static compilation. This makes a massive difference over Python in terms of catching and correcting problems at compile time vs run time.