Hacker News new | ask | show | jobs
by pron 3999 days ago
One of the (many) reasons I find Java much more appropriate for large "important" projects (Go is terrific for small ones), is that Go is the least hackable language in recent memory. When you start a big project, you know that at some point -- maybe even four or five years hence -- you will need a hack around language semantics to solve something without rewriting the whole thing. Python has monkeypatching, Ruby has meta-programming, C and C++ hack themselves, Rust has unsafe and C, and Java has bytecode instrumentation (load-time *or build-time) and Unsafe. With Go, you have absolutely nothing. You can't even drop down to C to get around semantics issues because you'll probably mess up the runtime. Every language has an escape hatch from factory-settings semantics. It's not wise to use it often, but sometime in the life of a big project, you will need it. Except Go. Go is utterly unhackable (at least not in any safe-ish way). The only "escape hatches" are source instrumentation and taking your chances with mucking about the runtime in C. But those are more taking a sledgehammer to the wall (and are available in any other language, too) than escape-hatches. It is very clear that Go is tailored to match Google's very specific process, like being very source-code- (rather than binary-library) -oriented.