mrhands

Sexy game(s) maker

  • he/him

I do UI programming for AAA games and I have opinions about adult games


Discord
mrhands31

wavebeem
@wavebeem

A discussion of why people hate JS, Electron, and the web. Also a plea about how excessive negativity hurts you and those around you.

Read on wavebeem.com

—OR—

Read on cohost...


mrhands
@mrhands

I've been in AAA game development for over ten years and specialize in programming user interfaces. I cut my teeth on Scaleform (built on top of Flash), and since then I've worked with incredibly shitty custom frameworks and amazing custom "no code" visual scripting frameworks. Still, I'd give it all away for what I'm using currently, which is an HTML 5 renderer.

While the renderer isn't perfect (I curse its lack of support for display: grid on a daily basis), it has allowed for incredible things on this game. Instead of attempting to Google obscure ActionScript 2 issues (me, circa 2013, when AS3 was nine years old), I can just go to https://css-tricks.com and npm install maek-gaem. Instead of attempting to hire some mythical unicorn programmer who knows C++ and loves visual scripting for some reason, we've been able to hire four JavaScript programmers and teach them C++.

And the best part of my job now? It's all open tech, baby!!


You must log in to comment.

in reply to @wavebeem's post:

i'll add that i didn't expand too much in the JS area, but i want to stress that i'm not implying if you don't like JS you must be bad at it. i know that's not universally true, it just feels like a trend i've seen.

i don't really know my history that well, but i can totally imagine there being a cycle of "new technology has a promise for a brighter future -> new technology is used in borderline-or-actually evil ways for the short-term benefit of a few powerful entities -> people decry the technology and search for something new and unsullied -> back to start" that has lasted for a while, at least since the industrial revolution.

but yeah, lack of nuance (which gets clicks/short term gains) has really ruined discussion about how tech is used, instead opting for the dramatic "throw out the baby with the bathwater" and it sucks. brings me back to the masto thread criticizing cohost for...simply operating?

we can make something good, though it may be hard with the goliaths out there stomping around and having tantrums over 0.01% stock drops or smth.

yes!! this!!!! like we're not going to make web2 a full new successor to the web. i mean people have but they haven't caught on. and the amount of dollars and hours gone into making the web absurdly capable are ignored at your own peril.

i would love to see a "return to form" and using more of the original web technologies (server side html [be it dynamic or static], optional js, plain forms..., not being an SPA) like a lot of people suggest.

i feel like i'm constantly misinterpreted here where my point is "i'm bored of these negative people" means "i think they're wrong"

like no they usually fucking have a point. but hearing the same shit constantly and just dumping on things ruins my own mental health, so i limit my exposure to this sort of shit. i care deeply about the web and soaking in negativity around it really fucking sucks.

closely related, I feel, is the thing where brogrammers say things like "if you use JS/work on frontend you're not a real programmer and you should just pursue your real passion which is watching the latest Netflix series" (real recent example)

to be clear I'm not saying that everyone who hates JS (who are in good faith) is also one of those people (who are brogrammers); but the sentiments feel somewhat close

haha that is quite the example!! wow

i agree with you that there's some uncomfortable overlap there, but that this isn't a 100% situation.

anyone who pulls "no true scotsman" needs to reevaluate themselves severely about their priorities in life

Yeah, the vitriol is... A Lot.

I'm still new to web dev (not in years, but in skills - learning takes a long time when you have no spare energy). I tend to approach JS from an accessibility perspective. A lot of JS things aren't accessible, but a lot of HTML and CSS out there on the web isn't either - that's on the developers to use them properly/wisely, not an inherent feature of the languages. And there are some cases where the JS-free option is less accessible, especially for screen readers.

I don't really like SPA frameworks, because it seems like it's easier to make them even less accessible - it's still a matter of skill, knowledge, and time invested, but when your framework doesn't by default announce "page" changes to screen readers or manage focus in expected ways, that's a problem, imo. We shouldn't be making things that break stuff that the browser does by default with regular sites and that people expect when trying to navigate.

