back to article It's heeere: Node.js 17 is out – but not for production use, says dev team

Node.js 17 is out, loaded with OpenSSL 3 and other new features, but it is not intended for use in production – and the promotion for Node.js 16 to an LTS release, expected soon, may be more important to most developers. The release cycle is based on six-monthly major versions, with only the even numbers becoming LTS (long …

  1. pavel.petrman

    Finally a true cross platform environment

    A bit like 8086, a niche thing hacked together on the side of bigger shinier things, Javascript has outlived and outperformed its original purpose by several orders of magnitude. After many rigorously architected and robustly developed cross-platform programming environments (Java, .Net, Qt..., all of which are very nice in their own right, yet tend to miss one or two crucial environments in their portability lists) the most unlikely and uniersally hated candidate takes the throne. Today, Javascript is everywhere, on every user-facing OS, on every cloud platform, available headless on every major OS. And on a PC, quite interestingly, everyone gets a live scripting environment in the form of the bworser console, where one can actually program something - we users actually didn't have that luxury since the commonplace basic environment became obsolete as cheap data media replaced the need to type programs from listings printed in magazines. Sure, there has always been some ersatz, like bash or VBScript on Windows, but compared to the portability of JS and ease of use with Node, they were no match.

    The language is different from what a common dev guy is used to (some time ago most devs were confused by the difference between prototypes and classes, and being used to the latter found the former difficult, stupid, incomprehensible) but quite powerful and very productive, once one understands how to use _not holding it wrong_.

    I, for one, am thankful to those Apple and Google guys for giving us the V8 and to Node folks for giving us the thing we needed and wanted so badly, albeit in the form of a patched up thirty year old weekend project of one guy from Netscape. History shows us that quirky yet stubborn enthusiasm tends to win over thorough planning and robust execution.

    1. m4r35n357 Bronze badge

      Re: Finally a true cross platform environment

      I think you forgot the sarcasm tag!

      1. pavel.petrman

        Re: Finally a true cross platform environment

        No, I did not, i really mean that. Of course languages, runtimes and systems are a matter of religious belief to many people, just like automotive propulsion modi, data slurping endpoint brands and so on. But to the ordinary guy who has been doing ordinary software development as a 9-5 job for the last 20 years and just wants to get the job done without clinging on the bright past long gone, the javascript ecosystem of today is the first really portable all-purpose all-in-one tool which gets the job done quickly and with acceptable reliability. It's actually very easy not to get caught in a "unpublish leftpad" affair (and other platforms got their share of sour surprises, too).

        Again, this is a pracitcal, not a religious view. Very meny people are heavily invested in hating JS since the early days of its peak hateability, I hated it too. And of course it's very easy to find a stick if you want to beat a dog, no real christian would hammer a nail with a cross, and no C++09 hard liner would ever admit they made the website for their father-in-law in PHP because that is what gets the job done and is most widely supported by hosting companies. Religion is one thing, practicality quite another thing, and practicality is where the JS world have been improving steadily and faster than others.

        1. _LC_
          Alert

          Re: Finally a true cross platform environment

          I can't stress enough how fatal your position is from a user perspective. These are, as a rule, far more in number.

          Those types of products cost endless amounts of time and nerves. It is comparable to the handyman, who provisionally repairs the burst pipe, knowing full well that "the stupid customer" will get his feet wet sometime later.

          1. Anonymous Coward
            Anonymous Coward

            Re: Finally a true cross platform environment

            Oh, gee, I was wondering whether to mention the repeated stressing over perfection of language or environment that some people love to indulge in.

            You are whinging over an Internet of thoroughly imperfect parts. Perfectionist that you are, perhaps you should turn off your connection until you have perfected world-wide communications?

            1. _LC_

              Re: Finally a true cross platform environment

              I don't have to whinge, "the Internet" does it for me:

              "Hacker Infects Node.js Package to Steal from Bitcoin Wallets"

              "Node.js was vulnerable to a novel HTTP request smuggling technique"

              "Building a Backdoor in Node.js With 50 Lines of Code - SecureCoding"

              "Node.js developers fix high-risk vulnerability that could allow remote ..."

              "Hacker places malware in popular JavaScript library - Techzine"

              ...

          2. pavel.petrman

            Re: Finally a true cross platform environment

            From my point of view users are happy about the possibility of accessing their tools from both their desktop computers and handheld touch-operated terminals. To my knowledge using my programs has enevr been fatal for a user (and given I usually do authenticated systems, I guess I'd know should that happen). The fact that majority of devs can't use their tools properly (regardless of whether it's C, JS or Cobol On Wheelchair TM) doesn't make the tool bad. It only gives you thumbs-down in certain fora.

    2. pip25

      Re: Finally a true cross platform environment

      I'm happy you find the current JS ecosystem to your liking. I wish I could say the same.

      My problem with Node.JS is basically the same as it is with Javascript in general: it simply does not seem to scale well, both in terms of complexity and time. I find that even a Typescript codebase reaches the point where it becomes a chore to even understand what is going on much faster than with other languages. As for time, the library landscape for JS changes so often that maintaining anything beyond a year or two can quickly become a nightmare. You'd think at least the server side would be exempt from that, but each Node.JS upgrade we had to push through seemed just as hazardous as, say, an Angular upgrade - stuff WILL break where you'd least expect it.

      Oh, and "true cross-platform development"? Sounds nice, until you realize that your dependencies are actually full of stuff written in C and/or Python. There is a reason why Javascript projects build so insanely slowly, especially during the first run.

      1. pavel.petrman

        Re: Finally a true cross platform environment

        As I said elsewhere, bad usage is usually problem on the side of the developer, not the tool. I never said it's perfect for everything or that it scales well. I only said that it's the first really portable user-facing language. Today event the simplest system is an amalgamate of various languages and tools. What you said about dependencies goes for _every_ language/ecosystem in general use, event ANSI C (I'm yet to encounter a UI program portable between *nixes, Windows, iOs, Android and those cheap African feature phones with opera mini on them. If you have one, show me and I'll buy you many beers).

        As for the longevity: SPA Web app I started writing about 10 years ago, in those deadly IE8 times, still runds today and performs well, and that without major redesigns. That people let blackmail themselves into using Angular (or others like Sencha about 8 years ago) is not a problem of JS. Show me a 10 years old desktop program written in C++ or using WinForms on an Iphone or a Chromebook. Show me an Android APK running headless in cloud. Of yourse you can get a Qt into the appstore, technically. Have your tried? And how much did you need to pay for the commercial-only tools that make this option at least a half decent one?

        As I wrote above, I get the religious hatred against JS, it's very natural. But no one here mentioned one viable alternative to JS.

        1. _LC_

          Re: Finally a true cross platform environment

          It's not just JavaScript. Node.js represents another step up (or rather: down).

        2. pip25

          Re: Finally a true cross platform environment

          You misunderstood my point. I also did not claim that JS is utterly useless in every single scenario. Its lack of scaling simply means it's not the best choice for enterprise projects - where unfortunately most software development takes place. It's great that your SPA still works as required - but if you had to create that webapp with five other devs and with thrice the scope, you might not be so optimistic today. People don't use Angular (or React, etc.) because they're masochistic (okay, so there are some people who change frameworks every two weeks, but those are a lost cause regardless of the JS ecosystem's merits or problems). They use such frameworks to abstract away some of the complexity inherent to JS webapp development, at least for big enough projects. It's exactly JS's issues with scaling that brought these things into existence.

          For the record, my 10+-year-old Java webapp, which I did write with a team of fellow devs, still works fine today as well. It uses server-side rendering (gasp) and only a bare minimum of JS, which made it "outdated" by company standards, forcing us to create an alternate JS SPA UI for the same API. Unfortunately that one keeps breaking and has since become likewise outdated due to its reliance on now end-of-life libraries. Go figure.

          (Oh, and my Java webapp has zero native dependencies aside from the JVM. None.)

          In general, I think we agree: you need the right tool for the right job. I simply say that for most jobs, JS does not work nearly as well as its adherents claim.

          (EDIT: Sorry, almost forgot. Alternatives. In the backend, I still stick with JVM languages. In the browser, there are no real alternatives to JS, which is one of the reasons why it's so ubiquitous. I do hope Webassembly will become one soon.)

  2. _LC_
    Headmaster

    Jenga

    Build your stuff on top of a Jenga tower. What can possibly go wrong?

    1. Arthur the cat Silver badge
  3. Dan 55 Silver badge

    Samual Johnson quote

    "Sir, JavaScript on the server is like a dog walking on its hind legs. It is not done well; but you are surprised to find it done at all."

  4. captain veg Silver badge

    necessity

    > the necessity of build processes using the likes of WebPack?

    Not in the slightest bit necessary.

    If you're writing a vertical app that happens to be delivered over HTTP then client-side caching makes minification pointless. If you're making a web site for public consumption then either (a) you have frequently recurring visitors, in which case client-side caching makes minification pointless, or (b) you make casual visitors download entirely useless bloat.

    I have to say that, in testing, I've never noticed minification making the slightest bit of difference to responsiveness. Maybe that's because I don't load up on worthless cruft.

    -A.

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