Readit News logoReadit News
9rx commented on Id Software devs form "wall-to-wall" union   rockpapershotgun.com/id-s... · Posted by u/simjue
_bent · a day ago
this doesn't happen because the union is very much interested in keeping the company afloat
9rx · 8 hours ago
The union is interested in keeping the union afloat. If the union sees no other opportunity it can become interested in keeping the company float, but you have not made the case for your statement to be a truism.

Consider an actors union — actor unions have famously walked away from companies without much regard for the longevity of the company they walked away from on numerous occasions. They know in that line of work there is always another company looking to hire them, so there isn't a whole lot of incentive to care about individual companies.

Deleted Comment

9rx commented on Deprecate like you mean it   entropicthoughts.com/depr... · Posted by u/todsacerdoti
IceDane · 12 hours ago
Thank you for (once again) making it clear to any reader that you are not to be taken seriously. If only we could edit older comments so that the reader didn't have to suffer through all your nonsense to find out.
9rx · 8 hours ago
The reader has no idea who the author is. Nor do they need to as the words on the page already provide sufficient information to determine if the words are worthy of being taken seriously or not. Trying to assign meaning from the author onto the message is not logically sound. Words stand on their own.

Turning to logical fallacies in an attempt to steer the reader away from understanding that Typescript relies on testing to downplay the original misunderstanding that you mention realizing cannot be edited now isn't going to work, I'm afraid. The reader is able to see through such a thin veneer. They could be convinced by a technical exchange directed at the topic at hand, but it is telling that we never saw anything of the sort.

9rx commented on Deprecate like you mean it   entropicthoughts.com/depr... · Posted by u/todsacerdoti
IceDane · 13 hours ago
> Or even a real one. The hypothetical part is that you'd be able to understand it. The languages with complex type systems are complete bears to work with, as I am sure you can image.

I have written Haskell professionally for several years and worked with Idris and other similar languages. I'm perfectly aware of what is possible.

> The compiler would give you an error if you got the syntax wrong, and in isolation it's fair that you could, say, get the domain name wrong as long as it is syntactically valid. I suppose what I failed to convey, making some assumptions about your understanding of type systems, is that the types would not just specify RFC-compliance. You would also spec out other dependencies such that you also couldn't even provide the wrong domain name without a compiler error. So, no, the implementation of the function couldn't be wrong.

Wow, wouldn't that be something. This is hilariously wrong. You can build tiny functions and then compose those into larger functions and then the larger functions are all correct but only as long as their components are correct. It would be lovely if there was some magic construct that prevented you from writing incorrect code. Maybe it could be extended to hacker news comments, and then we could have just skipped this entire discussion.

> You could mis-spec the contract, of course. Then the function could be "wrong". Maybe this is the intent behind what you are trying to say here. But the idea has always been here that I would also read and accept the contract, so it wouldn't actually be "wrong". It would be exactly what we both expect. My side will be written to what the contact specifies. If you try to deviate from the contract later, you'll face the wrath of the compiler.

A truly baffling take. Bravo! Even on Hacker News, that was truly something. I don't even know where to begin. I guess I don't really have to, since when it comes to explaining the ease with which you transfer words straight from your ass to hacker news comments, it does a better job than I could possibly hope to do.

> As you point out, that's not the case in Typescript. If you try to change the contract (even if by accident) the compiler/typechecker will never say a word. I won't know until my code starts breaking. Your tests are the only thing you have to keep you in line with what we agreed upon. Tests define the contract in its case.

At this point, it's fairly clear that you are just thoroughly confused about how any of this works and what is actually possible. If you disagree, I'd love to hear how you would implement some sort of construct that allows you to write a function of the type `String -> Email` that doesn't throw if the email is invalid, can process arbitrary user input (not just string literals in your code), and somehow makes it a compiler error if your code is ever incorrect at all. PS: Explicitly returning and carrying around proof of validity doesn't count.

9rx · 13 hours ago
> that doesn't throw if the email is invalid

Why can't it 'throw' if the email is invalid? You can — and would — encode that into the contract, detailing exactly what that means, so no problem for the user. They will write their code expecting that condition and everything will be fine. There is nothing special about failure cases. It is only a state, just like every other state.

> At this point, it's fairly clear that you are just thoroughly confused about how any of this works and what is actually possible.

Ad hominem is a logical fallacy. It is surprising that a comment that claims to understand programming language types in great detail would also commit an obvious logical error, given how important logic is in that context. But, stranger things have happened, I suppose. Unfortunately, there is nothing we can take from a logical error. Assuming it was trying to be written in good faith and free of errors, no doubt we'll get a meaningful explanation of what was actually trying to be expressed with code examples to follow. Looking forward to it.

9rx commented on Ask HN: How can I get better at using AI for programming?    · Posted by u/lemonlime227
handoflixue · 17 hours ago
> What’s more concise than code?

The word "Tetris" is significantly more concise than the source code for Tetris.

"Create a Tetris clone" is a valid four-word prompt. It's not going to produce a perfect one shot, but it'll get you 90% of the way there.

> I could have done it myself. Typing isn’t a hard part.

No, but it is slow. Claude can put together Tetris in 5 minutes. I most definitely cannot.

9rx · 15 hours ago
A traditional programming language still wins there. "git clone $TETRIS_CLONE_REPO" is fewer words, gets you 100% of the way, and only takes seconds to produce the result.

