It took a moment to get the zeitgeist connection--one of Cornholio's few intelligible phrases is "I need TP for my bunghole."
Wikipedia used to host a comically erudite page about Cornholio, e.g. studiously noting such discrepancies in his speech such as "my people have no bunghole" / "my people have but one bunghole".
This reminds me of a little Visual Basic program I hacked together about 20 years ago when I wanted to buy a PlayStation 2 but there was a shortage after it launched.
Every 5 minutes, my program would make a request to the product page on Amazon and look for the text "out of stock". If it didn't find it, the program would sound off an alarm bell.
I still remember sitting nearby, watching TV one night when the alarm went off. I jumped up and ran over to my computer and bought myself a PS2.
As silly as it sounds, what I remember most fondly about the PlayStation 2 was making and using this little program to help buy it.
But has Javascript become so universally liked that it's the go-to tool for quick one-off scripts like this? Is it really much better or easier that you would choose it over, say Python or just a shell script?
Or is it that Javascript happens to be the best tool for this particular job?
I guess what I'm asking is, do most people reach for JS/Node over other languages for this type of thing? I suppose I still don't see it outside of the browser environment but maybe it's time to change that view.
I used to write scripts in python. I switched to node. Benefits for me.
1. Python by default requires tons of globally installed libraries. Node by default all libraries are installed local the the project. Nothing to learn. It just does it. That means I don't have to worry about trashing my system and I don't have to tell users a bunch of prerequisites to get it to work.
2. Node is ~8meg and installs instantly. Python is 18-30meg and the install has a long build process IIRC
I will still sometimes reach for python. I needed to parse an 8 gig geodata XML file. The libraries I tried in node were orders of magnitude slower than python for that particular task. I did try node first though since it's where I'm at.
I first tried my hand at Python in 2009. The problem of installing libraries globally was no longer a problem then and still isn’t today.
Installing node is faster until you have to install local libraries. I am currently working on a project whose dependencies consist primarily of Vue, Bootstrap, and a few very small libraries such as moment.js. Our node_modules/ is over 1000 individual libraries and growing. It takes 45-65 seconds just to do an npm install when I already have the libraries there. The build process takes 90 seconds on a brand new top of the line machine. Contrast with Python where that number is 0, and installing the dozen dependencies I actually have is a one time process that takes no time at all.
I used to fuck around with Gentoo Linux where I would always triple compile the latest gcc to make sure I had the latest and greatest and fastest. And even I think Node’s library ecosystem is a bloated unnecessary mess. I don’t have the words to write a more scathing review of it, but if I could I would. There is a night and day difference in usability and speed between Node and Python ecosystems and the latter wins by such a wide margin it is like they aren’t even in the same league.
And don’t get me started on how quickly the JS community likes to break shit. Remember when for a brief moment we were all supposed to switch to yarn? And then migrate back to npm? It’s insane.
> And don’t get me started on how quickly the JS community likes to break shit.
I totally agree with you on that one, but I would say the maturity of the JS ecosystem is really settling down, and now that MS owns most of it (Typescript, npm, github, vscode) I think it will only get more stable.
Also, Python community definitely shouldn't be throwing any stones when it comes to "breaking shit".
If you are talking about Python 2 vs 3, think of them as two separate languages where Python 3 can often use a lot of the libraries developed for Python 2. That makes it all make a lot more sense. Even with that, there was maybe a dozen times in the past 8 years, which is how long I’ve been writing Python code full time, where I felt a problem with the 2 vs 3 thing. They were all quickly resolved. This is unlike Node where things like file access change from version to version, and sometimes shit just doesn’t compile because gyp is of the incorrect version, etc. Node is very high maintenance.
It's basically equivalently easy to a python script. JavaScript and Python have almost identical semantics. I'd usuallty reach for node over python because I write JavaScript everyday at $dayjob, and I can I can do so almost without concious effort. Whereas I write python much less often, so it'd slow me down a little as I forget and have to look up details of the syntax, the names of functions, etc. I'm also much less familiar with the python library ecosystem, so I'd need to reaearch whichlibraries to use. Presumably a python developer would have this in reverse.
Bash is different. It's good for stringing toghether external commands, but rapidly becomes a mess if you need to do any complex data manipulation. Argument parsing in bash is also a pain.
There are many programmers working today who only know Javascript. I can’t speak to whether that’s the situation with OP or not, but it is common to see tools that I personally would write in Python being written today in JS, even sometimes by experienced polyglot programmers. I don’t know about “most”, but it is quite common. It surprised me a bit too, the first time I encountered it.
I don’t think it has much to do with “liked” or “best tool for the job” as much as it is simply “prevalent” or “popular”.
There are many quick one-off scripts that have no specifically best tool to implement them in, this totally seems like one of them.
I would reach for python if I needed some advanced text analysis - like nltk, spacy level - but otherwise I would reach for whatever language I was trying to improve my skills in or whatever language I was using the most in other projects so as to not have to context switch so much.
While I generally agree that you should use the best tool for the job, for small and simple scripts I see nothing wrong with picking a language your comfortable with.
I wonder, why do you think python is a better alternative? I would understand bash since it is dependency free, but I don't see any advantage for python vs. nodejs
How? Both Python and Node have some https client in their standard libraries, and both have headless Chrome drivers (what this script uses) in easily installed third-party libraries.
Instacart and Postmates still seem to work, I'm told.
(I won't outsource mortal danger to someone poorer than I simply because they need the money more, and I don't want to give Instacart any of my business since they got busted stealing their delivery staff's tips, but those are your options if you want them.)
seriously, I see prime now deliveries getting to my neighbors, how are they getting a delivery window? I haven't seen one in two weeks. I don't even really need it anymore, my wife and I just check for fun.
I'm not normally one to carp about product names—there was a semi-jokey discussion about calling a shared-viewing product 'Covideo' that bothered some people, but I didn't think it was such a big deal—but surely we can do better than this?
Oh, well. As always with open source, it's my place to be grateful for the work you share (thank you!), not to complain about your not doing it on my terms.
This is a generational thing. Just as my mom won't expect me to understand "where's the beef?", I don't expect her or my students to understand this reference.
But for my generation, a more perfect name has never been devised.
This isn't a product, this is someones spare time non commercial open source project that they're sharing for other developers to use. If the name bothers you just clone the repo and change it.
Yes, but why couldn't it also be a product name. For example, an express delivery service focused on people who are willing to pay a premium to get TP within an hour.
Now, writing this comment had me finally realize that TP, however we mock the hoarders, really is almost unique in its urgency for most people. If you run out of food, you probably have a few hours before you get hungry again. Running out of TP is acutely uncomfortable right from that minute.
Unless you have no access to soap and running water (with the latter causing quite an issue by itself with respect to bowel evacuation), why would it be a problem? I struggle to understand why so many people have an issue with washing their own bunghole. Avoid visiting India (and many other countries that practice increased cleanliness) if that idea is abhorrent.
BTW, soap is exactly what I meant by "almost" unique.
You mean, a bidet? Long-term, seems like an interesting idea. Short-term, filling a cart with TP during an unavoidable (because of food delivery collapse) visit to the store seems like a less dangerous idea than inviting a plumber.