I completely disagree. Stability isn't better when you do everything yourself, actually in my experience, it's worse. For example, if I want my users to be able to scan a generated qr code, I am not going to write a qr code generator myself since that is quite a lot of work. I will use a trusted library to do that for me. In this way, the library will have had a lot of eyes, patches all the time fixing bugs and so on…
On Modern Web Applications Stability
31–40 of 41 posts
Re: On Modern Web Applications Stability
#32Definitely some issues raised in the article and particularly the idea that even if you need a little bit of something, you inherit the entire library with dependencies you don't need! However it is a little short on solutions. The truth is that I don't want to write my own PayPal API when there is one that PayPal produce and are likely to keep more up-to-date than me. Writing my own means that I only rely on my team…
Re: On Modern Web Applications Stability
#33Earlier quoted context omitted.
It seems like "the hundreds of lower-level dependencies" is a problem that is unique to JavaScript due to its lack of a standard library. JavaScript has a huge ecosystem, and as a result produces many new, interesting ideas, but its also the source of a lot of churn. I remember working on large-ish (+300k LoC) .Net applications that were essentially dependent on just the .Net Framework itself. For those looking to pr…
avoid Node.js based applications altogether. I ran into this recently. Firefox has a "packager" for putting together add-ons. It uses "node.js". All it really does is apply "zip" to some files. I tried to install the "packager" on Ubuntu 18.04 LTS. It had several hundred dependencies, and wouldn't run because of some version dependency in node.js for something totally irrelevant to the task at hand. Mozilla support s…
Re: On Modern Web Applications Stability
#34I completely disagree. Stability isn't better when you do everything yourself, actually in my experience, it's worse. For example, if I want my users to be able to scan a generated qr code, I am not going to write a qr code generator myself since that is quite a lot of work. I will use a trusted library to do that for me. In this way, the library will have had a lot of eyes, patches all the time fixing bugs and so on…
A web app cannot be more stable than a native app but there are trade-offs, it's simpler to target an app that would open on most browsers even if it does't work too efficiently. If there was only one browser in the world web apps would be a whole lot more stable but that's not the world we live in. I think the only reason people stopped writing native apps in favor of web apps is manly for the cost benefit and we as…
Re: On Modern Web Applications Stability
#35Occasionally while waiting for npm install to finish downloading, I think about how there are websites like http://www.urbandead.com/ which is probably a single 20k line perl script and mysql server running on a single box with 12 years of uptime that somehow manage to get along just fine with no javascript and apparently no input from their owners. When I started doing webdev 8 years ago you shipped a recentish copy…
It's pretty crazy. I have just about the exact same experience I'd say. On personal projects I'm moving back towards straight CSS, Vanilla JS (maybe I'll use jQuery if they get more complicated, they're very bare bones at the moment), and server generated HTML with Django templates. Web Development seems to move at this incredible pace. I also started just about 8 years ago and I've gone through jQuery, Angular 1, Ba…
Re: On Modern Web Applications Stability
#36Earlier quoted context omitted.
It's pretty crazy. I have just about the exact same experience I'd say. On personal projects I'm moving back towards straight CSS, Vanilla JS (maybe I'll use jQuery if they get more complicated, they're very bare bones at the moment), and server generated HTML with Django templates. Web Development seems to move at this incredible pace. I also started just about 8 years ago and I've gone through jQuery, Angular 1, Ba…
Have you looked at Svelte? I've started using it and its a breath of fresh air. It feels like going back to the basics. https://svelte.dev/
Re: On Modern Web Applications Stability
#37I don't buy it. I mean the entire society is set up this way. If we tried to reduce reliance on others and others systems, are we saying we should all build our own operating systems that are hardened from solar radiation? About one week ago I woke up to my great uncle knocking on my RV (we live in his driveway temporarily) and he said, the fastest moving fire in CA history is moving toward Paradise again and we need…
Re: On Modern Web Applications Stability
#38I don't buy it. I mean the entire society is set up this way. If we tried to reduce reliance on others and others systems, are we saying we should all build our own operating systems that are hardened from solar radiation? About one week ago I woke up to my great uncle knocking on my RV (we live in his driveway temporarily) and he said, the fastest moving fire in CA history is moving toward Paradise again and we need…
Re: On Modern Web Applications Stability
#39"As if source code rusted. The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. There’s nothing wrong with it. It doesn’t acquire bugs just by sitting around on your hard drive."
By that token, blindly updating your dependencies sounds more like the problem and so does writing your new code in place of their old. Security patches may force your hand but apart from that, if you want stability just be deliberate about upgrading and it will be rare for old dependencies to suddenly generate new bugs.
As far I see it, the right way to think about good, reliable code is not as a compact, resilient thing like a baseball but like a matchstick sculpture glued together with maple syrup. It is both inherently very fragile and very unlikely to spontaneously break if good decisions went into the design of its supporting structures and because it's mounted to the sturdy, climate controlled plinth of the silicon chip.
In the article, these supporting structures such as compilers, OS and firmware are mentioned but if we don't trust these then we simply should all stop trusting computers. Most of us believe that this broad societal dependency has been a good tradeoff bringing us an amount of good which is so hard to outweigh even by an imagined disaster.
The same goes for most of the dependencies in the average ruby project (don't know what to say about JS). They are battle-hardened and bring value that companies would pay massive sums for were they not free.
There are of course the odd suspect, unnecessary dependencies in most projects. Usually they're for trivial uses and easy to remove. When you discover these few they do not indicate that the rest of your package list was a mistake. The fact that 90% of the problems you have come from 5% of the dependencies (made up statistic) should tell you that your project will be dead before the other 95% let you down.
Re: On Modern Web Applications Stability
#40To me the main thing to remember is [what Joel Spolski said about rewrites]( https://www.joelonsoftware.com/2000/04/06/things-you-should-... ): "As if source code rusted. The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. There’s nothing wrong with it. It doesn’t acquire bugs just by sitting around on your har…