Live data from Hacker News

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

lea.verou.me

121–130 of 391 posts

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

#121
This is a problem with all kinds of programming for new learners - actually writing some code is easy. But getting a development environment configured to actually allow you to start writing that code requires a ton of tacit knowledge.

I find this to be the biggest hurdle to new joiners. When I was first learning in my grad job, my company did a terrible job of addressing this and threw us into a test project with no support and expected us to navigate Git and React through our own wits and poor ability to Google. What Microsoft is trying to do by introducing live coding environments into Github is a fantastic step forward.

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

#122
post #94
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…

In a sense no-code tools are today’s Visual Basic.

Well, not really. The no-code tool of the 90s was Access or maybe Excel. VB was useful exactly because it was code, but simplified. One thing the Microsoft stack really nailed was a smooth(er) on-ramp. There was a big gap between VB and C++ which is partly what motivated the development of C#/Java but otherwise, you could start with Excel or Access, move up to VBA and build an actually useful app that delivered business value. Then you could take those skills and move to VB6 and build "real" apps that you could ship to users and charge money for, build whole businesses around. You could learn some Win32 using VB/Win32 interop and then progress to C, and from there, to C++, or later from VB to VB.NET and then C#.

The web stack sort of killed all that. You can start with HTML and get some results pretty fast but you'll very rapidly hit the limits of what can be done there and suddenly be hit with this giant wall of complexity. NodeJS helps because now you can use the same language on backend and frontend, but even getting to the point where you have a frontend and backend requires mastering a heap of tech with appalling usability (like UNIX). And the modern JS ecosystem is sufficiently complicated that you'll hit problems like the ones described in the article.

