Targeting developers who are just starting out is a cute concept but having to decipher the ramblings of a madman, be it in code or documentation, is a pretty standard part of the job.
615 karma · joined May 28, 2019
Targeting developers who are just starting out is a cute concept but having to decipher the ramblings of a madman, be it in code or documentation, is a pretty standard part of the job.
I don't think you quite got the idea this article was trying to convey. Here's a simplification:
Don't make simple things look hard.
Hard problems require convoluted solutions, however those solutions can still be broken down into simpler steps. Don't obfuscate the simplicity, allow all the simple parts to work together to create something complex.
Certainly. The things you can do on the web have vastly increased, but the things we actually are doing are mostly the same. Read some text, make an account, login, submit a form, make a payment, upload a file. That's what the vast majority of the web has been and still is, yet the path you take to get there is many times more complex and the user experience hasn't proportionally gotten that much better. Arguably, it's gotten worse.
I didn't base my response on anybody else's words. I've been around the web since the good old days where jQuery was the norm and everything had a phpBB forum. It's coming from my own experience and observations.
> Will this new thing achieve at least 80% of development speed?
You're so concerned with development speed, yet you're rewriting the same thing in a new framework every 2 years.
Websites do more or less the same thing they did 15 years ago but they are now 20 times more complex to develop and maintain. A good amount of developers would rather donate a kidney than write CSS. Accessibility is a hack. Performance is getting worse despite us having better than ever hardware. We're spending large amounts of time reinventing the wheel. JS is a horrible, bare bones language which is why you can't get anything done without 100 packages.
It's time to move away from HTML/CSS/JS. They worked great for as long as they did but instead of further contributing to the mess that they've become, we should be looking into alternatives.
You mentioned that frameworks like React make it simpler to get better performance but based on my observations it's quite the opposite and React is often a double barreled gun where one of the barrels is constantly pointing at your feet. With vanilla JS (not the one from this post) you have to put effort to get everything to update properly. With React you put effort to get the least amount of things to update. It's not even about DOM size but about managing state and how much code gets run on state change.
To give you an example - Reddit is a simple website. You have a list of posts which are either text, image, or a video and each of them has comments. Absolutely nothing complicated about that, yet the performance on their React frontend, even with all analytics JS and ads blocked, is horrendous. You would assume that at Reddit's scale they'd be able to hire competent React developers.
We struggle to render a few boxes and some text under 16ms while games with vastly more complex sound, network, physics, UI and whatever else systems render frames in < 8ms at 4k.
Completely valid point, I was asking purely out of curiosity since this isn't my area of expertise but I find these kinds of vulnerabilities intriguing.
What about `H(s || m || s)`?
You had me until this part. If those 3 were meant to build rich GUIs we wouldn't have new JS frameworks and a load of bundling tools coming out every year. They were meant to give documents structure and style, that's it. We molded them into the monstrosity they are today.
The appeal is not that they're a pleasure making GUIs with, it's that you go through the nightmare once and it works everywhere, rather than going through 3 different nightmares.
Search rarely returns credible results and I find myself adding 'site:reddit.com' frequently to at least get some organic discussions about things rather than articles which look like they were sponsored and artificially inflated to the top. They've turned into a joke about releasing something and killing it off a few years later. Android is a nightmare for developers (and users) with how they handle API changes and the Google Play store as a whole. Any kind of customer support is non-existent in basically any of their products. Their hardware is good but software gets worse over time and stagnates (their smart home ecosystem). I still don't trust them for a second with my data.
Gmail is fine, Maps are fine, YouTube is... well, we don't really have a competitor and nobody wants to switch because they wouldn't have access to a large audience. Whatever they release I have no faith in it, not with it keeping my data, not with its longevity, not in its reliability.
We live in an age where attention is a valuable currency and most people would likely leave your site if they can't quickly find the thing they're looking for. The fewer things you have on your screen at a time, the easier it is for them to find what they're looking for. It doesn't apply everywhere but I think it applies to a good amount of cases which is why lots of white space has become the norm.
There's a reason we have a character limit per line when writing code - it's much easier to read and understand short chunks of vertical text. Personally, I find it far more comfortable reading text which doesn't go above 600-900px in width and this has been a well known UX/UI guideline for the last 10 years. Having your eyes go from the far left to the far right of your screen is also very straining on any >21" screen.
Why are so many people against white space when it hasn't been overdone? Obviously "overdone" means different things to different people but in this case the information that matters is still pretty dense.
React is everything the web (in its initial conception) was never meant to be.
HTML was meant to be used for static documents. CSS (single file, linked to by all documents) was meant to add styling to all those documents. JS was meant to add simple interactivity to documents. Navigating between documents reloads everything and no state is kept (other than user sessions of course). We broke every single one of those concepts and the way they were meant to be used.
Now, our HTML consists of a single index.html with a div#app and primarily content in the <head>. Elements are entirely generated by JS. Most of the time you just load a single big JS file that contains everything and navigating just replaces elements, state-wise you're still on the same document. We want all kinds of fancy CSS features that won't be implemented for another 25 years so instead we use transpilers. That is, if we don't include our CSS in the JS. Did I say JS? I meant JSX, because we don't even write HTML directly anymore. The point is, we don't use any of the 3 the way they were meant to be used.
We've built layers on top of layers of abstraction to be able to add a level of interactivity that was never meant to exist on the web. Instead of coming up with a new way of building actual applications that meet all our needs, we keep (poorly) patching old technology to get it to play nicely with our modern needs. It's a constant fight and a gigantic waste of everyone's time. We can do better.
I miss those days.
I think the amount of front end building we do for the web nowadays is absurd. We transpile everything - JS, CSS HTML, and then we bundle them in odd ways to circumvent all kinds of issues. The way we make webpages is so disconnected from the technologies that browsers offer us.
Makes you wonder when people are going to realize that we're way past serving static pages and don't need the next big front end tool, we just need a better way to run actual applications in the browser.
Key word here being _different_. Different should not be the default. That does not mean we should all be forced to edit text the same way, it just means that the most widely used way of editing text should be the default.
For the most part we have agreed on what the standard way of editing text is in GUI's. nano has its quirks but at least it follows the most widely accepted standard - if you're inside a text editor and start typing text, the text gets appended and magical things happen to your text only after you press a combination of keys.
Note that I specifically mentioned text. We've all agreed on how to write text, we've all agreed on how to read text, why can't we all agree on how we edit text? Text is a universal standard, games are not. Your game can have whatever keybindings it deems sane but the second I click on a textbox to enter my name I expect my keybindings to work because I'm no longer in the game's context, I'm inside a text context.
Using the user's preferences is a sane default but it's just that - a default, capable of being altered. That default might not be the most intuitive for your specific application and you can let the user know there's a better alternative but at least that default doesn't completely paralyze the user until they've taken the time to learn your specific way of doing things, as is the case with Vim.
> I feel like nano shipping as the default editor is a step-back
Not sure why you'd say it's a step back after giving a very valid reason for why it's a step forward.
Editing configuration files as a beginner can be frustrating on its own. The added friction of fighting with your editor when you just want to change a single line is not something I wanted to deal with.
System-wide does not imply unconfigurable, it just means that all programs derive some of their behavior from an external source.
If I want Ctrl+P to paste text across every single application that accepts text and I only have to configure it once in one place, I see that as a win.
First thing that came to mind is that when this technology becomes slightly more refined, malleable and commercialized it's very likely that the first people who lose their jobs are going to be customer support staff.
Just saying something is beneficial for your health without knowing the method of consumption is like saying sunscreen is good for you without mentioning it's supposed to go on your body and not in your mouth.
Don't get me wrong, I'm all for having higher food standards and healthier foods, I just don't think it'll help with obesity as much as you'd think.
If you're making an actual application (think Discord/Spotify) then yes, it becomes a necessary abstraction. Your personal website or news website (or many others) using React is a waste of my bandwidth and CPU cycles.
And that leads to a worse user experience in many areas. You use it for free but it sucks and you sacrifice your data. I'd honestly rather pay $2-4/month for a social media that doesn't suck and doesn't harvest my data.
Imagine if websites could use your camera the same way they can use cookies and gave you the promise that they won't use it just because you clicked a button made by them. Ridiculous.
If you're worried about cookies just install Cookie AutoDelete.
* https://addons.mozilla.org/en-GB/firefox/addon/cookie-autode...
* https://chrome.google.com/webstore/detail/cookie-autodelete/...