It's even worse than it appears.
Saturday May 23, 2020; 12:56 PM EDT
  • This is a technical post. #
  • The three words in the title of the post are noun, verb and subject. #
  • Let's go through them one by one.#
    • Node is a popular developer platform with set of common libraries called packages. It's based on JavaScript which is a very popular language. And its power comes from the very deep set of freely usable code you can build on. That part is the reason why I switched to JavaScript in 2013. I wanted to tap into the work of all the other developers using Node. That it was JavaScript was incidental, and honestly the Node platform had nothing to do with it, because at the time I switched I had little idea what it was.#
    • deprecates is a word that platform vendors use when they are going to break the implicit promise that the platform you're developing on is stable. The word platform implies stability. The fact that platform vendors can do this is one main reason we like to work with open source software, because if we don't agree with what they're doing, we don't have to go with them, which hopefully means they'll be less willing to break us.#
    • request is possibly the most used package in Node. I'm not sure. But since Node is used to make servers and one thing servers do a lot of is call other servers to get information, and request is pretty much the only way to do that, you'd have to say even if it isn't the most popular package, it certainly is one of the most important. If you were to remove request almost all Node apps would break. And that is exactly what they're doing. It won't work. I'm sure of it. And they don't know it yet. But they'll find out. #
  • A couple of stories to go with this.#
    • Back in the late 90s when we were working on a new version of Frontier, we were generating a lot of new routines for developers to call. We had packages of routines called suites, and as we were generating them we didn't know which package an individual routine would go in when the new version was finalized. So we created a temporary package called toys, disclaimed it would be deprecated before we shipped. We gave it a silly name so people would remember it was doomed. I said to devs, don't depend on anything in toys being there after we ship. Well, as promised, when it came time to ship, we sorted all the routines in toys to their permanent homes and deleted toys. Everything broke. Everything. The outcry was so loud and angry that we put toys back. The lesson is this, when you ship something to developers you're stuck with it, so be sure you can live with it when you ship. You have to live with your mistakes too. Clearly the Node developers think request is a mistake. Well tough shit, you have to live with it. Sorry I didn't make the rules. 😄#
    • Dave Gandy's company makes a product called Font Awesome. It's great. When it came out I knew I was going to use it. I had even been asking someone to do what it does. Anyway, when they came out with a new version, they broke lots of stuff. The conventional wisdom was if the new version is a "full point release," like you're going from version 4 to 5, you can break whatever you want. Well it was a huge setback for Font Awesome and it got users (like me) to fear upgrading to new versions. If they want to improve their product, Dave and his company learned, they would have to add functionality, they can never take functionality out. I wrote it up in February of this year, which feels like a decade ago! :-)#
  • At UserLand we came up with the fundamental rule, so fundamental that we called it Rule 1. It was this: Don't break users. There's nothing more sacred in the relationship between platform vendors and the devs. #
  • So with all that background, I wonder what the Node platform vendor thinks we should use in place of request? To make it as smooth as possible it should just be request, of course. 💥#

© 1994-2020 Dave Winer.

Last update: Saturday May 23, 2020; 5:12 PM EDT.

You know those obnoxious sites that pop up dialogs when they think you're about to leave, asking you to subscribe to their email newsletter? Well that won't do for Scripting News readers who are a discerning lot, very loyal, but that wouldn't last long if I did rude stuff like that. So here I am at the bottom of the page quietly encouraging you to sign up for the nightly email. It's got everything from the previous day on Scripting, plus the contents of the linkblog and who knows what else we'll get in there. People really love it. I wish I had done it sooner. And every email has an unsub link so if you want to get out, you can, easily -- no questions asked, and no follow-ups. Go ahead and do it, you won't be sorry! :-)