8 ms·
Meanwhile, Deno (alternative server-side JS built from scratch by the creator of Node) keeps chugging along: https://github.com/denoland/deno https://github.co
by apo 8y ago
Meanwhile, Deno (alternative server-side JS built from scratch by the creator of Node) keeps chugging along:
https://github.com/denoland/deno https://github.com/denoland/deno
It will be interesting to see which happens first: developers migrate to Deno or Node finalizes its ES module implementation.
I think both groups are doing excellent work, but the Node team seems to be at a disadvantage having to continue support for some decisions made early on in Node:
https://www.youtube.com/watch?v=M3BM9TB-8yA&vl=en https://www.youtube.com/watch?v=M3BM9TB-8yA&vl=en
- tobr 8y agoThanks for reminding me about Deno. It really feels like some of Node’s homegrown solutions to things like modules and async is starting to become a burden. > It will be interesting to see which happens first: developers migrate to Deno or Node finalizes its ES module implementation. I guess that depends on what you mean with "happens". Only one of them has a clear point where they're done happening.
- sickcodebruh 8y agoThis is my first time seeing it but so much of it looks great. I don’t think I’m a fan with how it handles dependencies, though. It feels like they’ve just reinvented GOPATH. “Deno caches remote imports in a special directory specified by the $DENO_DIR environmental variable. It default to $HOME/.deno if $DENO_DIR is not specified. ... Production software should always bundle its dependencies. In Deno this is done by checking the $DENO_DIR into your source control system, and specifying that path as the $DENO_DIR environmental variable at runtime.“ https://github.com/denoland/deno/blob/master/Docs.md https://github.com/denoland/deno/blob/master/Docs.md The suggestion to import and reexport dependencies in a central `package.ts` file sounds absurd to me. Clearly, I’m not a user and am just now reading this for the first time. Has there been discussion about this in the community? Are there plans to correct it? Go has been digging out of this hole for years, I can’t imagine why they’d start in the same place.
- bartlomieju 8y agoDisclaimer: I contribute to Deno. Contrary to Go, when using Deno you don't need to invoke any command to install a package. You just put your import statement with full URL (you can pin version there, eg. https://unpkg.com/liltest@0.0.5/dist/liltest.js https://unpkg.com/liltest@0.0.5/dist/liltest.js) and Deno downloads it on first run and caches for later use. Changing $DENO_DIR is somehow equivalent to changing node_modules location. This eliminates need for package manager.
- mmmeff 8y agoI feel that the Deno project's goals to get away from NPM/centralized registries is causing developer experience pains that it feels like you're trying to sweep under the rug. Maybe it's time to take a look at building a replacement package manager. The convenience of having a single package manager that handles name resolution, versioning, governance, and security is why NPM is as prolific as it is today. That being said, the reason NPM even received any traction from the start was because Isaacs bundled it with the Node distribution. In my opinion, this is the clear chance for Deno to provide its own, better package manager, built on top of IPFS/Dat or some similarly decentralized protocol, and correcting the many mistakes that have been openly accepted by Isaacs and others in the lineage of Node/NPM.
- bartlomieju 8y agoI don't have knowledge about early NPM stages, but from my perspective the goal right now is to get rid of need for package manager.
- Touche 8y agoDoes Deno support native ES modules or does it implement a require() shim and rely on TypeScript transpilation?
- bartlomieju 8y agoPR for this is here: https://github.com/denoland/deno/issues/975 https://github.com/denoland/deno/issues/975 It's expected that this should land in next month.
- k__ 8y agoHehe, I want a Deno Lambda runtime :D
- nrb 8y agoYou can do this now with Lambda Layers and the Lambda Runtime API, right? https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-programming-language-and-share-common-components/ https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-...
- k__ 8y ago"The runtime bootstrap uses a simple HTTP based interface to get the event payload for a new invocation and return back the response from the function." Interesting. I had the impression it would take more to get your language of choice up and running.
- settler4 8y ago> import { test } from "https://unpkg.com/deno_testing@0.0.5/testing.ts"; https://unpkg.com/deno_testing@0.0.5/testing.ts"; This feels both very pragmatic and frightening at the same time.
- Ataraxy 8y agoI'm not an "expert" but that feels just as insane as the npm argument people make. I'd love to hear from someone more in the know as to why they aren't the same.
- mmmeff 8y agoThey really aren't if you think about it. Going straight to a URL for a version of a dependency is the same as pulling it from a registry, except it's decentralized from a single source (NPM) and removes the extra hops in between the package vendor and the package consumer. On the flip side, that extra hop adds a ton of convenience in the form of name-resolution, security and governance. It's the age old double-edged sword of centralization.
- oscargrouch 8y agoMaybe if you turn that url into a hash, than just use the hash to check if the package has a local copy already, it wont be so bad. But you will need to add the package version in the URL so that you know you will always have the package you really want in your local cache.
- gcb0 8y agobecause npm's is implicitly in the build pipeline. You won't run 'npm install' on production! you run that on development/certification and then push the validated image to production. With deno, there is no distinction anymore, kinda of. You still can send to production images that have the deno cache. Only thing that changes is the default. Previously you would have to explicitly run 'npm install' on the production host, failing that the code fails. With deno you still can choose to push to production an image without the caches (same as 'npm install' in prod), but now the default is that untested code in QA will auto install without hash check! in summary: absolutely no practical change (i.e. no new feature impossible before) other than production defaulting to installing remote dependencies of proven-not-tested functions.
- rhlsthrm 8y agoBeing a daily TS/Node dev for a while now, I'm super excited about Deno. Any idea of when it will be production ready?
- bartlomieju 8y agoDisclaimer: I contribute to Deno. IMHO it will take 1-2 months before someone deploys simple production services. We're already working on standard library, which you can see here: https://github.com/denoland/deno_std https://github.com/denoland/deno_std
- rhlsthrm 8y agoAwesome, how has the experience been on the project? I'd love to get involved as well, are there any contribution guidelines or starting points?
- bartlomieju 8y agoExperience has been awesome. This tech is really challenging for me, but at the same time amount of knowledge I gain is huge. Deno community hangs around on gitter, here: https://gitter.im/denolife/Lobby https://gitter.im/denolife/Lobby Question about contributions has been raised on gitter several times already and the answer was to look for "good first issue" labels in GitHub repo. However there are not many of them right now.
- pvorb 8y agoLet's throw everything out of the window and start from scratch. The JavaScript way of doing things is why I don't like to invest much in this ecosystem.