HNHacker News
TopNewBestAskShowJobs

9rx

1,401 karma · joined November 25, 2024

submissionscomments
9rx··on Can we have the day off?
Pay raises have kept pace with human productivity gains.

Robots have pushed productivity well beyond the human capacity. But robots are not willing to work for free either, so...

9rx··on Go: Support for Generic Methods
Funnily enough, Go's generics were designed by the same guy who introduced monads to computer science. Everything comes fill circle.
9rx··on Go: Support for Generic Methods
> and averse to the idea of using other people's work.

They did use someone else's work, though. If you recall, Philip Wadler (of Haskell fame) designed Go's generics.

> but by so doing end up with poor reinventions of well-studied concepts.

Which is funny as there is probably nobody on earth that would be more capable than Wadler to get the job done. His pedigree in that area of work is pretty astounding. If he couldn't do more than create a poor reinvention, what hope did the laymen working on the Go core team have?

Answer: They had no hope. It's not like they weren't trying. Ian Lance Taylor, for instance, is well known for beginning work on generics in Go before it was even first released to the public. He, among others, quite simply, were unable to figure it out.

Everything looks easy and straightforward when observed comfortably from an armchair, I suppose.

9rx··on Can we have the day off?
> Labor saving tech doesn't lead to more free time

It does when you own the tech. If you give the tech away then the people who you gave it to will continue to expect more of the same, naturally.

9rx··on Go: Support for Generic Methods
Code is written to be read, and typically for other people to read. So, in practice, it is only optional if everyone else agrees to not use it.
9rx··on Go: Support for Generic Methods
> for want of a better word

Structural typing is the term typically used to describe "static duck typing".

9rx··on Go: Support for Generic Methods
If only you had made it to the second paragraph.

Hey, at least we can now understand why you have such a hard time with nil, so that's something.

9rx··on Go: Support for Generic Methods
> Of course the social landscape depends on people actually using it.

That's nonsense. Brainfuck has shaped the social landscape despite effectively nobody using it, and absolutely nobody using it for any real work. The social landscape is not at all dependent on use.

> And given the history of Go and the notoriety of its core team for flatly ignoring prior work in programming languages

Huh? Go comes straight out of prior work. It is nearly indistinguishable from Alef. What the Go language flatly ignored was being innovative. Reasonably so, of course. It wasn't trying to innovate in programming languages so that we'd have another to throw on the heap of languages nobody uses. It was trying to solve a specific business problem using well-established methods.

9rx··on Go: Support for Generic Methods
> Like by not remembering to check if a pointer is nil?

Rule of thumb is to not introduce values that aren't valid. Equally, don't put in -1 for an age value, even if the language allows you to. You might later forget to validate that the age value is valid.

Yes, mistakes are possible, but these types of mistakes are pretty rare. There is some value in eliminating the possibility of those mistakes, sure, but we cannot pretend that it comes cost-free. There is good reason why almost nobody uses Rocq.

> Or actually comparing one typed nil to a different typed nil?

This is something that is likely to confuse, but not a facet of nil. It is related to interfaces. Let's not flail around like one of those wacky blow up things at the used auto lot.

9rx··on Go: Support for Generic Methods
> Nil exists in C and is widely considered to be a massive mistake in the language.

You're almost there, but it is wildly considered to be massive mistake in context of arrays. C has weird array semantics that are confusing and hard to get right, even for seasoned developers. That is where NULL comes to bite people time and time again. Go did not inherit C's arrays. Neither did Javascript. They go out of their way to avoid what C did. In Go, you can come close to the same semantics if you use the unsafe package, but take note the name.

Yes, they still have nil, but the scope is tightly constrained and while it is technically possible to misuse, you have to try pretty hard to do so. There are many other things that are more likely to end up being misused. Those would be the more massive mistakes.

> But Go could have been better.

Obviously. Every language ever created can be better.

9rx··on Go: Support for Generic Methods
Typescript has something resembling nil as inherited from Javascript, so presumably that's what you are referring to. C and Javascript are the most widely used languages in existence. Clearly they weren't kneecapped. It mightn't be to your preference, but "I don't like it" would be an atypical use for the word "kneecap".

There is a stronger case to be made for the other two. Calling GOPATH a design mistake is a stretch as it was perfectly suited to use within Google, but it didn't fit the typical solo developer's environment. Lack of generics made writing certain types of code difficult. You could be convincing in suggesting that Go did end up being used less than it otherwise would have because of those choices.

