The goals of Deno and Node are different, the architecture is different.
Adding a compatibility layer helps Deno grow while maintaining its original goals.
I doubt this adds much complexity if done properly...
The goals of Deno and Node are different, the architecture is different.
Adding a compatibility layer helps Deno grow while maintaining its original goals.
I doubt this adds much complexity if done properly...
And here we are.
What's wrong with a compatibility layer with npm if it's implemented properly?
His views on package.json and implementing a compatibility layer to help others transition from node are not mutually exclusive.
The support for node is pretty simple. Using NPM packages is straight forward. Reading a package.json file and using those mappings isn't complex either. Deno does not use node_modules in any of those instances...
This is why Deno has gone so long without a true package manager. The problem here is now they're fighting for adoption so they're going against their original values because they know what they wanted isn't what the broader community wants.
Can you elaborate?
> so they're going against their original values because they know what they wanted isn't what the broader community wants.
No, they are still sticking to everything, but added support for the existing ecosystem. Yes they are adding this to combat the network effect that node has, but it doesn't really go against anything. You simply prefix npm in front of npm imports. Now you could use a package.json file if you already have one, but you don't have to.
The fact that all this interoperates with NPM as well is just an added bonus. But even if NPM died tomorrow, deno would go on having a package system, because they have realized how important it actually is (to fix things like what they call the "duplicate dependency problem").
But the package.json format part is a backwards compatibility feature. The preferred import maps will be the ideal solution (if you do need dependency management).
None of that really goes against direct imports, which work well for single file scripts, workers, etc. Choose what fits.
It states many times it was added for backwards compatibility.
Even at the bottom of TFA they annotate the ideal solution (which will be implemented soon) is to use import maps instead of package.json, the same format the browser uses, which is in line with Deno's main goals.
Fast forward a few years, and they are now adding these two things natively to deno, just as the web ecosystem did. Turns out, Node was right to have modules and an import file all along, and at worst there were some minor implementation quibbles to argue about.
I'm glad I can use direct url imports in simple Deno scripts.
I also see the need for import maps for larger projects.
I do think node_modules is an abomination and glad I don't have to deal with them anymore.
I prefer writing everything that works in Deno and the browser, not Node specific APIs.
I like the tech, I don't really care about the drama, and I doubt the Ryan does either lol.
I disagree with how you summed it up, but I don't really care to continue.
It's getting too dramatic and not really about the tech at this point.
The forum had taken off while I was MIA. In spite of me being MIA. And while I could write a manifesto about how the forum had gone in a direction I didn't necessarily want, I had to admit that my plans for the forum weren't better nor more correct than the plans that emerged organically from the community over the years.
When you create something with a community and ecosystem, it's easy to see the success of the ecosystem and the downstream success of the people within it as your success when in reality you are more like an early collaborator who set the stage for others to join in and take it from there.
A good example of this in my case was the hubris that, because I created that one big forum, I could create more successful forums. I never hit gold again. I realized I wasn't some master forum creator, just someone who started something at the right time and the right place with just enough TLC to attract other builders, and that I didn't have some divine insight into how to start a successful forum. Oof.
His product is currently out there, popular, and already infinitely better than node (imo).
I'm sorry you never "hit gold again", but you seem jaded and projecting that onto others.
Who cares if it never fully overtakes node? It's a great alternative. Competition is good.
I'd consider Deno a success already, it growing in popularity is always nice, but the tech already works.
I'd say the people who gave them $21M[0] care if it's adoption doesn't take off.
Should no other browser be invested in because Chrome has the largest market share?
Should no-one ever invest in a competing product?
I believe it is up to his investors what the expected growth rate and market share is.
The blog post explains in detail why these things are actually required and useful, and introduces the new deno.js file that is functionally equivalent to package.json. So even purely deno packages meant to be used entirely in the deno ecosystem are encouraged to use the new package.json 2.0, for many of the same reasons package.json was introduced in Node all those years ago.