4 ms·
> Go has the nearly perfect balance of readability, expressibility and simplicity Is Go really expressive?
by smegel 10y ago
> Go has the nearly perfect balance of readability, expressibility and simplicity
Is Go really expressive?
- favadi 10y agoFairly verbose. But he was talking about the "balance".
- coldtea 10y agoHow it is a balance if expressiveness suffers?
- johncolanduoni 10y agoI guess the claim is that any more expressiveness would necessitate losses in readability or simplicity that the expressiveness doesn't make up for. Personally, I think you're sense of relative value of those has to be pretty unusual to thinks it's "perfect". Though valuing simplicity above almost everything else is what's written on the tin with Go.
- idobai 10y agoNo, it's verbose and recommends bad and repetitive code style which affects both readability and simplicity. The only people who'll find this language "simple" are those who never understood any more "complexities" than functions and loops: " The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike " +article: http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/ http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-in...
- jnordwick 10y agoIt is pretty readable, but really non-functional too. Eg, they still don't have math.round and you wind up writing a lot of code because it can be a little bare bones or does things in a way that isn't quit usable. I wouldn't say it is very expressive either. Go can be very wordy and verbose at times, and some things are downright a pain or poorly thought out (e.g, while Java has finally and C++/Rust have RIAA for dealing with resource deallocation Go has defer and it doesn't work really well when you encounter an error in the dealloc logic). Simplicity is about Java 1.0. Give Go some time to add some technical debt before you get too excited about it simplicity. It isn't a bad language. This is my second run thought the language, and I'm neither excited nor turned off by it.
- Profan 10y ago... R-RIAA? You probably meant RAII right: http://www.riaa.com/ http://www.riaa.com/ Resource management by litigation sounds innovative though
- rebeccaskinner 10y ago> It is pretty readable, but really non-functional too There are projects starting to fix that: https://github.com/asteris-llc/gofpher https://github.com/asteris-llc/gofpher
- deleted 10y ago[deleted]
- johncolanduoni 10y agoI think he meant non-functional in the sense of "not functioning", not functional programming. Neither of his immediately following complaints have anything to do with functional programming.
- rebeccaskinner 10y agoI was trying to be funny and missed the mark
- ex_amazon_sde 10y agoNot really. It's very verbose compared to Python, almost like Java.
- the_duke 10y agoNoo that's an overstatement. Of course it's not as clean as Python, it's statically typed. But type inference makes code way cleaner than your typical Java code (Javas type inference is improving, though).
- idobai 10y ago> Noo that's an overstatement. No, it isn't since go lacks generics and dynamic types - which helps to reduce boilerplate(even if the latter isn't that effective). > Of course it's not as clean as Python, it's statically typed. There are cleaner statically typed languages then python - look at fp languages with type inference(ML dialect) > But type inference makes code way cleaner than your typical Java code (Javas type inference is improving, though). The typical java code is legacy, but for a fair comparison you should check out projectlombok [1]. Otherwise, Java is on the JVM which means there are alternatives like Scala/Kotlin etc. [1]https://projectlombok.org/ https://projectlombok.org/