Live data from Hacker News

Today’s JavaScript, from an outsider’s perspective (2020)

lea.verou.me

191–200 of 391 posts

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#191

Earlier quoted context omitted.

I'd like to see more of this. It astounds me that software dev, historically seen as a field with and for "poor communicators", somehow believes its interviewers can do what top psychologists consider almost impossible to do. Same happens across almost every industry, but really, tech? "Cold hard logic" tech somehow became "yeah we can totally psychoanalyze someone in 30 minutes by talking"? Worse, the lack of struct…

Or perhaps the interviewers are under-experienced, under-perpared and/or under-trained? True story: I had an interview a couple of weeks ago. I was interviewed by two people who were younger than me, and relatively less experienced than me. My CV has a number of links to repos for various side projects and such. Best I could tell, neither of them looked, at least not more than a minute. Not a single "Your ____ repo l…

My theory: most hiring absolutely doesn't matter (from the interviewer's side).

Most people will either have the skills needed or the capability to learn said skills. Weeding out obvious poor cases is easy, the remainder is semi-arbitrary weeding out of true positives in hopes of weeding potential false positives. Much of higher education alone does a good job at pushing people to learn difficult things in a short timeframe, with little incentive beyond "getting that paper".

Also, hiring is a lot like parenting, but the bad aspects magnified at least a few times. As you say, barely anyone knows what to do. No one has experience. Almost everyone claims to be an expert (not verbally, but they do act like it). Non-obvious bad choices often go undiscovered; as above, most picks themselves aren't bad (they just aren't great), or something else is blamed instead. Pride, neuroticism and personal bias play huge parts in the decisions.

Worst of all, no one actually reads the studies showcasing most of what hiring managers do have close to zero correlation to anything. I'm really just waiting for a mass study where two companies do an initial vetting, then company A throws darts at a dartboard and company B does the whole job interview shtick, and compare the results 2 years down the line. And maybe add a company C which actually does what studies suggest.

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#192
post #31

sounds like the same experience I have with pretty much every language I'm not used to. I just want to try this C++, download, unzip, oh it's windows so .project file. Fine, redo on windows , oh it's 3 versions of vstuido old and says it wants to upgrade , okay. Hmm errors. Try to fix. Now it's getting linking error. repeat the same with xcode and any project in c, c++, objc, swift okay how about ruby? oh I have old…

Go is yet to prove its stability over timespans similar to those languages you've mentioned, but it doesn't have many of noted (and similar) quirks.

Its dependency management used to be a real mess though. It has got a lot better in recent years.

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#193
post #72

Earlier quoted context omitted.

Was going to edit this in but it quickly turned into a related rant about the state of things: if you don't want that, scroll past. The real problem is that there's no more room for the technological "middle class". We've gotten to the point where you cannot be SLIGHTLY interested in computers, want to make a quick app for yourself, or make something small to share with the world. You either have to have no interest…

I've started programming around 10 year ago without any Visual Basic code. There are so many more resources nowadays to get started programming, back in the day there was no way in hell you'd get something like repl.it where you don't even need to install anything. What stops you from creating the most simple html page and playing with CSS? That counts as programming to me, there's also scratch for people who are com…

A big issue is that 10 or 20 years ago the steps for creating a webpage were simple: just open notepad (or whatever) and put some HTML.

Today you "gotta" install node, yarn, webpack, react. Then you gotta make a package.json and configure webpack. Or replace webpack with something called "crap". At least that's what all the "for beginners" tutorials that everyone recommends says! Nobody ever said I could just use notepad!!!

But that's not exclusive for frontend.

20 years ago you'd get a random server with Perl. Probably free. 10 years ago you'd get a random server with PHP. You would use FTP and notepad to learn the ropes.

Today you must install some advanced editing software with some plugins, use a terminal, install some runtime or compiler, get some packages, which won't work, so Google tells you to use "sudo" so it works, but that's very suspicious. Stack Overflow says shouldn't be "sudoing" by the way, this is dangerous, you should actually install this "version manager" thing here to install the first tool you installed, so maybe uninstall the first tool, although there's no uninstaller. Oh, and you need this "package manager" tool that install the version manager in the first place. Then you gotta learn to deploy. At this point you're already too old for this shit.

Desktop apps? Good luck with that.