iota? It's just a construct that generates numbers (an enum). How does that kneecap anything? If it really bothers you, you can manually number the values by hand instead. Why would anyone reject a language because it allows you to optionally choose to have the compiler assign numbers automatically instead of forcing you to do it manually? The answer is nobody. In fact, most popular languages have something equivalent to iota.

9rx··on Go: Support for Generic Methods
> So it is a statically typed language first and foremost.

Right, because that is primarily how it makes things fast. Python is slow largely because it spends an inordinate amount of time trying to figure out what things are. Go knows what things are at compile time because the static type system tells it what things are and thus doesn't have to waste runtime compute on figuring out what things are, aside from when you use the reflect package, like Python does. That was its value-add — that it is kind of like Python, but faster. We already went over this...

> If I link to the docs [0]

I said original announcement, so I'm not sure why you wouldn't look there? Trying to be obtuse on purpose? Regardless, performance was indeed considered more important than being dynamically-typed. After all, if performance wasn't a concern then you'd just use Python. Go exists only because it was solving a problem that wasn't already solved. Slow Python was already solved. Type safety was already solved. It didn't need to go into those territories.

9rx··on Go: Support for Generic Methods
> The problem is this - https://www.zarl.dev/posts/enums

The only case I see made in there is that it doesn't like how Go implicitly converts consts. While that may be a reasonable criticism, it doesn't have anything to do with iota. It is related to the type system and applies in general. Consider the same problem exhibited here:

    type Email string
    func Send(email Email)
    func() { Send("invalid") } // Converted string const does not satisfy Email type expectations
Perhaps you accidentally offered the wrong link?

It was made abundantly clear when Go was released that it was intended to "feel like a dynamically-typed language". Being able to pass arbitrary values is perfectly in line with a dynamically-typed language. Realistically, the type system in Go is there to give the compiler optimization hints, not to offer type safety. Go was targeted at those wanting to use Python, without the programs being painfully slow to run. How much of a kneecap is implicit type conversion, really, when it is already in line with what the target audience is accustomed to? It is a quirk at best.

9rx··on Go: Support for Generic Methods
The social landscape doesn't depend on anyone actually using it. However, 1.0 isn't a significant milestone like you suggest either. For a current example, Zig is relatively popular today despite not yet reaching 1.0.
9rx··on Go: Support for Generic Methods
Why is iota a massive kneecap to the language? It is semantically identical to enum in C and Typescript.

The trouble is that Rust is older than Go and it was already confusing people into thinking enums and sum types are the same thing, so by using slightly different syntax, iota, Go avoided the whole confusion of users thinking that enums would behave like sum types instead of actual enums.

Is your attempt at making a point that not having sum types is the massive flaw? Sum types are a useful construct, to be sure, but there are plenty of good languages without them. That's more on the design quirk end, realistically.

9rx··on Go: Support for Generic Methods
An engineer, of course, understands that there is no such thing as "wrong", only different tradeoffs, but with the rise of "vibe coding" you don't need to be an engineer to play in the world of programming anymore.
9rx··on Go: Support for Generic Methods
Of course, if you go back and watch the original Go announcement it said that it would need generics once they figured out how to do it. And when the first version of generics landed it was said that generic methods would be added later, once they figured out how to do it. So that isn't applicable here. The need was always recognized.
9rx··on What we lost when we stopped letting kids leave the front yard
The high school I attended had a shooting range once upon a time. It was expected that the kids would brings their rifles to school to use it.

How times have changed.

9rx··on Spotify will start reserving concert tickets for fans
> So that distinction about Wal-Mart was just... resolutely bullshit.

No. It's the same market dynamic. Artists with a large market sell their tickets below fair consumer market value for the same reason manufacturers with a large market do. There is tremendous value in letting a middleman buy your product in bulk. Hence why the producer is willing to see the point of value go for a reduced price.

> I do not give a fuck about what artists like Taylor Swift consider to be a risk.

Her fans do, though. It affects their experience engaging with her. If you aren't a fan then it doesn't really matter, does it?

> So without scalpers, there would be no reason to perform.

Not at all. Why respond before giving even a modicum of thought?

9rx··on Spotify will start reserving concert tickets for fans
> Scalpers buy tickets at the same (retail) price that you or I do

The game of semantics isn't going to get you far. You could equally say that scalpers buy same wholesale tickets that you and I do. The words "retail" and "wholesale" are useful to illustrate the market dynamic, but they aren't rules.

