5 ms·
> it doesn't have this overbloated concept of inheritance and polymorphism of let's say Java where you have to look through 6 files to understand what's even go
by zimpenfish 3y ago
> it doesn't have this overbloated concept of inheritance and polymorphism of let's say Java where you have to look through 6 files to understand what's even going on
Several Go codebases I've worked on would like a word. Some Go people really love their interfaces and abstractions and making sure every method is only 3 lines and pretty soon you're 20 files and three type hierarchies deep trying to figure out what a single HTTP handler actually does.
- baby 3y agoI’ve seen one Golang codebase like this and it was made by Java people
- mrweasel 3y agoA certain number of developers will be able to complicate any language or mechanism you provide them, it's how they feel important. I've notice the there is a group of people who has their entire identity tied up in being "smarter" than everyone else, except they aren't, so they build extremely complex systems, because they think that's what smart people do. They are interestingly often extremely well versed in their tool of choice.
- munificent 3y ago> I've notice the there is a group of people who has their entire identity tied up in being "smarter" than everyone else I've also seen the opposite where people revolve their entire identity around not being the person and they swing too far the other direction and end up being a masochist and doing things the dumb way because they're too afraid of coming across like a snob.
- ingoaf 3y agoThis is actually a real gem of a comment. Thank you for that!
- mostlylurks 3y agoYou are mistaken if you think that the abundant use of interfaces etc. is motivated by anything along those lines. As someone who often puts basically everything behind an interface and abstracts everything in sight, it's not because it has anything to do with being smart, quite the opposite; it's the only way I can keep any meaningful portion of the code in my head. Give me a 5000-line straightforward / unabstracted implementation of something and I'll struggle, but give me thingDoer.doThing(), behind an interface so I don't even have to know how to construct one, and I'll be happy and able to focus on the task at hand. This applies even if I'm the one who wrote the ThingDoer interface and its implementation(s), and even if it was only 30 minutes ago.
- ssd532 3y agoThis is me as well. Another reason for me for having interfaces is simple mocking in tests.
- chrsig 3y ago> They are interestingly often extremely well versed in their tool of choice. This has become a red flag to me; over attachment to a tool or paradigm means that they're driven by and making decisions using feelings, not through actual analysis.
- thruway516 3y agoVery well put. "They are interestingly often extremely well versed in their tool of choice." People who are, shall I say unwise, but very good at what they do is one of the most annoying things wrong with the world.
- theshrike79 3y agoYou can instantly see when the codebase is Java Coder Go or Python Coder Go, they bring their baggage to the language and it shows.
- otabdeveloper4 3y agoYeah, you just described every Go project. Reading Go code is a nightmare of frustrations.
- zimpenfish 3y agoI disagree because I've seen some readable Go codebases but I wholly agree that bad Go codebases are a nightmare. Try comparing the Honk source (clear, direct, modulo the unangst wacky names for everything) with GotoSocial (unreadable, interfaces and abstractions out the wazoo). (Yes, I know GTS supports the MastoAPI but that doesn't force the hellish onion-layer abomination they've created.)
- lokar 3y agoThere is this odd thing where the actual syntax and features of a language are (at least partly) independent of how it ends up being used. A culture forms around the language (that the authors have limited influence over). Java does not have to be used the way most people tend to (factoryfactoryimplfactory!). And some go projects (notably at least early k8s are go in Java style). A lot of what people comment on is less the language and more the dominant culture.
- saturn_vk 3y agoNo one is safe from bad developers. I've seen go SDKs for paid products that were clearly written by people with only a vague idea what the target language offers. I have to assume such libraries were hammered until the compiler just accepted what was given