One way to fix this is to bring the VB6 model back, by making desktop apps great again. It can be done. There are toolkits that make it easy to write standalone cross-platform apps (e.g. JVM languages+JavaFX, Flutter, the new C# stuff, Qt, etc). There's no fundamental reason distributing desktop apps must be difficult, it's just a neglected area of tooling.

And that's a nice segue to my current startup, which is tackling exactly that problem. We've produced a tool that makes distributing desktop apps as easy as distributing web apps is (or easier!). It takes the output of your build system (if any) as inputs, and builds self-updating packages for Windows, macOS and Linux without needing you to actually have any of those platforms. It can also fully sign those packages itself (without needing macOS or Windows), or self-sign them in which case you get a `curl | bash` type install experience and the PowerShell equivalent for Windows. Finally it produces a simple download HTML page that detects the user's OS and gives them a nice big green button to click.

We've talked to one well known tech firm that wants to integrate this into their products and a driving reason is, in fact, educational. They have a lot of new programmers who use their developer tools and who learn with a desktop toolkit because it's easy to get things on the screen, there's one language to learn, it's all cleanly following the principles they're taught in class (like objects) and so on. But then they hit a wall when they want to show their friends and family what they're doing, or graduate to actually getting real users. Smoothing that on-ramp should help a lot.

At the moment the tool is in private beta, but if you want to try it email me (address in my profile). After public launch it'll be free for open source projects, licensed for commercial projects. Thinking about a feature that automatically bundles source and adds a "view source" button to the apps, to help students who haven't yet mastered uploading code to GitHub.

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

#123
post #72
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…

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 completely new and want to learn.

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

#124
post #89

This is exactly my issue with all this modern JavaScript / Node-stuff. The boilerplate just to get the simplest thing started is brutal. Now I'm dealing with some Vue3/Quasar/TipTap stuff, and I still don't know what exactly I have there, but just that it is working somehow. Python is such a pleasure to work with that I wish that all this modern web stuff were more like it.

If you try simple vanilla javascript, then you may be surprised at how pythonic it is in cerain ways - e.g. just open a browser (any browser!) and you have a javascript REPL read to go in the developer tools. Node severely complicates and confuses things, but node alone is not javascript. Vanilla JS is IMHO a very nice and expressive language, and you do not need any of the Node/Webpack/React/Vue/jquery/whatever to d…

> Vanilla JS is IMHO a very nice and expressive language

I agree, and the runtime and browser is also a very nice framework for gui programming.

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

#125
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…

On the thread: Author has unrealistic expectations. They should pick up a Python intro book and work through at least the first couple of chapters. In the time they cluelessly floundered around they probably would have had most of their outstanding issues cleared out.

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

#126
post #89

This is exactly my issue with all this modern JavaScript / Node-stuff. The boilerplate just to get the simplest thing started is brutal. Now I'm dealing with some Vue3/Quasar/TipTap stuff, and I still don't know what exactly I have there, but just that it is working somehow. Python is such a pleasure to work with that I wish that all this modern web stuff were more like it.

Agreed, but as for Python, it doesn't have to run in both CLI and the browser, where both are entirely different environments. You don't need to transpile-and-typecheck from Python-with-types to Python-you-can-run. And yet, there are enough complaints about trying to get other people's Python to run on one's own machine, even in this very comment thread.

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

#127
post #118
post #98

Earlier quoted context omitted.

> the only reason this barrier was ever breached for this person was due to their large twitter following I feel like their approach to solving the problem actually does represent how most people deal with it - they ASK someone. There are hundreds of massive programming discord servers, with extremely engaged tutors, helpers, and resources. If you want to learn to program, you'll need guidance, and I think that's OK.…

Have you ever actually tried to do this? Programmers are extremely opinionated people. If you somehow manage to get past the barrier of "pretending to look smart so you can even ask a question without getting flamed to hell and back (hello, stackoverflow!)" you will be met with people suggesting different things, which quickly devolves into a giant argument about which thing is better and why this guy is so stupid fo…

Yes I have tried to do this, and I do this kind of "helping others" a lot on discord.

StackOverflow is about the worst helping platform. That's not the kind of platform I was talking about, I was specifically mentioning discord and reddit. r/cpp, r/c_programming, and some discord servers like the "programming" discord are great.

I see what you're saying, but that is NOT the experience I've had at all on most communities other than StackOverflow. I really urge you to actually try it and have a look.

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

#128
from an insider's perspective, javascript is better than it has ever been. ES6 has fixed all significant shortcomings 8 years ago, and at this point you don't even have to transpile it

the "community" however is as shit as ever, but you can easily ignore it.

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

#129
post #88
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…

> needlessly complicated IMO this is unfair characterization. If using Photoshop is driving, programming is building an internal combustion engine vehicle. You cannot expect to just randomly google for car-making tutorials and get an SUV done in a weekend. Heck, you can't even expect to be able to build a very simple combustion engine from basic principles without a lot of study. I'm not saying this is Aella's fault…

I also think that Aella had abstraction mismatch. Python does not know what CSV is when she tries to "Okay, cool. I want to upload a csv, the data I want to analyze". It sounds to python identical as if you said "Make me a sandwich". You need to explain to python what a "sandwich" is, using abstraction that python understands. In CSV case this work is done by pandas.

So for that first you need to LEARN what abstractions python has and how to use them to build higher level abstractions.

It's like being angry at hammer that it cant be used as surgical scalpel. "it's a tool, so it should do what i need"

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

#130

I think the problem was using Node in the first place - most the article is fighting node + NPM nonsense. I personally try to avoid Node + NPM where I can these days, and use Deno for backend stuff since it is much more sane IMO. I've never heard of people putting typescript into a .js file - is that some node thing? Modules in the browser for vanilla JS is a delight and Just Works though. I've started doing it recen…

> I've started doing it recently and it is lovely - no need for a bundler/compile step.

Same here, I'm also doing on-demand module loading, it's an enormous productivity boost for me as a developer because of the shorter feedback loop, zero time spent fighting/configuring the tool chain, and how powerful the debugger in the browser is when it actually works. It's also a massive performance boost for the resulting web page because of orders of magnitude less code, and small entry point/initial page load.

Post reply on HN