8 ms·
Every HN thread about go: go is useless because it lacks generics. Go adds generics. HN thread: I don't want this. Good case study about the people drawn to
by tedunangst 5y ago
Every HN thread about go: go is useless because it lacks generics.
Go adds generics.
HN thread: I don't want this.
Good case study about the people drawn to comment on a topic.
- silisili 5y agoOr good case study of squeaky wheels. I never wanted generics. I never thought to spam the development lists about how much I liked how things were going.
- bigdubs 5y agoa couple high profile projects (k8s) needed generics, there are limited use cases outlined in the planning docs that detail the holes in the language they're filling, it wasn't just squeaky wheels.
- silisili 5y agoShame how k8s was a failure without generics. Think what could have been.
- Zababa 5y agoThe thing is, Google is paying most of the development costs for Go and Google controls Go too. It makes sense to adapt the language to their needs. They already do stuff like creating new network protocols because it will reduce their costs.
- loopz 5y agoGoogle have alternatives to k8s already. So it's more about making a market.
- pjmlp 5y agoUNIX was re-written in a clunky unsafe systems programming language, by being free beer due to legal impositions on research work, its adoption settled the future of this language across the industry. Yet even C supports lightweight generics, so they must be worth something.
- dilyevsky 5y agoMaybe you can get rid of some runtime.Object casting here and there (I suspect at the cost of major compilation time penalty) but pretty sure the codegen is here to stay
- randomdata 5y agoFrom what I have seen over the years, the "I don't want generics" crowd showed up just as often as the "Go is useless without generics" crowd. This time, though, only one of those groups can reasonably continue to comment.
- deleted 5y ago[deleted]
- zenlot 5y agoBeen reading through comments and wanted to say exactly this :)
- dmix 5y agoThis is why you have to be a tough leader when you’re the designer of anything. But especially languages which naturally draw an endless barrage of comparisons and tribal opinions. You see this a lot in web design, everyone thinks they’re an expert at what makes a good website - simply because they are a consumer of them. Even if they only have minimal experience building one IRL.
- 1penny42cents 5y agoIsn't that the response you should expect on any topic where the population's preference is split across a decision line? When go didn't have generics, those in favor commented. Now that it will, those against are commenting. It sounds funny at face value but I don't see the insight.
- anothernewdude 5y agoThe people who cared about Go not having generics (myself included) moved on. The time for a well designed language with Generics was five years ago. The only people who care about Go now are the ones who convinced themselves that casting from empty interfaces was okay.
- erik_seaberg 5y agoMy employer has not moved on and it’s steadily encroaching more even on strong Scala/Java teams, so I’m glad to see the worst impediments start getting fixed.
- hyperman1 5y agoYes and no. I dropped go after a short but tumultous love/hate relation, but decided to take a fresh look if generics had a decent answer. There's a lot to like about go. So I'll look back soon.
- zimpenfish 5y agoDunno about the rest of the world but London definitely seems to be embracing Go - many more jobs going now than even a year ago.
- smcl 5y agoYou’re making it sound like these are the same group of people and they’re just really fickle, whiny and impossible to please. But my memory of these older go/generics threads were that commenters were split between “I love go, I wish it had generics” and “I love go, I don’t think it needs generics”. The former have no need to comment anymore, the latter will still want to express their feelings.
- baby 5y agoIt’s almost like HN is not a single person
- SideburnsOfDoom 5y ago> Go adds generics. HN thread: I don't want this If generics are a good idea for a language, then it's better to add them in version 0.01 of the language and build up from there with generics as an intrinsic part of the language and standard libraries. No, I don't want _tacked on_ generics. Generics are not in 2021 a "bleeding edge" feature, that _might_ be useful later. They are established and proven in ways that they were not when Java v1 or C# v1 shipped - both added generics in later releases, with associated compromises. Now, you can and should choose upfront if your language needs them, or to choose a different route. There's no need to repeat that history. YMMV, people have different preferences in programming languages, I have always preferred strongly typed languages. Generics suit me, but pick your lane. And if you're at version 0.01 of a language, while you're at it, look at being immutable by default, not null by default. Those things can be opt-in for when you need them.
- R0b0t1 5y agoThese don't seem tacked on. They spent so long on them specifically so they don't seem tacked on. The issue with Go is if you're not shuffling around binary data it has horrible developer ergonomics. Network data is usually untyped, but if you start needing to care about what is in that data and need typed datastructures built around it you stop having fun quick. Same issue with C, really.
- pjmlp 5y agoThere is lots of fun to had when debugging mismatched dynamic structures sent around the network. It is no wonder that any new format introduced with hype to release developers from type safety boilerplate chains, a few years in production ends up getting its own flavour of schema definition.
- iainmerrick 5y agoNo, I don't want _tacked on_ generics. What languages in your opinion have good, non-tacked-on generics? Are they generally better than other languages? Here are some pretty successful languages that gained generics after maturity: C++, Java, C#, TypeScript (based on JavaScript), Objective-C, even Python.
- SergeAx 5y agoI am okay with generics as long as they are not affecting compile time. I love Go for blazing fast builds and testing and afraid generics will degrade it. Otherwise, generics are adding some cognitive complexity to code, but I don't have to use them and will just occasionaly have to figure them out in libraries.
- whateveracct 5y agoParametric polymorphism pretty much never adds cognitive complexity..it's the only true abstraction there is in CS. Go could easily fuck it up tho - that's fair.
- pjmlp 5y agoCheck ML languages with its multiple backends, Eiffel or Delphi/FreePascal. Go compile times, while great, weren't any novelty to old timers before the .com wave that brought scripting languages into the spotlight and Sun's gigantic Java push. Thankfully the 20 years detour seems to be getting over.
- SergeAx 5y agoYeah, too bad I can't build a decent team to develop a distributed scalable application in FreePascal.
- pjmlp 5y agoThat is a failing on your part given that the tools are available.
- scns 5y agoAs much as i value your insights and historical addendums, your tone is often offputting to me.
- pjmlp 5y agoAs it may me, that is how I see the world. Tooling is available, books are available, 30 years of libraries are around. If with all of that you can't find a team, it certainly isn't because of tooling.
- masto 5y agoI don’t know, at this point my guess is that most people just don’t care, so those that can be bothered to comment are a bit fringe. When Go first came out, it seemed interesting, but when I checked it out it felt more like throwing out the baby with the bathwater than introducing anything of value. Not every idea since 1972 is bad. So I tried to force myself to use it for a project or two, got frustrated by exactly the things people were complaining about, and never looked at it again. I haven’t seen any meaningful adoption, so my hypothesis is that by not having the features mainstream users want, Go missed its window of opportunity and the world moved on. It’s neat that they’re adding them now, but.. well.. let’s just say that I was an absolute die-hard Perl fan for a long time so I’m familiar with this pattern.
- dgellow 5y agoThat’s because “HN threads” represents a lot of different people with different needs and opinions. It’s not a monolithic block at all, and people are more likely to react to complain.
- Zancarius 5y ago> people are more likely to react to complain. You hit the nail on the head. This is broadly true across virtually everything--at least in most of Western culture (as this is the only one I'm most familiar with). Anger seems to provoke a more actionable response whereas satisfaction does not (generally speaking). Is someone more apt to call a business over lousy service or great service? Why is it that giving a compliment to someone in customer service sometimes provokes a brief reaction of surprise? I try to do my part as a positive force when I can, but I usually fall short. Besides, is one happy person likely to make that much of a difference over the course of a day? Maybe, maybe not. FWIW I actually like the idea of generics in Go and have a few use cases where they'd be exceptionally helpful in cutting down the amount of code I have floating around in some libraries. I just don't feel strongly enough about it to jump into a thread to rush to its defense.
- scns 5y agoMy guess would be it has biological/physiological reasons. Negative stimuli create a greater urge to act. Tabloids selling more newspapers with bad news than good ones, because the individuals that gave higher weight to birdsong than the signs of a predator approaching did not procreate, evolution at work. It is possible to change though, patiently putting your own focus on positive things, which there are so many of. Takes work, but sooo worth it. Life is more fun that way too.