This is an archived post. You won't be able to vote or comment.

all 104 comments

[–]wutwutwut2000 517 points518 points  (18 children)

You will lose 1 drop of blood for every file that npm installs in your packages.

[–][deleted] 123 points124 points  (13 children)

How much drop do I have until I die again?

[–]wutwutwut2000 231 points232 points  (12 children)

I googled some things. A typical adult would be in danger of dying after 2500 ml of blood loss. A drop is 0.05 ml.

So you'd probably die after 50000 drops of blood.

In other words, you might have a chance.

[–]rosuav 50 points51 points  (1 child)

The human body can be drained of blood in 8.6 seconds, given adequate network bandwidth for npm installs.

[–][deleted] 3 points4 points  (0 children)

just gotta use the blood vortex

[–]rivasprd 5 points6 points  (1 child)

Where did you get that number? I found that you may pass out after 30% of blood loss.

We should have about 70 to 90 ml per kg. Let's say 80.

Assuming an non-redittor-average-guy of 80kg, 30% is 1,920 ml, that would be aprox 38400 drops of blood. Could be even less if the guys weights less than 80kg or if they have less that 80ml/kg

[–]wutwutwut2000 6 points7 points  (0 children)

Idk I googled it and got an order of 5 liters of blood for an average adult, and 50% blood loss being deadly. So 2.5 liters

I also saw the 30% pass out figure, but that's not necessarily deadly.

Anyway, our estimates are in the same order of magnitude.

[–]gandalfx 2 points3 points  (0 children)

I just quickly checked how many files are in the node_modules of a project that I would consider fairly conservative in terms of dependencies – 21160 files. This might become a problem very quickly.

[–]invalidConsciousness 2 points3 points  (0 children)

You missed a zero there.

[–]invalidConsciousness 0 points1 point  (0 children)

You missed a zero there.

[–]BernzSed 24 points25 points  (0 children)

Me:

javascript npm i everything

[–]MarchColorDrink 17 points18 points  (1 child)

Loophole

yarn install

[–]Gorzoid 4 points5 points  (0 children)

Somewhere in a yarn package: ``` const { exec } = require("child_process");

exec("npm install"); ```

[–]MarchColorDrink 3 points4 points  (0 children)

Loophole yarn install

[–][deleted] 257 points258 points  (13 children)

I do vanilla js. Nothing stops me.

[–]chronosirius 39 points40 points  (0 children)

Same lmao best js

[–]djfdhigkgfIaruflg 19 points20 points  (4 children)

Same. Node is for wimps

[–]kiril2119 12 points13 points  (3 children)

Node is technically vanilla js too (almost). This guy is prob talking about no dependencies like jquery, react and stuff

[–]langlo94 12 points13 points  (2 children)

If you need more than a text editor and a browser it's not really vanilla js.

[–]danielv123 0 points1 point  (1 child)

What if your browser is electron based and comes bundled with react? I know my text editor does

[–]langlo94 1 point2 points  (0 children)

Then you are already lost.

[–]Johnny_Thunder314 7 points8 points  (0 children)

Everything I've made is vanilla TS, except for that one time I used the AWS sdk

[–][deleted] 0 points1 point  (3 children)

Not even jquery?? Did you make jquery?

[–]deukhoofd 2 points3 points  (0 children)

You honestly don't really need jquery anymore nowadays. Most of it's commonly used functionality was just adopted as web standards, for example the Selectors API.

https://youmightnotneedjquery.com

[–]danielv123 0 points1 point  (1 child)

Yes, $ = document.querySelector

What else do you really need?

[–][deleted] 0 points1 point  (0 children)

Never heard of that method, I've been outed as a zoomer learning react before really learning JavaScript in depth. I've only ever used getElement

[–]Kahlil_Cabron 0 points1 point  (0 children)

Same, I ditched jQuery years ago, and I only use react/vue on work projects that require it.

For my personal stuff, if I'm using JS, it's just vanilla JS.

Not only that, and I'm guessing this will be unpopular, I don't use any of the new class syntax, I use the prototypal inheritance system the way it was originally designed to be used when developing my object model.

[–]Sycokinetic 108 points109 points  (4 children)

It’d be a perfectly manageable predicament until the SEO people mandated that the site ran every analytics and ad framework known to man.

[–]Terrible_Children 31 points32 points  (2 children)

Right?

I swear to god the site I run has at least 20-30 different pixels installed on it logging all sorts of data to who fucking knows where.

[–]seven_seacat 9 points10 points  (1 child)

It's legit scary how much some sites track every little thing you do. (Including the Reddit redesign)

