sephware 7 years ago

This is an excellent hindsight-2020 project, and the concept is overall an improvement on Node, but I'm afraid the ship has sailed and Node's momentum is too high to stop. Not that mainstream usage was ever its goal, it was basically a proof of concept for Ryan Dahl to demonstrate how he would do things differently if he could start over, and that yes, it would be demonstrably better than Node. On one hand I wish TypeScript got more love, but on the other hand its inherent unsoundness kind of makes me want something like ReasonML[1] to win out in the long term instead.

[1] https://reasonml.github.io/

  • jeremychone 7 years ago

    TypeScript is a structural typing model vs nominal one, such as Java, which we are more used to. Not that one is more sound than the other, just different approaches.

    I actually like the structural system a lot, and found that combined typescript expressiveness, typing a code base with TS is much more intent driven and requires much less contortionism that a class-for-everything nominal system such as Java. In fact, we ported one of our java backend to node/TS, 40% less code, and as typed if not more. Also, there are simple ways to bring some of the nominal characteristics when needed, but in a language like JS where object literal is a intrasic part of the language, a structural typing system is great fit.

    So, yes, their are different approach, but not sure soundness is a good description of those differences.

    Now, if TypeScript is used to code JavaScript ”a la” Java, then yes, it could be seen as a loss of functionality.

kcorbitt 7 years ago
    import { test } from "https://unpkg.com/deno_testing@0.0.5/testing.ts"

Won't this get old really quickly? Most of my Javascript files start with 3-4 imports of the form `import React from "react"`, `import { sortBy } from "lodash"`. Having to type out the full path/version for those imports feels like a step backwards in usability, and makes it more likely that I'll end up with mismatched versions of dependencies.

  • n_ary 7 years ago

    Not a problem if the version part is excluded. Golang uses similar imports(think all the github.com/user/package) and seems fine.

    But this could lead to a mess, as different files may end up using different version of same package.

nailer 7 years ago

> Aims to support top-level await.

As a node developer: yum.

  • andrewstuart 7 years ago

    top level await is not important.

    The easiest solution to this is just put one single line of code at the top of your application, then you can have as many awaits as you like under that.

    • nailer 7 years ago

      It's more complex than just adding an IIFE, which is why Ryan mentioned it. You can't await an import, for example.

Scarbutt 7 years ago

Why not a secure runtime on Golang instead? just curious since I saw in another article here today that the author of Deno(also the creator of nodejs) prefers Go for server stuff.

Leveraging JS popularity is one reason I can think of.