OF COURSE there are simpler solutions, like just making a website with HTML as you could before, or Jupiter Notebooks. But few people today will stumble on that by accident.

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#194
post #63

This thread is also a good read: https://twitter.com/Aella_Girl/status/1522633160483385345 Shows that a lot of people, ESPECIALLY programmers, vastly overestimate the competence of the average person when it comes to whatever they are an expert at. You may think that this person is silly - but that is tainted by your past experience of already knowing it warping what you think the baseline average knowledge level is…

> It's no wonder many people basically view anything past the surface level of computers as dark magic, and we call people good with these magical devices "wizards".

The dirty secret is that, due to the consultant effect, that feeling tends to owe its existence to those "wizards" who are happy for things to remain that way (and go around making it so where it's not already).

The Computer Lib Pledge (https://archive.org/details/springer_10.1007-978-3-319-16925...>):

The purpose of computers is human freedom.

I am going to help make people free through computers.

I will not help the computer priesthood confuse and bully the public.

I will endeavor to explain patiently what computer systems really do. I will try to answer people's questions kindly, or explain that I do not have time. I will not treat any question as a dumb question, since there is no such thing.

I will not give misleading answers to get people off my back, like "Because that's the way computers work" instead of "Because that's the way I designed it."

I will stand firm against the forces of evil. I will speak up against computer systems that are oppressive, insulting or unkind, and do the best I can to improve or replace them, if I cannot prevent them from being bought or created in the first place. I will fight injustice, complication, and any company that makes things difficult on purpose.

I will do all I can to further human understanding, especially through the new visualizing tools of interactive computer graphics.

I will do what I can to make systems easy to understand, interactive wherever possible, and fun for the user.

I will try not to make fun of another's favorite computer language, even if it is COBOL or BASIC.

So help me.

-- Ted Nelson

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#195

Earlier quoted context omitted.

I don't think this is a good analogy. Not every programming project is a project that takes hundreds of skilled engineers. Not every programming project needs to deliver a product for others to use. What Aella wants to do is something pretty simple, and it's frustratinc that this is so hard.

> What Aella wants to do is something pretty simple, and it's frustratinc that this is so hard. It's not that hard. Doing it like a Real Data Scientist is hard, but also completely unnecessary for a beginner non-programmer. That doesn't stop well-meaning folks from advising that approach (install pandas, Jupyter, anaconda, etc.) and overwhelming people. The Python standard library is batteries included. IDLE exists.

I think the problem is that there are so many options, some more accessible to newcomers, some less. For example, I think Thonny is a nice entry level Python "GUI"

But it's really hard to find what to start with from a google search.

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#196
post #131
post #63

This thread is also a good read: https://twitter.com/Aella_Girl/status/1522633160483385345 Shows that a lot of people, ESPECIALLY programmers, vastly overestimate the competence of the average person when it comes to whatever they are an expert at. You may think that this person is silly - but that is tainted by your past experience of already knowing it warping what you think the baseline average knowledge level is…

An astonishing number of people here are missing the point. Doing something like "making a small script to analyze CSVs" has become a massively complicated undertaking requiring you to follow random guides that might be 6 months old (practically half a century in these circles), install random programs and dependencies using other random programs and dependencies that you don't even understand, and do many steps that…

The author of the tweets doesn't seem very interested in learning the basics. They want to open Python and magically start processing CSV.

That's not how that works. CSV processing is an easy task if you know the basics and read the manual. The author wants to skip the boring parts that are essential for the easy part of their objective. They get frustrated with terms they don't know and tools they haven't heard of but seem unwilling to read up on their problem, instead copy pasting stuff until it works and then looking up what went wrong afterwards. Yeah, you're going to have a terrible time learning anything if you're not willing to understand the basics before throwing your frustrations at them until they work.

If I go into a sculpting class saying "I don't want to learn about materials, I came here to sculpt my own version of Michelangelo's David" then I would be told to shut up, sit down, and start learning.

Just because someone can't get their instant gratification doesn't mean there's anything wrong with the field of programming. If you're goal oriented then you'd better be willing to learn every single requirement for reaching that goal or you won't succeed.

I think the fact that the author managed to learn how to process their CSV in four days is a testament to how far we've come. It took me weeks to get to that level on my own with the manuals and offline tutorials I downloaded on the school PCs.

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#197
post #185
post #156

Earlier quoted context omitted.

They never even got to the point of running the code because of Node's bullshit, which is the point.

Is node.js giving the author bullshit or did they knowingly step into a field they are unfamiliar with, getting themselves involved with a package manager, a javascript runtime, a browser, and a local fileserver? As if you were able to instantly run whatever code you found on the internet back in the C++ days. It's bizarre. Not everything needs to have such a low barrier to entry that anyone can work with it. Who sai…

>Is node.js giving the author bullshit or did they knowingly step into a field they are unfamiliar with, getting themselves involved with a package manager, a javascript runtime, a browser, and a local fileserver?

Node.js is giving the author bullshit. They were not unfamiliar with the field. They knew what a package manager was, they already had NPM installed. They were familiar with the architecture of the web and one of them had a CS degree.

>Not everything needs to have such a low barrier to entry that anyone can work with it. Who said _that_ is where we collectively set the bar? It's a false premise, and frankly it feels like more of the toxic false entitlement open source maintainers are typically showered with.

I find the premise that the bar should be set artificially high just to keep people out to be toxic, especially with a language like javascript that's intended to be accessible to everyone. Generations of people learned how to code by studying (and ripping off) source code on the web, but now those people have grown up and surrounded themselves with shibboleths and want to pretend they're in a rarified air where high spec engineering expertise should be required just to get past the gate. And that's all most of the JS ecosystem is - gatekeeping.

We're not talking about linking some arcane C program here, we're talking about a scripting language so simple it doesn't even know what integers are - no not even modern JS does - designed to be written in Notepad and run in a browser.

Yes, this should have been simple, or at the very least much simpler than it was. Yes, it should be possible for someone who isn't a full stack developer to be able to run javascript code, even with a package manager, even random code they find on the internet, with minimum effort. Yes, it's actually easier to link and run random C++ code than it is javascript at the moment. Yes, that is a bad thing.

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#198
ITT:

- Stockholm Syndrome: Programming is supposed to be needlessly hard for beginners.

- Denial: What OP describes isn't a problem because I already learned how to avoid it.

- Propagation: Try this even NEWER JavaScript library / paradigm / framework to solve all your problems (and totally not create a bunch of new ones).

- JavaScript Bad: See this is why nobody should ever do front-end programming.

- Acceptance: It shouldn't be like this.

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#199

The author encounters four problems trying to approach a programming task: 1) A problem common to every programming language (feature introduction/deprecation compatibility conflicts w.r.t. import/require) 2) A security issue around browser filesystem access (not-JS related at all: HTTP content-type sniffing) 3) A usability issue with the VSCode IDE (not JS related) 4) A bug in a single JS module Concludes this is al…

