54 karma · joined September 13, 2020
People sleep on how good the Deno test runner is, but I can't for the life of me stress enough how many times the resource leak feature has saved my ass (developer of x/postgres)
If you wanna take it a step further, you can always opt in to that lock file with various degrees of strictness as you yourself mentioned
However if the argument is: updating libraries break stuff, that is gonna happen every time in every language. There is no guarantee the next version will just work as the last one did
And they absolutely use TS for the std library, just not in the runtime itself
The current multi threaded and module isolated model however I think it's good for the great majority of projects, so I'm glad it's built in
If I have learned anything from working long time with NPM is you can't trust a single command with updating your dependencies and you can't trust developers to respect semver on the long run.
I can't stress how many times I had to review and undo automated dependency bumps because my app suddenly stopped working, and the times I was forced to I had to bump said dependencies in the lock file myself
In a compiled language, where code is compiled once and valid there 'til the end of times this is not even a problem. In an interpreted language where all code is evaluated every time you run your program, this makes automated dependency management an impossible task
export * as Oak from "https://deno.land/x/oak/mod.ts";
export * as Postgres from "https://deno.land/x/postgres/mod.ts";
Then you do this: import { Oak, Postgres } from "./deps.ts";You only really "switch" to a new tool if that's what you like the most, not because that's what people like now.
Problem is that a lot of software was built upon areas where Node deviates from this standard (things like module system, language features, async management, etc) so there can't be a 1:1 translation in some cases
So what's the benefit?
Same can be said about any language really, it's personal preference