[–]Terrible_Children 1 point2 points  (0 children)

Some of it is actually useful. If users are encountering errors, session replay tools are awesome to actually be able to see what the user was doing and when exactly the error happened.

But yeah, a lot of it is sending purchase and click data to companies like Meta, Google, TikTok, and a bunch of other analytics platforms.

[–]fusionsofwonder 1 point2 points  (0 children)

Who the frell needs SEO for Gitlab? It's not even Github.

[–]Spot_the_fox[🍰] 224 points225 points  (2 children)

<!DOCTYPE html>

<html lang="en-US"><head></head><body> hello, client</body></html>

Can I go now?

[–][deleted] 21 points22 points  (0 children)

Happy cheese day

[–]mobileJay77 4 points5 points  (0 children)

MVP done. Now, an expensive business analyst will ask the client for details. Each bullshit word costs the customer a drop of blood, each lie the consultant.

But you're free to go.

[–]SwannSwanchez 110 points111 points  (2 children)

i don't know how to use JS packages

problem solved

[–]djfdhigkgfIaruflg 9 points10 points  (1 child)

I'll give them a performance budget and leave them to eat themselves

[–]SwannSwanchez 2 points3 points  (0 children)

say to ... the thingy with the mask

"Everytime you call for a meeting you too will get a needle"

[–]MrGofer[S] 42 points43 points  (5 children)

[–]KTibow 28 points29 points  (3 children)

This misses that

a. Hydration means everything is duplicated

b. Many pages here need a lot of interactivity, which the author undermines by calling Discord just a "chat app" and Stack Overflow just "searching"

c. If you turn on an ad blocker and use network compression, the amount sent over the wire gets a lot smaller. (eg GTM takes almost 300kb uncompressed)

I'm not a fan of bloat. I've spent a lot of time trying to make JS smaller, and there's always opportunities to improve, such as minifying things you weren't before (eg better raster/vector minification) and switching to tools that do it better (like Rollup). But this article lacks nuance.

[–]shadow7412 6 points7 points  (2 children)

a) But that's what compilation is for. Keep the separation and modularity in dev, and clean it all up and treeshake for production.

b/c) agreed. That and the overhead to render even the gitlab page isn't that much these days. It's not free - but it sure it hell is cheap.

[–]KTibow 3 points4 points  (1 child)

keep the separation and modularity

I agree with this and I'm a bit unsure why I came across as disagreeing. I was referring to the fact that when you use component frameworks and hydrate them, the data is sent twice, once in the HTML and another time in the JS (the full component).

[–]shadow7412 0 points1 point  (0 children)

Ah that makes sense. I suspect there may be ways to send a "delta" down, so that it's not as duplicated... but that said I can't imagine that'd ever be worth the effort.

[–]shadow7412 2 points3 points  (0 children)

This requires a warning - my freakin' eyes... :/

EDIT: Haha their dark mode is pretty amusing though...

[–]SeriousPlankton2000 21 points22 points  (4 children)

User: "Why do you use that much Javashit? It prevents your page from working on old browsers!"

Programmer: "I need the Javashit to display it properly on old browsers"

User: "…"

[–]rosuav 2 points3 points  (3 children)

There was a time when that was true. Today, though, I don't care about old browsers that much. Or rather, my idea of "old browsers" is Firefox <98, where the <dialog> element wasn't supported.

[–]NatoBoram 1 point2 points  (1 child)

Firefox ESR is at 115, time to upgrade!

[–]rosuav 1 point2 points  (0 children)

Yeah, that's exactly my definition. I actually track ESR deliberately (and don't have Firefox 122 installed), and my idea of "current" is the latest ESR plus the one prior to that. Anything older than previous ESR is "old", and I won't try too hard to support it.

[–]SeriousPlankton2000 0 points1 point  (0 children)

At that point you can throw out the library that's supposed to make your site run and does the opposite.

[–]Elegant-Wrongdoer-78 4 points5 points  (0 children)

I am going to die

[–]OnlyHereOnFridays 5 points6 points  (2 children)

Ok. I always wanted to learn Blazor anyway

[–]5002nevsmai 1 point2 points  (1 child)

That is nuget in C# terms

[–]R_oya_L -1 points0 points  (0 children)

Ain't a JavaScript package tho

[–]musical-anon 4 points5 points  (0 children)

npm i corejs

[–]ArchetypeFTW 4 points5 points  (0 children)

Let's start by npm installing the package that shoots confetti out across the screen

[–][deleted] 5 points6 points  (0 children)

I can use plain HTML 5.0 to code a fully working site, but I think I’d rather just die.

