4 ms·
> it made fixing any minor bug take weeks. My god. A lot of these fancy language features sound good on paper but can be so abused that even just coming to un
by artursapek 10y ago
> it made fixing any minor bug take weeks.
My god.
A lot of these fancy language features sound good on paper but can be so abused that even just coming to understand the code takes up too much space in your head.
https://twitter.com/davidcrawshaw/status/507268175256231936 https://twitter.com/davidcrawshaw/status/507268175256231936
- donatj 10y agoThis is part of why I am so in love with Go. I have never read Go I couldn't understand. It's very clear at heart. I have read through much of the standard library and it all makes sense.
- MyNameIsFred 10y agoDo you think that's that's because the language inherently makes things readable, or is it simply because the language is too new to have popular anti-patterns?
- mixedCase 10y agoThe simplicity of the language and some of its choices really force you to do things a certain way that comes out almost universally legible instead of going with what may feel easier or "clever" to write. This is why it's so widely criticized (which doesn't mean that some of its criticism isn't fair). Also gofmt having the last word on what code is acceptable and what isn't helps kill a lot of arguments that aren't worth having.
- stcredzero 10y agoIn a way, it's like the Go team chose to write something that has some of the coder UX of Smalltalk, but in a C-like statically compiled language. There is a useful region of language design space around the "simple language" concept, and they seem to be making the most of that particular design space maxima.
- agumonkey 10y agoThe team promotes heavily dead simple code over PL abstractions. Taken from some golang con slides where they said there would be nothing new in go, only perf and bug removal for a while.
- donatj 10y agoIt's an active choice of the language to not allow many syntactic sugars that make the code have a much higher learning curve. https://www.youtube.com/watch?v=rFejpH_tAHM https://www.youtube.com/watch?v=rFejpH_tAHM is a good overview.
- MyNameIsFred 10y agoEmphasis belongs on abused. Interfaces are swell. Subclasses of classes which implement an Interface are swell too, when they extend simply by altering the way said interface is achieved. When you subclass to "add more stuff", however, you get the kind of nonsense described.
- deong 10y agoThe problem, in my opinion, is that the Java community (generalizing, I know) decided to bless that abuse as a best practice.
- jasonm23 10y agoIn many ways I'm terrified by Java programmers who have never heard of pattern abuse.