2,688 karma · joined November 2, 2021
If the argument is that it's not fast enough, JS is actually quite fast: https://mrale.ph/blog/2018-02-03-maybe-you-dont-need-rust-to...
If the argument is "we need to show a 10x boost in raw throughput" then I think we first need to have an argument about why throughput is the right metric as a target for optimization. Throughput is the critical performance measure of a batch processing architecture. IDE's, like web UIs, "feel fast" when they're responsive, which is to say when they can start giving the user access to useful output (and interaction) at the soonest moment the program could possibly be ready to do so. In web perf we might measure this as INP: time from Interaction to Next Paint.
JS won't be winning prizes for throughput, no, but if we completed the move away from a batch processing mindset to an incremental recomputation mindset, and at the same time switched to measuring responsiveness metrics like INP, suddenly the perf characteristics of JS seem a lot more helpful. It's the closest language to the DOM, so when your IDE's interface is built on web technology you'll optimize INP by keeping the data layer in JS: https://code.visualstudio.com/blogs/2018/03/23/text-buffer-r...
There's an even stronger reason than the DOM though to see JS as the "native" layer for perf: plugins. An IDE's selling point is integration, and users want to extend their IDEs by writing Javascript code. Like it or not, JS is the most natural and highly-performant native kernel language for a system of JS plugins.
If you wanted to point to their evidence you couldn't because they don't have any.
The only real choice of language to build the next generation of JS tools in is JS. Anything else is a vote of no confidence in ourselves.
It won't stop AI thieves cold, but now they'll be in violation of two kinds of law unless they do a bunch more work to rip out all the trademarked branding.
Finally, move beyond ads as your business model.
An ad blocker removes the ads from your website, and still leaves you paying to host the traffic. In a way it's worse for you than what unauthorized mirrors are doing. You're seeing that there's unmet demand for what you are offering, so my advice is: figure out how to capture that demand. Why aren't those people taking the deals you're offering them?
I took the liberty of disabling my own ad blocker to do a little research and HOLY COW THESE ARE BAD ADS.
Let's lay out the problems:
- Something is horribly mangled in the ad loading code. The ads flash in and out of existence, and cycle through at breakneck speed, ~5 seconds per ad. Between the flashing in and out and the flashing different ads, it is not possible to do serious work with this going on.
- Many of the people who don't have a photo editor on their device are using touchscreen devices. Many of those people are right handed. For them the actual photo editing tools would be largely impossible to use without accidentally clicking a giant ad which takes up the whole right side of the screen, at which point they would no longer be able to edit photos. Once this happens to you 5 times or so I imagine you start to get very angry.
- Because the ad doesn't fit into the UI at all, you're wasting huge amounts of the screen and impacting productivity proportionately.
So I guess my final advice is: if you don't respect your users, I don't know why you would expect them to respect you. Offer a better deal and more people will take it.
Basically it's a text-based language for embedding semantic metadata into some kind of underlying text stream. Is this interesting to you?
It doesn't seem outrageous to me though that there exists a category of documents more detailed and sensitive than "administrative" documents.
How can that be safe. It is theft. Theft isn't safe. Someone else just has something you want, and you take it
I think the test is right: how long can you hold onto a single project so that you specialize more and more deeply? Every startup is an attempt to do exactly this, and most startups still fail.
I think you're right that many more people are in theory capable of joining the group, but not that the industry is conspiring to keep it small. If anything it's the people who have an academic history that stretches back to childhood that end up dependent on having someone to guide and grade them. Beating your own path through the wild is scary, uncertain, and often thankless, so I think you'd only want to do it if you already felt sure you were among the most motivated and dedicated members of a group.
They're a dime a dozen, and all think they are philosophers.
They never mention the collapse of all knowledge production, funnily. They spread communist propaganda and never even stop to consider that their core message is "what's yours is mine".
I reject the idea that we should remake our society in the image of Soviet society
For users it's a set of scales that hangs in balance. On one side is the disruptiveness of the change to them, and on the other is the promise of what they will gain once on the other side.
If there's a problem with the current thinking it's that it proposes to trigger a big expensive breakage that we'll be paying for for 10 years, but there hasn't been any serious discussion of what else is broken about git that needs to be fixed to git to continue to be relevant for the next 10 years.
Most discussions are pre-constrained by the idea that ecosystem wide breakages are impossible.
In theory it's good for me if the git ecosystem splits compatibility in half with no obvious benefit. That just makes it easier for me to waltz in with a third backwards-incompatible migration path, one which actually offers eye-popping kinds of benefits in return for the cost of the breakage. That's why I'm competing with you in the race to replace Github. It's just that I'm also racing to replace git, so I assume you'll be in some amount of trouble if I should succeed.
I tried to use it to list restaurants but the UI reacted like nobody had ever tried that before
Or put another way: "You can't fool me, it's turtles all the way down!"
They have no will but to fill the world with hate and drivel
The thing is if you need to do big expensive copies on the input or output it forces you towards a batch processing model, which is the opposite of incremental computation.
Me: "No!"
Given that we've now got a three way language schism, the story for sharing data between processes isn't really solved. Data can move nicely within Go, but not between Go and Rust or JS. Tools like ts-morph also got left behind with no replacement.
I think that in retrospect the power of the JS ecosystem was all about plugins. It's plugins that make ESLint such a powerful platform that it still can't be replaced.
From the perspective of making a efficient platform for running plugins, JS actually is the most theoretically efficient implementation language! That's why, for example, VSCode put a bunch of work into moving its core state from C++ to JS, a change which brought them big perf wins and helped them beat out Atom: https://code.visualstudio.com/blogs/2018/03/23/text-buffer-r...