Regarding point 4: more people need to realise picking the right NPM package in the JS ecosystem is becoming a "must-have" skill, but the only way to find the right package is still to be constantly up-to-date with the ecosystem, endless google searches or hoping someone on Twitter can just tell you what's better.

This is why I built https://pkg.land/ (beta), append NPM package name to the url and a list of alternatives will be suggested. See https://pkg.land/colors

Re: Today’s JavaScript, from an outsider’s perspective (2020)

#200

The author encounters four problems trying to approach a programming task: 1) A problem common to every programming language (feature introduction/deprecation compatibility conflicts w.r.t. import/require) 2) A security issue around browser filesystem access (not-JS related at all: HTTP content-type sniffing) 3) A usability issue with the VSCode IDE (not JS related) 4) A bug in a single JS module Concludes this is al…

One thing in particular I hate about Javascript's platform is how much time you have to spend on learning the ever-changing tooling. I can write JS and TypeScript easily enough but when I start a new project I'm always fighting the tooling for at least half an hour before I can get going.

The JS ecosystem has six ways to do anything and four of those aren't compatible with your previous choices. Tooling gets extended with endless helpers and plugins to the point where I don't even know what a given command does anymore.

Python venvs and pip are easy enough to understand. Cargo and dotnet are also clear enough if you read their help pages. NPM and Yarn, however, only do a fraction of what you'd want them to do out of the box, forcing every tool out there to set up their custom system of helpers and tooling just to get them to run.

Post reply on HN