2,742 karma · joined November 2, 2021
Here's my thing: Oracle v Google was a fight that ended up being about two specific things, one was whether API-declaring interface code could be a subject of copyright law. Once it was found that interfaces could be copyrighted the lawsuit turned its focus to thing two: whether Google's use was fair use.
The part of copyright law, as written, that protects your ability to copy a 9-line RangeCheck function, is NOT, emphatically NOT fair use. It is convergence, the least-known of all the copyright principles.
Convergence says that if many people not coordinating could be expected to all land on the same results, then logically the activity must not be creative expression and the result must not be possible to copyright. This is why nobody owns math equations like e=mc^2. It's not that no creativity was required to derive the equation, it's that anyone working at it would end up with a result of that form.
In programming this would protect you when you do something like write a parser for a programming language, or implement a common helper function. Anything where you may, through now fault of your own, do work that creates a result similar to work that someone else has already done.
I don't know that any significant court case has ever even had arguments based on convergence even though it's the most practical shield most of us have most of the time.
Many OSS projects are now run by people who see themselves as owning a farm of AI slaves.
They're more than happy to tell you they don't see themselves as owning the code. They aren't professional coders. They don't want to be.
I wouldn't be arguing about this except that I can't trust my clock app on my phone because some bozo keeps redesigning it to work a different way every 6 months
So if it's for an employer it's rational but if you're making the same choice for yourself it isn't? If one of those is baby duck syndrome they all are.
Basically if you want your project to survive and thrive you're going to have to implement a new programming language that runs using the semantics that Typescript claims to have rather than the semantics it actually has because it's Javascript under the hood.
I mean, if you want to despair, just try to account for the potential behavior Javascript Proxies could introduce in your Lean proofs.
If you do it correctly, Lean should tell you that virtually every Javascript program that has ever been written is possibly wrong, mostly for reasons that have to do with the lies Typescript tells about Javascript
You can of course slap a formal solver in without knowing that, which is evidently what this person did
All that's really happening is that they're borrowing from a source of debt that's completely off the books: software quality debt.
That is the steel wall they are set up slam into at 100mph. Just because tech debt isn't on the books doesn't mean it isn't a force that can halt growth.
It'd be like if we passed 1 million new laws to regulate commerce. That's good for business right? The only thing better would be ten million new regulations
I would like to see official support for `Symbol.streamIterator` and for the `for await?(item of iter)` syntax which would transpile to code like you see here (or all the way down to regenerator state machines if needed).
If that was true it would of course be significant.
If you had no morals, 2 trillion dollars to spend, ability to commit intellectual property theft without consequences, and most of the smartest people in the world actively working to advance your cause... ...you really think you couldn't compete with the clankers?
To me it's not the human in the loop that's weak, it's programming tools that fail to create and utilize bandwidth in the human/computer interaction cycle. Look at how much raw UX bandwidth people can show off when they're pushed to the limits! https://www.youtube.com/watch?v=Ki9EeaF4MLI
I just think the people selling the idea that AI will outstrip people's abilities to express themselves haven't actually considered what the practical constrictions on self-expression are and whether or not the limits we experience in practice are really the limits of human expressive capability.
If we're at the limits of expressive capability, the only improvements will come from replacing humans. If not, we may be able to win quite a lot of ground back just by building better instruments. ...that's why I'm working on replacing git
Like writing! Everyone knows that after the printing press, nobody needed to know how to read or write anymore
This hurts most badly for iterators.
Files are usually read from disks in chunks of 64K bytes. If you present the data as an async byte iterator you'll get 65,534 defensive deferrals, and one actual wait.
If you have ten layers of transformation it will be 655,350 defensive deferrals and 10 real waits.
These defensive deferrals aren't so expensive in terms of CPU time, but they ARE very expensive in terms of wall clock time. All other work must be halted so the event loop code can run. Eventually synthetic deferrals dominate the wall clock cost of running the program. This isn't hypothetical either. Here's someone trying to build steam parsing on Node and finding that it's too slow to be useful: https://github.com/nodejs/node/issues/31979
The solution is stream iterators. They are sync when they can be and async when they must be: https://docs.bablr.org/architecture/spacetime
Without the ability to own the things I build I never would have been motivated to build them, and without a career ladder I couldn't have worked my way up until I had the funds (and experience) needed to start my own venture.
Now the story is that the police came and protected an innocent robot by chaining up an old woman. That sure makes them seem like misanthropes.
Yeah I see this too. That we're not innovating any more also doesn't help make our industry look good