back to article Node.js creator delivers Deno 1.0, a new runtime that fixes 'design mistakes in Node'

Ryan Dahl, Bert Belder and Bartek Iwańczuk have slid open the doors to Deno 1.0, the first production release of a new runtime for running TypeScript and JavaScript outside a web browser. Dahl was the original creator of Node, which was focused on event-driven HTTP servers. Deno is not a fork of node but a new runtime. “Due to …

  1. Anonymous Coward
    Anonymous Coward

    Interesting

    And certainly worth a try: I tend to trust people who engage in self-criticism and are capable of learning from past mistakes.

    1. Anonymous Coward
      Anonymous Coward

      Re: Interesting

      The linked Youtube video is worth a watch, btw.

    2. teknopaul Silver badge

      Re: Interesting

      Agreed and its not like nodejs was a flop.

      Funny architecture this tho. Node + libuv + v8 components fit nicely.

      This has a threaded locking runtime in its guts. Rust guarantees threadsaftey with single writer, but in the real world that means copying a lot or Atomic Ref Counting and locks. Rust's guarantees dont integrate with other languages since its all done it the compiler.

      V8 and js are not able to use multiple threads or locks at all afaik. Seems like this will do a lot more copying.

      Thus at a time when io_ring becomes available. Seems to me io_ring only makes sense if you dont copy. This thing might be obsolete already if it has to copy to perform io.

  2. Anonymous Coward
    Anonymous Coward

    Wonder how long it will take…

    …for the horde of "bah! that is Javascript, it's crap, etc. etc." posers to arrive.

    Yes, it is Javascript. It is an interface to the V8 engine. At least from experience with Node, it runs fine and has a place in the toolbox of every professional developer.

    And I say this as an old bastard who cut his teeth on Lisp and C before C++ was even a thing. Each language has its weak and strong points and is more or less suited to particular sets of problems.

    The V8 engine runs on billions of computers day in and day out and offers many of the same advantages in terms of speed and resources on the server as well as on the client.

    1. Jamie Jones Silver badge

      Re: Wonder how long it will take…

      If someone want to write their server-side code in javascript, then fine. It may or may not be the best choice, but if that's what they are familar with, and the hardwate can handle it, it's the quality of the end product that counts.

      What I (and I think most) people are complaining about it the whole culture of importing loads of untrusted third party modules - and pulling them live from the host server, ending up in a situation where your live code is dependent on multiple third parties having reliable server infrastructure, being trustworthy, being competent in their code security, and their source repository security.

      1. DemeterLast

        Re: Wonder how long it will take…

        Or just being competent.

        The nice thing about using stuff built in C is that the bar is set that much higher and therefore attracts a certain level of programmer. JS was designed to be, and is, very easy for beginners to get something complex going. The Node ecosystem is a redundant array of individually dumb programmers that manages to work in the same way termites can build a mound despite having no brain to speak of. It's actually pretty impressive what gets built on Node, but I wouldn't want to depend on it. As evidenced by its inventor already building the Next Big Thing.

        Developing via ADHD is a bad idea.

        1. pmb00cs

          Re: Wonder how long it will take…

          You still get crap written in C. The idea that a steep learning curve automatically filters out idiots is not supported by the evidence.

          Yes it is easier to learn JavaScript, and so lots of idiots learnt it, and then wrote terrible JavaScript. But When people gave up on C because it was too hard to learn not all of them were idiots, and not everyone who persevered were not idiots. So fewer idiots learnt C, but so did fewer people who are competent. There's less crap written in C because there's less written in C, relative to it's age anyway. C has the advantage of age, but crap doesn't age well. Old C that's still around makes C look better not because it is, but because time has filtered out the crap.

          It's like furniture, you see 100+ year old chairs and say "They don't make chairs like that any more, modern chairs are crap" and mostly modern chairs are crap, but mostly 100+ years ago chairs were crap too, but the crap didn't survive 100+ years to be held up as an example.

          1. DemeterLast

            Re: Wonder how long it will take…

            That's a pretty good argument to stick with the older, tested things and not pivot to new things simply because they're new.

            Node solved a certain class of problem, and in doing so introduced whole new classes of problems. So much so that Node's inventor said, "let's start over." I'm not sure that's a great plan.

            1. pmb00cs

              Re: Wonder how long it will take…

              The software written now, regardless of language used, is not old and tested. All programming languages have their merits, and their flaws.

              A skilled artisan with a chisel can make a great chair, where an idiot with a power saw can make one that's crap. That doesn't mean the power saw is crap, or that the chisel is great.

          2. Smartypantz

            Re: Wonder how long it will take…

            C is simple and easy, Strongest tool in the hands of idiots, geniuses or devils. "higher" languages are instruments of power-wielding. With these you are not programming the computer, you er the serf of a framework provider ... (C#, MS, Java, Oracle, javascript, Google (yeah, node fucking hipsters) and so on)

          3. Rich 2 Silver badge

            Re: Wonder how long it will take…

            Firstly C does not have a steep learning curve. It’s really very simple and logical and if someone in the software field doesn’t get it then that probably tells you all you need to know about their abilities and education.

            As for there being less stuff written in C, I think that is, quite frankly, bollocks. There is a gargantuan amount written in C. You just don’t know about it and you don’t see it. But it’s there.

            And yes, there is a lot of crap C out there. But saying something (eg JavaScript) isn’t crap because there’s a lot of other (eg C) crap is no argument and never has been.

            But JavaScript really is shite. It was shite when it crept out of the swamp and itt’s still shite. It has absolutely no redeeming features. It should have been strangled way back.

            1. pmb00cs

              Re: Wonder how long it will take…

              Firstly, C does have a steeper learning curve than JavaScript, it's a lower level language and so you need a better understanding of how a computer functions in order to make use of it. Also I was replying to a point about how that steeper learning curve specifically reduced the dross written in C.

              The only reason there is more written in C is entirely down to the age of the language. It's been around longer than I have.

              I'm not saying either C or JavaScript are or are not crap. I'm saying that the comparison based on the steepness of the learning curve is an unhelpful one, and has no real merit.

              There are lots of people who would argue the merits of JavaScript, personally I'd suggest that crap or not it's here to stay, and getting grumpy with that fact isn't going to change anything. I don't particularly like JavaScript, but that doesn't mean it can not be used by skilled people to make useful software.

              1. Anonymous Coward
                Anonymous Coward

                Re: Wonder how long it will take…

                Apologies about the ↓ vote, finger error.

            2. Anonymous Coward
              Anonymous Coward

              Re: Wonder how long it will take…

              > But JavaScript really is shite

              I do disagree with that last bit. It does certainly have many quirks and a lot of baggage from the original spec and the circumstances under which it was developed. Personally, I would have been *much* happier if Netscape had stuck to the original plan of using Lisp as an embedded language (but I am biased, since I was already fluent in a couple of Lisp dialects at the time).

              But in spite of that, I find that it's like Ethernet: it works better in practice than in theory. I also actually enjoy some of its quirks as you can have quite a bit of fun abusing them (yes, that makes the code less maintainable / less accessible by underqualified developers).

              I mainly use it where you need lightweight asynchronous processing and for data analysis and visualisation (I used to go with R a lot more for this but there are some quite nice tools in Javascript these days too).

        2. Drew Scriver Bronze badge

          Re: Wonder how long it will take…

          Is ADHD a alternative spelling of Agile? ;-)

      2. overunder Silver badge

        Re: Wonder how long it will take…

        "What I (and I think most) people are complaining about it the whole culture of importing loads of untrusted third party modules"

        Absolutely. It eventually becomes not trusting CDN in general. While they call it NPM, it"s really CDN where the 'C' now stands for "Code". It's 1 thing to not have a DB present/online for queries, but it's a whole other thing not to have the code for the DB itself online.

        if (Node) { string } else (not_node) { string } summarizes my utmost, apex global view on how to utilize Node as a tool. Great to have, but it's not in charge of anything.

    2. ST Silver badge
      Devil

      Re: Wonder how long it will take…

      > Each language has its weak and strong points and is more or less suited to particular sets of problems.

      The problem that Javascript is particularly well-suited for is "my runtime is much too secure. I'd like to swiss-cheese it, please."

  3. Jamie Jones Silver badge

    "Deno (if you shuffle the letters about you get something familiar),"

    Done!

    1. Graham Dawson Silver badge
  4. Anonymous Coward
    Anonymous Coward

    The broad strokes of this look solid.

    I think part of the allure of Node was to enable the front end teams to leverage the skills they had to rapidly implement solutions w/o resorting to teams and technologies outside their wheelhouse.

    The real beauty here is that they backed off and looked at what the project should provide as a platform, and then built the platform using the tools that made sense(aka Rust, instead of all Javascript, all the time). So a core tools team using the tools that make sense for them, provides the html and javascript developers the ability to implement both front and back ends without splitting the code bases and teams up, but still leverages the security, stability and maintainability of Rust.

    I'm in.

    1. Jamie Jones Silver badge
      Happy

      Re: The broad strokes of this look solid.

      I think part of the allure of Node was to enable the front end teams to leverage the skills they had to rapidly implement solutions w/o resorting to teams and technologies outside their wheelhouse.
      House!

  5. boltar Silver badge

    One look at that Deno architecture slide

    ...and I want to weep. What a convoluted joke, If you want to do server side programming use a proper server side language, eg C++ or just use Rust directly. Not this dogs dinner web language dragged kicking and screaming into the grown up dev world that it's just not suited for.

    1. overunder Silver badge

      Re: One look at that Deno architecture slide

      Bob: I'll help you, which server language are you using?

      Jim: C++

      That only makes sense in one happy & productive place, Microsoft's IIS dev team.

      RUST is kind of odd to suggest for either system or server. While I consider it a system'ish language, I'm not sure if anyone is using it to replace their network or storage drivers or the interfaces to them. For what _I_ consider a server language (ie. Perl), I see its purpose but not for the server language itself but, for supporting modules in decoding, authentication, gaming, etc.

      1. boltar Silver badge

        Re: One look at that Deno architecture slide

        "That only makes sense in one happy & productive place, Microsoft's IIS dev team"

        Seriously? Most unix server side is written either in C/C++ or Java.

        "For what _I_ consider a server language (ie. Perl),"

        Pull the other one, thats a scripting language, you don't write full blown bet-the-company applications in it. Plus its not the year 2000 anymore, the world has moved on to Python for scripting, Perl is pretty much legacy these days and thank god for that.

        "but not for the server language itself but, for supporting modules in decoding, authentication, gaming, etc."

        Which are almost certainly written in C/C++. So you might just as well write the whole thing in C++ and be done with it.

        1. overunder Silver badge

          Re: One look at that Deno architecture slide

          Wait, so is the context you're thinking of is what the server is written in, or how you communicate with it? When I see "server language", I see "talking to the server". I can't say I've been worried about having access to a compiler to talk to a server.

          I also don't know of any UNIX server programs that are written in C++ besides Node/Deno. In fact, using your terminology of "server language", Deno is written in C++ and Rust, so I'm not sure what you're arguing about to begin with.

          Yes I'm older, clearly.

          1. boltar Silver badge

            Re: One look at that Deno architecture slide

            "When I see "server language", I see "talking to the server"."

            Wtf are you babbling about? A server side programming language is one you write backend programs or daemons in that don't generally require a GUI or any web interface. What did you think I meant in a discussion about programming languages, French?

            "I also don't know of any UNIX server programs that are written in C++ besides Node/Deno."

            You mean apart from most RDBMS's, mail servers and various modern daemon processes? And the ones that arn't written in C++ are written in C. You know, trivial things like init or systemd.

            1. overunder Silver badge

              Re: One look at that Deno architecture slide

              No I understand, you don't have to get excited.

        2. hairy_tuttle

          Re: One look at that Deno architecture slide

          > Pull the other one, that's a scripting language, you don't write full blown bet-the-company applications in it.

          Meh, same old argument. Over the last 25 years I have written and still write mission-critical applications like backends for large ISPs or trading plattforms completely in perl. Aside from my first project all of them all still running, not for the lack of alternatives but because they are robust, easy to maintain and perform well.

          > Perl is pretty much legacy these days and thank god for that.

          Nope, the reports about the death of perl have been greatly exaggerated. As for all the perl bashing, bad code can be created in any language. It will be well indented when it was written in python, I'll give you that.

        3. Anonymous Coward
          Anonymous Coward

          Re: One look at that Deno architecture slide

          Dear boltar, would I be wrong in surmising that you have no actual formal qualifications in software development¹ (let alone computer science)? Nothing wrong with that, but it's good to know where the boundaries of one's area of expertise lie.

          ¹ That is at least what I infer from the exiguity of your arguments and the bafflingly idiosyncratic concepts that you bandy in these posts of yours.

  6. ST Silver badge
    WTF?

    Why would anyone care ...

    ... that Deno 1.0 is Node.js re-written in Rust?

  7. big_D Silver badge
    Facepalm

    It's bad enough...

    running JavaScript inside the browser, why would you want to run it outside?

  8. Elledan
    Trollface

    JavaScript: a single-threaded prototype-based language that only supports ASCII strings and IEEE-754 32-bit floats as types.

    TypeScript: JavaScript, with the prototype part (optionally) replaced with (some) typing.

    Rust: like C++11, but with OOP and strong typing removed. Loved by folk who thought Brainf*ck was too easy to read.

    C++: running the show along with C.

    1. Androgynous Cupboard Silver badge

      Er, not sure where that came from. ECMAscript has Unicode baked into it's strings, and as I recall it's number types are 64-bit.

    2. captain veg

      JavaScript strings were (and are) Unicode with the meaning that had at the time it was created, more or less what we call UTF-16 now. Numeric values are 64-bit floats, except for when subject to bitwise operations when they are temporarily converted to unsigned 32-bit integers. Other types include undefined, null, boolean, Object and regular expressions. Date and Array are built-in derivatives of Object, as are boxed Boolean, Number and String.

      TypeScript brings (optional) compile-time type checking, which JavaScript doesn't have because it is not compiled. It still relies on prototypical inheritance.

      Almost all criticism of JavaScript is born of ignorance as to what it actually is, not helped by the fact that the language syntax goes out of its way to pretend that it is something else. That's a valid criticism, by the way.

      -A.

      1. Anonymous Coward
        Anonymous Coward

        > not helped by the fact that the language syntax goes out of its way to pretend that it is something else

        Indeed. I read somewhere that the boss (whoever it was at the time) said something along the lines "it must look like Java" (which was all the rage back then), hence also the name, btw.

        But: V8 is a very efficient way of running certain types of loads. That the language it uses is Javascript is somewhat incidental.

    3. deive

      "Rust: like C++11, but with OOP and strong typing removed" - err... the main point of rust is is is much more strongly typed than C++, borrowing wouldn't work without that.

      If you like C and C++, then good for you - but don't pretend they don't have problems.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2020