really appreciate the callout that indeed HTML alone does not suffice for a modern accessible UI, sadly. you can make an unmodern accessible UI, but JS solution with ARIA are often better than weird "CSS hacks" that trip up screen readers.

yeah, i think SPAs in particular were probably the single worst change to web development. i'm hoping that screen transition tech in browsers will help push us back to regular multi-page applications a bit more. because SPAs have to rebuild too much of the browser. but indeed sometimes they are the right tool. my personal blog is plain html and css. my pokemon site is a full offline ready PWA. using the wrong tool for each job stinks!

This a great, well-reasoned post! I am guilty of being a web frontend/JS disliker to some degree, or at least someone who gets frustrated with web frontend development more quickly than backend/infra work. BUT the ecosystem has improved a lot over the past five years or so. TypeScript is pretty good. React is really mature and stable. NextJS looks good (haven't had a chance to actually work with it yet).

imo, the big legitimate beefs that remain are mostly ones you've mentioned: The way that most companies use the browser as an excuse to shove in all sorts of cross-site tracking and other mostly useless analytics garbage that makes sites dogshit slow is the worst. There's also all the lazy ways that web frontend manifests itself via sites that look bad on the wrong screen size/orientation (I know from experience responsive design is a pain to get right), do bad lazy loading stuff with endless spinners and the DOM re-rendering in the middle of trying to do stuff, or clutter up their UI with pointless bullshit.

I hate the elitist "not real engineering" thing that gets thrown at frontend engineers, though. All the ways in which web frontend can be done poorly are only reasons to respect frontend engineers who actually know their shit even more.

yeah, between the ongoing privacy war... and rushed/unskilled/sloppy websites abound, i really do sympathize and it pains me even more knowing i'm in the industry that shovels this kind of crap.

like you said, i try my best to do right by everyone as much as possible, and most corporate structures make it frustrating to do anything right.

i sincerely hate that so much of the web has gone to SPAs but not because SPAs are wrong!!! because they're easier to make wrong. a lot of sites would be better with more server side shit and a lot less fancy stuff. the problem is that changing server side to client side stuff when you want to get fancy takes so much longer than just taking shitty client code and making it less shitty later... shrug

i think that's why stuff like Next.js is really promising. it's the "isomorphic JS" fad but actually implemented fairly well (though i certainly have my qualms with it)

again i want to stress that venting is cool and good and often highly necessary among friends. it's incessant negative attitudes and inability to talk in nuanced ways... or even just avoiding saying "its shit" or using violent language constantly lol. i absolutely do complain about the web and there's no way i could be a decade in to this career without complaining lmao...

also for anyone else reading... simply disliking something is not the problem here. i don't like C or C++ and i would never take a job writing it. but i don't waste my time yelling at people for using C or C++ or saying that every operating system is bad for using it or every language that has C interop is bad. computers are built on layers of things that often have lots of problems, but rewriting all of them to be "better" is way too expensive to be worth it.

I understand the frustration people have with Electron but I still can’t actually bring myself to care.

Even the excess of “ship a whole-ass browser in order to run a little toy app” is for me greatly overshadowed by the upsides. I can (a) write actually portable code that I can reasonably assume will work on any of the 200 devices and OS combos I don’t own but somehow still have to support, and (b) reasonably assume that the next time you update your OS my software won’t suddenly stop working.

Shipping an entire runtime is a feature. We won’t realize it for several decades, but I believe Electron apps will manage to stave off bit-rot better than a lot of the alternatives precisely because they ship a whole-ass browser.

I hope so! Electron is just one solution though it's definitely the most well known. My personal wish is that browsers integrated websites directly as apps in a way that was super straightforward for end users. The OSes can't easily break web compatibility without causing a shit storm anyway. and if the OS itself managed the web engine it could do fancy preloading and other tricks to make first boot faster im sure.

I know that electron let's you ship node modules and all that which is a different story though. and this sort of compatibility layer like electron to make web apps exist is probably bound to happen forever since it can exist outside of web standards and evolve much faster without OS approval and all that.

but yeah it definitely feels like people haven't experienced first hand what the alternative is like lol. I don't blame them for that. it's just that seeing things on the other side changed me

Given a long enough time-scale, I wouldn't 100% count on browsers not to break compatibility.

There are some examples in recent memory of browser vendors trying to remove features, fix bugs, or patch security vulnerabilities in ways that break old sites that came to rely on particular behaviors. (E.g., Chrome deprecating 'window.confirm')

That said, I do share your wish. Progressive Web Apps have a bit of a "discoverability" problem on mobile, and have yet to materialize at all on desktop as far as I know. Maybe for now, Neutralino can help fill that niche? I may try it out for my next project (to the extent that I'm willing to risk some bit-rot).

It bothers me to see people say that they hate JS or SPAs or some other web thing. i've written websites like this which aren't terrible, and i'm confident that the fault lies entirely with frameworks like react, and just bad, bloated design in general.

it's very possible to make an SPA website which is pleasant to use! if you just.. write the actual javascript, if you don't use massive bloated libraries and frameworks, etc.

it's disturbing to me, the amount of programmers who have embraced these awful systems, because I haven't seen a single truly comfortable website made with them. for some things, it's good enough, but i just.. really wish people cared more sometimes

it's one thing if you're making a website which people use occasionally for a few minutes. but for something that people spend significant amounts of time on, that they use to communicate with friends, a place where people have to live?

I don't think any of these systems are acceptable. sometimes you need to avoid frameworks, to reinvent the wheel, to fully understand what your site is doing internally, in order to make something that's fast and comfortable and relaxing to use.

i'd like to respectfully disagree. i'm not react's biggest fan, and frankly i think hooks are not very well designed, but i think it's reductive to say that switching to vanilla JS will solve your problems.

i maintain the site pokémon type calculator which is a full offline-ready PWA using react and a few other libraries.

total content loaded on the main page is 239 KB compressed (1.17 MB expanded) at time of writing. on a simulated "regular 3G" connection (per firefox) this takes 2.63 s to load assuming the cache is completely empty (111 KB of JS, 4 KB of CSS, 3 KB of translation JSON, 113 KB of pokedex data JSON)

the first page of the pokedex loads 15 images for a total of 25 KB (average of 1.6 KB per image). these are of course cached by the browser on subsequent loads, though i do not put them in the service worker cache for space concern reasons (there are over 1000 images...)

a subequent page load capable of using the cache transfers literally no data from the server, as the entire page contents are served by a service worker.

i realize that these libraries add JS parse time to your page, and frankly i'd go back and rewrite this in something smaller like Preact if i had the energy, but i don't right now (nobody pays me to work on the site lol)

there are tricks i could use to further optimize initial download size on the page, and i could trim some libraries out, but most page operations are quite snappy and i've had countless people tell me the app may as well be native to them, especially after using "add to home screen" to install it

i definitely agree that libraries like react make it more difficult to reason about the performance of your website, and overall most companies are not paying their engineers to optimize literally anything ever. this sucks. i just dont agree that "dont use react" is a reasonable conclusion from using bloated websites.

if any one thing is most to blame here, i think it would be the rise of package bundlers like webpack (and browserify before it) that have completely aliented most developers from the code bundle size of their application.

perhaps you would disagree with me that my site is comfortable to use still. if that's the case, i think we can just agree to disagree on the matter.

I agree with many points yet disagree with others, those others being at odds with the points of yours I agree with. I'm not expecting people to be perfectly non-hypocritical, but I think it's good to have gaps pointed out.

I agree that hate rots you, etc and so we should channel or transform that energy into something else. I also agree with the software concept of "worse is better", though as presented in your essay I'm not sure of your application of the term (and I think it's problematic to just say it in a title, as it's kind of bait, which IMO undermines your arguments). I also agree that Electron was inevitable. That doesn't mean people have to be happy about it. Historically, totalitarian governments are also inevitable. So, I'm not sure where your argument is going with that. Maybe just to inform?

I agree that, in general (not just in computer science/etc), reducing problems to "this is bad let's hate it" is bad. I agree with your idea of a nuanced approach, and that it's lacking in many discussions. As such, I disagree with your statement against the people who say web development is a nightmare, saying it's just their attitude. That is ignoring the nuance of why people are saying it's a nightmare, and is reductive to their plight.

Compared to almost anything else you might want to do, whether within software development or even outside it, web development as a whole is, relatively speaking, a nightmare. That doesn't mean it was a mistake, and I am not agreeing with people who are shouting that it is unsalvageable. But we should consider factors such as the learning curve, the influence of corporations in all aspects of developing anything on the web, the breadth and depth of knowledge required simply to create the most basic of items, the impossible tasks involved in maintaining web applications, the mental friction involved etc. In my opinion, there is little in this world which can compare. I have written many, many, many systems in many languages in many environments, and none of them come close to web development (which I have also done extensively). I have also learned a great deal of various hobbies and worked many arduous jobs, many of which are considered "a nightmare". They did not compare to web development. It is far and above the worst "voluntary" thing I have ever done, and no amount of "attitude correction" will stop my rational mind from looking at the facts presented to me and coming to that conclusion.

So the nuance here is that there are aspects of web development which are fine and can actually be consumed by normal humans, and then there are aspects of web development which are at such an absurd scope, that are so ridiculously difficult, that are so soul crushing, that people are well within their right to proclaim that web development is a nightmare. Brushing over the problem areas is reductive. Your proclamation that "you just have a bad attitude" is also at odds with your "I'm not saying positive vibes only" comment.

I appreciate your post and your viewpoints. I am not out here to convince you that web development is a bad thing, or that you are not allowed to see it as non-nightmarish thing. I simply wanted to point out what I think is a contradiction in your argument.

Even though we don't completely agree, I want to thank you for being polite in your response.

This blog post especially was an exercise in at least trying to focus my writing a bit more. I think that some of my points come off a bit more easily misinterpreted than I'd like because of it.

The point of the blog post was not to be dismissive of frustrations with the web. I've been doing this for long enough that chances are I've been vocally frustrated by all the things other people are talking about disliking.

My true point was that I think a lot of people spend an unhealthy amount of time dedicated to complaining about things that are nearly impossible for them to change, and that it hurts themselves and others around them. And that in particular an outsized negative response like "kill React developers" is helping nobody and making the speaker seem very rude and immature.

You've covered a lot of points and I want to be clear that I don't have the mental energy to engage with every single one of them, but I appreciate your thoughts nonetheless.

I can't make you like the web and I'm not trying to. If it's the worst system you've ever worked on, then it is. That's an opinion, not a fact. For me, it absolutely isn't. That's my opinion.

As someone who has been doing web development professionally for over ten years and for fun even longer, I get tired of the negativity around something that I've invested so much of my life into. This was a post for me to express what's been exhausting to me.

Trust me that I have no love for Google, Microsoft, Apple, and the inefficient and privacy invasive nastiness of the modern web.

I think that a lot of websites would be better if they used less JS and shipped less code to the user in general. I think targeted ads and JS related ads are strangling the web right now for sure.

Ultimately, this is a blog post about my opinions not facts, and you're welcome to disagree. My opinions don't invalidate yours. It's hard to cover every way every sentence can be interpreted, and invalidating peoples' frustrations is not my goal.

Well, now I'm interested in what you actually like about web development, as I rarely meet anyone who likes web development who isn't just "acquire wealth" people (I don't think you are, which is why I'm interested). I can't think of many redeeming qualities off the top of my head which aren't immediately undermined by a plethora of distasteful qualities. I have also spent nearly the same amount of time being a web developer, I just have the good fortune to not have to do it so much for my profession. If you have the energy, it would be nice to hear what makes it enjoyable and what you think about the less enjoyable aspects of it, and perhaps why they don't affect you as much as others.

And thank you also for your level headed response.

oh yeah, i've turned down multiple offers to buy pokémon type calculator and countless attempts to run ads on it. i have a popular side project that i could absolutely monetize if i wanted to, but i don't. it's literally the most popular thing i've ever made in my life and has literally helped hundreds of thousand of people, if not millions (i use privacy respecting analytics, so real user counts are hard to get).

here's a rough list of some things i like:

  • breadth of ecosystem: because js is everywhere and so is the web, there are many choices. choice can be paralyzing too, but it means that there is frequently prior art i can leverage when solving tough problems

  • fast feedback loop: ok so i've got a project at work i have to run that takes like 45 seconds to recompile and it drives me nuts, but that's because of the mountain of crap that was built that probably me and you both hate. the basic feedback loop of "refresh the browser" tends to be really fast, especially if you aren't using a million compile steps. but even then, things like my pokémon site uses newer cooler technologies like vite with such advanced HMR (hot module reloading) that it updates in less than one second. literally by the time i press save and switch windows, the screen has already updated while preserving my state. this kind of flow state is absolutely mind blowing to me, and seems kind of rare across different programming environments?

  • integrated dev tools in the browser: i've always found CLI debuggers to be arcane and frustrating. and IDE debuggers kind of hit or miss too. for me the chrome and firefox dev tools revolutionized the way i work on code. this kinda goes into "fast feedback loop" too in that i can slap a few things into global variables to test things live in the browser JS console, or edit the CSS on the fly to debug issues. this is massive to me.

  • not controlled by a single entity: at least yet, lol lmao. google will if we don't kick their asses. i haven't been super happy with mozilla lately, but it's better than a duopoly between safari and chrome lol. i realize that still "yay 3 corporate" overlords isn't incredible, but it's better than 1 or 2. in theory we have things like invited experts on panels like TC39 and whatnot to help guide the web.

  • i fucking love css. i've tried many UI toolkits and never found anything that i could work with as quickly and make such incredible looking results.

  • it can be low tech: my personal website has no JS (other than an analytics script and an easter egg on the home page). one of my libraries, 2bit-ui does use JS for page content, but it's entirely vanilla JS and native ES modules. the "publish" command is literally empty and the entire source directory is just copied straight to netlify.

  • it can be high tech: my pokemon site is installable as a PWA and nearly indistinguishable from a native app in that case. it works offline and integrates clean with the mobile UI on a phone. it automatically receives updates too.

  • speaking of netlify: netlify and vercel have been revolutionary for me. the ease-of-use of old school "FTP the files to the server" but with built in CI is like a dream to me. im so glad i get to use this at work now too

  • web hosting and authority is not (completely) centralized: yes AWS has a stranglehold on cloud hosting right now and i hate it. but there are lots of other great options. and i love that authority is based on domain ownership + HTTPS. stuff like HTTPS Everywhere has made HTTPS relatively easy to set up and nearly transparent on lots of hosting providers now. i love that cohost for example can put 18+ content on the site without having to worry about apple slapping them around... because apple doesnt own the web like they own the app store.

  • javascript itself is actually pretty good these days imo: yeah, es5 and earlier were pretty rough, but imo since es2015, and especially es2017 or whatever version added async functions, i feel extremely productive in this language. couple with typescript since i'm a static typing nerd, and i feel like i can write great code really quickly and with a shocking ease in refactoring. certainly more fun than i've ever had writing ruby, python, perl, java, c, c++, or any other language i've used. i'll admit that due to my professinal work js is my most used language by a large margin, so there's gonna be some bias here

  • yeah the web is crusty: but it's crusty in service of backwards compatibility. an actual "web version 2.0" that cleans up the cruft but kills backwards compatibility isn't worth it imo. i would prefer to see more energy focused on browsers giving helpeful developer info messages than deleting features and breaking websites. don't get me wrong tho, i can really go off on some of JS's base design decisions especially related to how operators work, automatic type conversion, and UGH the way that looking up a nonexistent key in an object simply gives "undefined" instead of throwing an error. stuff like that can't be papered over by ES2015 adding class and whatnot, so it will be a wart possibly forever.

without knowing what aspects you find most distasteful, i'm having a hard time guessing which "not so great" points you'd be interested in hearing my perspective on. if you have any specific questions i might be able to answer them though.

anyways i'll stop rambling for now. i can definitely see some potential objections to these points, but i hope it gives you a better idea of the things i like at least. once again, thanks for making this a friendly discussion and not a heated battle. i really appreciate it.

Those are all good points, I don't really have large objections to any of them. Thank you for telling me, it's important to see where I place value compared to other people so I'm not just mad. It's fine to see different value in things, and I'm glad it works for you.

Most of the things you mentioned don't hold as much value for me, so although they are indeed positives when compared against other development environments, they don't outweigh the negatives, which happen to be in places I do place higher value.

For instance, I highly value long term support and stability for my users. I find that is EXTREMELY difficult to do on the web without writing everything yourself, and even then arbitrary decisions by browsers can also just randomly break everything (remember when browsers decided to add the slide to hide url, breaking the concept of view height? Remember when browsers added gestures to everything so now there's a forced 200ms lag to initial touch events? That wasn't always the case, and both of those broke my apps in a massive way). I don't like constant maintenance being thrust on me from third parties changing arbitrary things, and I don't like the idea of my users getting a randomly degraded or broken experience through no fault of my own, I feel like my users are getting attacked. It's why I don't use third party services, they always disappear or decide to start monetizing or change everything to make the experience worse for my users.

These desires also make it difficult for me to get into that ecosystem of rapid development with lots of frameworks and libraries for solving existing problems, because going back to work on apps that rely on those things is usually an exercise in futility. I'm sure you can imagine trying to open up a node app that you haven't touched in 3 years. I find it to be frequently impossible, or only possible with far more effort than it's worth. In the time I spend fixing it, I could've just rewritten the whole thing (and I find that's often what happens, even asking around).

Another thing I value highly is having bugs be my own fault. I can't leave things broken, I can't wait for others to fix things, it drives me crazy. It also drives me crazy to paper over bugs or introduce hacks due to bad design. And it REALLY drives me crazy when I'm trying hard to fix a bug only to realize it's not my fault. Now I just spent hours trying to fix something because I REALLY wanted to get it done, only to have to come full stop for months while I wait for someone to fix their crap (or send in a PR which also sometimes takes months and lots of bickering). THAT wrecks me so much more than small interruptions in flow state; now I have to stew for at LEAST a week on something I wanted to solve in a night. And I know I'm weird about hacks and bugs: IMO adding hacks ARE bugs in waiting, so really you're just adding more bugs.

When the bugs are my fault, I can fix them, so I tend to lean towards extremely well established and stable libraries that have always had a tightly focused scope vs large meandering libraries that solve every problem. I don't even use major database engines, everything I make uses sqlite because it's ridiculously stable and extremely focused. I've run into situations with several major database engines where queries that used to run fast are suddenly extremely slow because (insert arbitrary or extremely-opinion-driven change here). I know how databases work, I can design my own tables and indexes and reason about the performance of my queries, and I don't need a massive team or project lead (or worse: corporate) to decide that the way I'm doing things is "no longer a supported workflow" and change the performance of a database I worked so hard to perfect. I, the developer, know more about my own workflow than the people 1000 miles away from my project. And that's kind of like... the status quo of web development: you are at the mercy of browsers, you are at the mercy of frameworks, you're at the mercy of profit-driven progress. So while that all gives you a lot of great things, the very idea of third parties destroying a thing I spent hundreds of hours on for the sake of profit actually makes me sick. And I get that it's not always profit that changes things, but it's hard to differentiate when it seems like it's most of the reasons.

I'm sorry if that's a lot, and I understand if you completely disagree with any of that being a problem. I know I treat software development differently than other people (it's not better and doesn't make me better), and my desire to have long term support is seemingly at odds with my desire to not have to maintain things forever (at least there I do want to make the distinction that maintenance for my own bugs is perfectly fine, but maintenance simply because of arbitrary changes or bugs introduced by other people frustrates me). There are other, probably more pertinent things I could've listed that would've made for a better conversation, but I think my mind wandered off too far.

Thank you for having this discussion with me, I appreciate the positive things you expressed about web development. Maybe the next time I work on a web app, I'll see those things in a new light and place more value on them

No need to apologize at all. I really enjoyed your comment, and frankly I can't argue with any of it. I have felt every way you mentioned many times before.

I really enjoyed our conversation! Thanks!!

I've been thinking about this post a lot, and I think two major contributions of frustration to JavaScript are (1) abstractions are leaker and JavaScript is inherently "complex" in ways C isn't, which can make things arcane and obtuse, but mainly (2) JavaScript is a 25-year lasagna of design decisions.

But JavaScript has aged well and carefully! JavaScript could have aged so much worse and I appreciate that it didn't. JavaScript could have aged like MatLab

I totally agree that early JS, especially pre-ES5 had a lot of poor design decisions. If we had had a real JS2 and abandoned some of these, it would be nice, but would've fractured the web. Heck, even use strict was problematic for a lot of code. I'm glad that native ES modules enforce it at least. Probably the closest thing we'll ever get to a breaking change in JS.

Early warts aside, I think most things added to the language starting with ES5 have been really smart decisions, and I think that TC39 is doing a good job steering the language towards something far more elegant and productive than it used to be.

You ever program in Lua? It's definitely simpler than JS (as far as I could tell), and has some interesting ES5 energy lol.

I've done so little MatLab that I can't really understand the reference sadly.

I've used Lua aaaages ago modding some games made in the Löve engine, but definitely not in a way I could appreciably compare to ES5.

I'm super lucky to say I've done very little "early JavaScript" (mostly for ZetaBoards/Invisionfree mods.) I'm definitely with you on liking the additions to JavaScript! I'm not familiar with what's exactly "new" and what's "old", but I primarily write "vanilla JavaScript" and I've had no problems whatsoever.

I really appreciate your post and your reply, because I'm learning a lot! (I hadn't heard about TC39 until now.)

Re: Matlab, (at least since 2017), it's simply a bad development experience in incredible ways, and the edges get sharper if you stray from scientific-computing usecases. (Using "i" for an iterator can break the imaginary-unit definition, one-function-per-file, etc.) The lock-in effect is what really keeps it ticking.

The main takeaway is that Matlab provides a comparison point, and I really appreciate JavaScript for all that it is.

That's cool. I love LOVE as a game engine!!

If you know Lua enough, I do think it's a fantastic "alternate timeline" language to contrast with JS, but it's not a big deal.

I only used Matlab for a few months, and I was already quite comfortable with "traditional" programming at the time so it felt very strange to me haha. I had never heard about the i bug which frankly sounds extremely frustrating. And I remember thinking the one-function-per-file convention was quite limiting. The same way as Java with one class per file. I've noticed many people doing React dev insist on one component per file, which I don't 100% agree with either. But anyways haha.

Pre-ES2015 we only had var no let or const . And class didn't exist so everyone made "classes" in slightly different and incompatible ways. Lack of array and object spread made working immutably with data structures a lot clunkier. But I still had a lot of fun with it. There was certainly a greater simplicity in the JavaScript of ten years ago, though I think it's naive to assume something smaller and simpler is always better, lol.

Yeah TC39 seems pretty cool. I like how open a lot of their stuff is. I don't know much about the standards processes for CSS and HTML, though I like that for the most part we get to see draft documents and so much work is done openly and leaves room for comments. I think it's what WHATWG HTML repo on GitHub that I'm subscribed to on a few topics of interest right now, and anyone can hop in and chat about the future of the web. Granted most people will not have the time and expertise to keep up, but I like it in theory at least. Of course there are more private video calls that not just anybody can join, but I feel decent about the leadership of the web. Even if Google loves to throw their weight around with Chrome and Just Do Shit and Just Ship Shit no one else will probably ever ship (Web USB? Web Bluetooth? Surely other things I'm not thinking of).