> The additional price of scalping adds no positive value to me.

The value to you is that artists like Taylor Swift can justify putting on a show that cost five million dollars, which is presumably the appeal. If the risk was all on her shoulders, why would she take the risk? There'd be no incentive to. That would be insane, frankly.

I mean, I'd personally much rather watch some unknown artist in a dingy bar that can't find a market that is willing to buy tickets, but if you're attending performances where these retailers are prevalent and tickets are worth thousands of dollars I expect you are going to be disappointed if it is no different than a dingy bar experience. The five million dollar spend is necessary to appeal to the audience. Ain't nobody dropping five million big ones for no reason...

And, well, if you are like me and don't care about those big shows then scalpers aren't even involved. They aren't touching tickets from small time, unknown artists even with a ten foot pole. In that case, sure, there is no positive value to you if you have no interest in seeing Taylor Swift in the first place, but in that case Taylor Swift herself doesn't provide positive value to you either, so who gives a shit?

> You can keep trying to persuade me

Of what benefit would there be in persuading you? You're not going to find any. This might be the most hilariously out of touch thing I've read on HN yet.

9rx··on What is a Demand Coop
> I pay dues to a union. Those dues can go towards paying someone who knows how to run a union.

Making you the employer. Dues are not a social or legal entity in and of themselves. There needs to be a human in the loop and in this hypothetical case that person is you.

> I'm neither an employer or a contractor in either setting.

Right. Under the common lexicon, the plumber is the contractor. Contractors are service providers, not service recipients. You, in this hypothetical case, are the one receiving a service from the plumber. Nobody would ever think you would be a contractor in this setting. It remains unclear why you keep repeating this obvious tautology.

And this is why tech people don't want to get into unions with other tech people. The unfortunate reality is that they let anyone become a tech worker.

9rx··on What is a Demand Coop
> Being in a union is not being an employer

Uh, you absolutely become an employer when you start employing people.

> anymore than calling a plumber is becoming a contractor.