But the topic at hand is about novel problems. Can you describe your novel solution to an LLM in a natural language with less effort than a programming language that is already designed for describing novel solutions as clearly and concisely as possible?

9rx commented on Id Software devs form "wall-to-wall" union   rockpapershotgun.com/id-s... · Posted by u/simjue
xg15 · a day ago
Do you have some recent examples?
9rx · 15 hours ago
I was under the impression that in recent times unions had been mostly disbanded, with any remaining being in government that can't fail like a business can. You might have a fair point that we've started seeing a return of them in the last few years (article being an example of such), but it seems much too soon to see them rise up to have the power spoken of in this thread. That only happens as the union becomes more and more comfortable pushing back.

Am I misinformed — that unions have actually been popular in the private sector over the past long while in order to trigger what you speak of recently?

9rx commented on The era of jobs is ending   thepavement.xyz/p/the-era... · Posted by u/SturgeonsLaw
BobbyJo · 3 days ago
Dang, brain fart. I guess you win.
9rx · 15 hours ago
I appreciate you wanting to reorient the paper for me, but I wouldn't call that a win. I was fine with how it was already at rest. If anything, I lose, as the time you put into that was time not spent getting beck to me on the questions I have about the actual topic at hand.
9rx commented on Deprecate like you mean it   entropicthoughts.com/depr... · Posted by u/todsacerdoti
IceDane · 2 days ago
Let's imagine we are working with some hypothetical language in which what you describe is possible.

At some point, you will have to write a function where you validate/parse some arbitrary string, and it then returns some sort of `Email` type as a result. That function will probably return something like `Option<Email>` because you could feed it an invalid email.

The implementation for that function can also be wrong, in exactly the same way the implementation for the typescript equivalent could be wrong. You would have to test it just the same. The guarantees provided by the typescript function are exactly equivalent, except for the fact that you do technically have an escape hatch where you can "force" the creation of a branded `Email` without using the provided safe constructor, where the other language might completely prevent this - but I've already addressed this. In practice, it doesn't matter. You only make the safe constructor available to the user, so they would have to explicitly go out of their way to construct an invalid branded `Email`, and if they do, well, that's not really your problem.

9rx · 15 hours ago
> Let's imagine we are working with some hypothetical language in which what you describe is possible.

Or even a real one. The hypothetical part is that you'd be able to understand it. The languages with complex type systems are complete bears to work with, as I am sure you can image. It isn't just some historical curiosity as to why we prefer to use testing over types to define the contract. It is way more practical. But, no matter how you feel about that, it remains that we do define the contract in tests in the languages people actually use.

> The implementation for that function can also be wrong, in exactly the same way the implementation for the typescript equivalent could be wrong.

The compiler would give you an error if you got the syntax wrong, and in isolation it's fair that you could, say, get the domain name wrong as long as it is syntactically valid. I suppose what I failed to convey, making some assumptions about your understanding of type systems, is that the types would not just specify RFC-compliance. You would also spec out other dependencies such that you also couldn't even provide the wrong domain name without a compiler error. So, no, the implementation of the function couldn't be wrong.

You could mis-spec the contract, of course. Then the function could be "wrong". Maybe this is the intent behind what you are trying to say here. But the idea has always been here that I would also read and accept the contract, so it wouldn't actually be "wrong". It would be exactly what we both expect. My side will be written to what the contact specifies. If you try to deviate from the contract later, you'll face the wrath of the compiler.

As you point out, that's not the case in Typescript. If you try to change the contract (even if by accident) the compiler/typechecker will never say a word. I won't know until my code starts breaking. Your tests are the only thing you have to keep you in line with what we agreed upon. Tests define the contract in its case.

9rx commented on Craft software that makes people feel something   rapha.land/craft-software... · Posted by u/lukeio
Yokohiii · 3 days ago
I am stuck with your phrasing. Duplication is for me something like cloning or a perfect copy. Which I think is unusual. You will find a chinese phone that looks like an iPhone but is totally different and magnitudes cheaper. What you talk about is probably more like mimicking. Offering something that people are used to to get into the market. But every competitor will eventually look for things to make a brand or product different. What is inevitable, is to diverge from mimicry. So duplicating is an evolutionary process itself.
9rx · 2 days ago
> Duplication is for me something like cloning or a perfect copy.

That's fair. But if you aren't offering a perfect clone, then you're offering something novel that will 'wow' your customers, no? The market will never take interest in what you are selling if there is no 'wow' factor.

> Which I think is unusual.

You make a fair point that unreasonable terms on intellectual property laws has made it much more unusual than it should be, but isn't unusual historically, and shouldn't be unusual given our system of trade that assumes that clones will be produced. It's the only way most people can participate in the economy (and why they currently feel left out; but that's another topic for another day).

9rx commented on Microservices should form a polytree   bytesauna.com/post/micros... · Posted by u/mapehe
nicodjimenez · 2 days ago
My main take on microservices at this point is that you only want microservices to isolate failure modes and for independent scaling. Most IO bound logic can live in a single monolith.
9rx · 2 days ago
It is simpler than that. You only want microservices in the same cases you want services (i.e. SaaS). Meaning, when your team benefits from an independent third-party building and maintaining it. The addition of "micro" to "service" indicates that you are reaching out to a third-party that is paid by the same company instead of paying a separate company.

u/9rx

KarmaCake day1195November 25, 2024View Original