4 ms·
I don't think I would classify Go with Java. I would not use Go to write a system with a rich domain model and lots of business logic. Java, in its own dated
by dkarl 5y ago
I don't think I would classify Go with Java. I would not use Go to write a system with a rich domain model and lots of business logic. Java, in its own dated and awful way, is designed to cope with complexity. Go is designed to punish it.
Go is the language you design when you have absolute conviction that whenever you feel forced to write complex code, you need to rethink your solution instead. It is not a language you would design if you were doing business application programming and were forced to model unbounded amounts of complexity beyond your control. (Java admittedly didn't originate that way, but it sure looks like it did.)
- jfengel 5y agoIt is odd that Java was conceived for set-top boxes. Even before generics were added, it was clearly a language aimed at establishing and enforcing contracts in a largish team over long development cycles. You can see it in the Hello, World program, which has a lot of weight you wouldn't need for space and time constrained programs on a set-top box. Gosling was obviously inspired by C++ ("without the guns, clubs and knives", as he said), which itself adds a lot of the complexity to support large-scale projects, features that C was lacking. I'm not entirely sure he thought about it much past that.