Why would you become a contractor by calling a plumber? The plumber is the contractor in the equation (with some assumptions about the plumber's willingness to engage in a transaction).

> are you happy to accept your paycheck until every week until the severance pink slip lands on your desk? That is the alternative confronting knowledge workers today.

Accept a paycheck or start your own business (or retire, I suppose) are the only choices that have ever been present. What is the quip about knowledge workers intended to add?

9rx··on What is a Demand Coop
> Not really! You can hire for this role—your union can hire an attorney, an accountant, an HR professional

Your solution to avoid becoming an employer is to... employ people? Oh boy.

9rx··on Spotify will start reserving concert tickets for fans
> They instead buy truckloads of tickets at retail prices

Clearly that's not true. Retail charges what the consumer is willing to pay. If the tickets were sold retail there would be no consistent arbitrage opportunity.

There may have been some point in history where artists tried to sell retail, which may be the source of your confusion, but nowadays these tickets are purposely sold below retail value so that they can sell out fast to the retailers, removing the risk at the origin.

Smaller/lesser known acts still have to focus on the retail market as there is no middleman willing to step in and take on the retail role, which may also be the source of your confusion, but that isn't the segment of the market we're talking about.

> Scalpers provide zero value to the transaction.

Aside from the value of knowing that all the tickets are sold, which is of enormous value. It is estimated that it costs around five million dollars to put on a single Taylor Swift performance. At that scale, things get scary fast if you find out that tickets still aren't sold at the last minute.

Markets are pretty efficient. It wouldn't happen if there was no value in it. Why would an artist give up the profits captured by the retailers if there was no value in having a retailer? They wouldn't, of course. Even if they have no personal need for even more money, that is money that can be used to better serve the fans. It is not given up lightly. It is given up because it is worth it.

9rx··on Spotify will start reserving concert tickets for fans
> no value add to the market.

Markets are more efficient than you give them credit for. If there was no value-add it wouldn't happen. The value-add is that the scalpers take the risk and hassle off of the artist/venue. They can instantly sell out and then get back to worrying about the actual performance. Selling the tickets at their fair market value initially sounds good in theory, but then you have to spend weeks and months trying to get them sold, which is not a core competency a musical artist really wants to have. It is advantageous to underprice and know that you are sold out upfront and let someone else deal with the slog.

It's much the same as why wholesalers sell to Walmart for pennies on the dollar instead of trying to capture the retail market themselves. Selling direct to retail seems like a good idea... until you have to do it and realize you'd rather get back to what it is you're actually good at producing.

9rx··on Spotify will start reserving concert tickets for fans
Perhaps it depends on your "Ship of Theseus" perspective, but we have all kinds of evidence that demonstrates music fans are quite often more than happy to see a live performance of a set of songs they've come to love even when not performed by the original artists. Look at how many bands are still selling out arenas even when original members are no longer with us.

Presumably individuals involved in these cases are already tapped out for how many performances they can do, so why not have other people put on the same show to expand the supply?

9rx··on Spotify will start reserving concert tickets for fans
> The 17-year-old meanwhile may never get to go to a show of any of their favorite bands

Back in my day 17-year-olds, especially those who would want to attend concerts, were interested in discovering music. Some of those discoveries would absolutely be artists selling out stadiums where tickets can sell for 10x face value, sure. But some of those discoveries were artists relegated to playing in dingy bars where a cover charge would be unthinkable. One might not have been able to see all of their favorite bands (i.e. the most famous among them), but seeing some of those artists would be quite realistic.

Does what you are saying imply that music fans today have converged on listening only to a small group of superstars despite music discoverability never being easier?

9rx··on Spotify will start reserving concert tickets for fans
Not really. The vast majority of live music isn't even able to sell tickets as nobody would pay a penny, let alone a fortune. Getting in isn't much of a problem.

Only the megastars that can command high-priced tickets would attract the old and square, which is okay because the megastars are old and square themselves by the time they've built that old and square audience. The hip and with it music fans have already moved on to seeing the next up-and-comers that play for free.

9rx··on What is a Demand Coop
> The question then becomes whether you think that the only reason they manage to not cause everything to crash and burn is because they have far less relative power to the people who sign the paychecks

The question is how much do you trust your employer to weather storms. If a business is going to crash and burn if the people you work with move on to new roles at other companies then you're in a bad place trying to bet your life on that business. However, if you trust that the business stakeholders will keep things moving even as people come and go then the people you work with don't really matter.

Going into business with the people you work with is quite different. If they decide to back out of being business partners, everything falls on you and you alone. You have to trust yourself to not screw everything up when times get hard. And, well, if you had that trust in yourself and desire to deal with it you'd already be the business owner yourself. One becomes an employee exactly because they don't want to have to deal with all of those headaches. You need to have a great deal of trust when you are the owner that you don't need if someone else is the owner.

> I'm incredulous that you think that the people who are currently the stakeholders care more about your circumstances

They couldn't care less about your circumstances. They care about themselves, though, and if they let things run wild their business will fail. That would not be in their interest. In a union, you become the employer, so to speak. You have to put your time into ensuring that things don't run wild.

If you are surrounded by good people, like you and MLB players are, then you don't have to worry about things going wild so much. Good people can be reasonably trusted. But that is a privileged situation. Not everyone is nearly as fortunate as you are.

> If I accepted the premise that the waters hadn't be sufficiently poisoned by constant bombardment of messages like yours over the past century

I get that you have no idea what I'm talking about, as evidenced by the non-sequiturs you keep replying with, but how does a pro-union message poison the waters? Are you purposefully posting this nonsense in an effort to diminish unions?

9rx··on What is a Demand Coop
> If we were drowning in software jobs the way you describe, why would anyone tolerate having such awful coworkers at their office instead of finding somewhere better?

I am not sure I follow your thinking here. We would be (or at least would have been until recently; the market is much less clear now) drowning in software jobs if businesses were only willing to hire the "MLB superstars" of the tech world. We have never drowned in software jobs because businesses have been willing to hire warm bodies for where the "MLB superstars" weren't available. To be clear, I said "The need for tech workers is larger than the number of quality people", not "The need for tech workers is larger than the number of people".

> I would be reluctant to associate with them; after all, that's what I'm already doing!

You may work together, but would you want to start a business with them? That is what a union ultimately is, after all: A group of people who have come together to want to sell labor under an organization instead of individually.

The thing is that working together when you're not the stakeholder is quite easy because the stakeholder has to deal with the shit. Things get real when it is only you and your fellow brethren. That's not to say that it wouldn't work in your particular situation. There are going to be pockets where the stars have aligned. But no doubt you have already formed a union with your coworkers if you have the necessary mutual trust. I mean, why wouldn't you in such a case?

(If you are game but your coworkers are the ones who are reluctant, remember it is you who is the "yahoo")

← PreviousPage 4 of 34Next →