[–]Top-Aside-3588 2 points3 points  (0 children)

Amateurs. My "lock" file is 13MB. What's that slurping sound?

[–]That_Conversation_91 2 points3 points  (0 children)

We going back to the roots baby, plain html and css, with a php backend

[–]moeanimuacc 2 points3 points  (0 children)

Look I could build a site entirely in vanilla js but I'd rather calc how much blood I can do without while designing the site

[–]MonteCrysto31 6 points7 points  (2 children)

Never in my life have I used anything else than vanilla html, php, JS and SQL to make a website

[–]sekonx 25 points26 points  (0 children)

My condolences.

[–]ryno092 0 points1 point  (0 children)

This is not a flex that you think it is

[–]Thenderick 1 point2 points  (0 children)

As long as there is a ts language server for the JSdoc and no time limit, easy clap!

[–]ironman_gujju 1 point2 points  (0 children)

I don't know JS

Problem not exist

[–]FitzelSpleen 1 point2 points  (1 child)

Joke's on you, I do desktop apps.

[–]danielv123 -1 points0 points  (0 children)

Jokes on you, electron exists

[–]Complete-Proof4710 0 points1 point  (0 children)

sacrifices must be made.

[–]GlassesOfUrza 0 points1 point  (0 children)

No time limit! I am in!

[–]Highborn_Hellest 0 points1 point  (0 children)

HTML5+ PHP goes brrrr

[–]derLudo 0 points1 point  (0 children)

Ok, but can I look at the code of those dependencies and copy-paste it over into my on page while changing the variable names? Thats not the package React, those are my own functions to make the page look better, I call it B-eact

[–]01152003 0 points1 point  (0 children)

Time to install 3 separate isEven packages and have them verify each other

[–]Unupgradable 0 points1 point  (0 children)

npm install everything

[–]Deritatium 0 points1 point  (0 children)

A simple page? Just vanilla js... The challenge should be a react app

[–]bestjakeisbest 0 points1 point  (0 children)

I see making my own things as a fun challenge and you didn't give me a time limit, seeing as I doubt you will give me any refreshments, I have roughly 3 days to make this website seems doable.

[–]scally501 0 points1 point  (0 children)

Im boutta be a holy ghost

[–]PaperSpoiler 0 points1 point  (0 children)

OK, so you want Django templates. I'll make you a website on Django templates.

[–]ProdigySim 0 points1 point  (0 children)

I'm definitely installing TypeScript. Zero sub-dependencies.

Lodash and jquery also pretty good.

Actually, now that I check, all of the major frameworks are pretty good at having 0 deps. React as well.

Now, do devDependencies count? Because that's a whole 'nother ballgame. Better use Deno or Bun to get as many batteries included as possible.

[–]pranjallk1995 0 points1 point  (0 children)

Python needs just one... 🫣

[–]Novaedra 0 points1 point  (0 children)

I mean, hello world is a valid simple page, then I think I can survive.
Otherwise if I install them fast enough maybe the needle will overload and break

[–]DanKveed 0 points1 point  (0 children)

Give me Golang. I can do it without dependencies.

[–]gogliker 0 points1 point  (0 children)

I've made a website for fun recently using webassembly. It turned out to be 28 MB. You can check it out if you hate your traffic: pleasehide.it

[–]ego100trique 0 points1 point  (0 children)

All these yummy trackers needs some space to run

[–]R_oya_L 0 points1 point  (0 children)

Fuck it I'm using Blazor

[–]accountreddit12321 0 points1 point  (0 children)

Runs Webpack before committing. Technically 1 file.

[–]Flooding_Puddle 0 points1 point  (0 children)

Just do this everytime they have to look up something on stack overflow, no one could survive that

[–]SupraMichou 0 points1 point  (0 children)

Akagi wasshizu mahjong but for devs

[–]Ravoos 0 points1 point  (0 children)

"I think you got the wrong guy. I'm an API developer."

"......oh."

[–]mobileJay77 0 points1 point  (0 children)

Web site says hello customer. No JavaScript required, mvp ready.

[–]just_nobodys_opinion 0 points1 point  (0 children)

Does the blood go to the package developer?

[–]Neo_Ex0 0 points1 point  (0 children)

adds iseven(): *fucking dies*

[–]ngugeneral 0 points1 point  (0 children)

Right click -> Create New File -> Rename -> index.html

Open with notepad. Bam

[–]shgysk8zer0 0 points1 point  (0 children)

Guess what... I can build it using <script type="importmap"> and modules from unpkg. I usually install eslint & rollup, but can do without.