*whispers* Did you know that if you want to make a website, you can just… make a website? https://twitter.com/chrisoncode/status/1265344822388252672
There's no way to put this that doesn't sound a little snarky so I'm just going to lean into it: nobody is forcing you to use any of this crap.
Believe me, I get it. Who are you, if you aren't using a framework? What will people SAY. Maybe you've drunk the kool-aid of the new shiny framework and you think It'll Make This So Much Easier even though deep down you know the truth, which is that It Definitely Won't.
I wrote this talk once. It's made of: tons of CSS, lots of HTML, a bit of JS. Nothing fancy, really. But it works, it's pretty, and it's reliable as all hell. https://github.com/queerviolet/lfm.talk
For my next talk, I used the same approach, but I did it The Right Way™ using React®

You know what that did? It sucked is what that did.

There was more code which didn't work as well. Easy things were now hard, and I crashed tab ∞ times more than when I just… made a website.
And the thing is, the experience of making a website in 2020? Is SO MUCH BETTER than in 2001.

Remember Sublime Text? Fuck Sublime Text. Fuck VS Code! The browser devtools are a whole IDE unto themselves now. You can edit your CSS visually, and it's just… already saved.
Perhaps you're surprised to learn that the devtools do this! That's because they DON'T do it when your CSS is a string in some TS that's context'd and built & bundled and injected into a <style>.

You can't figure out where the hell the styles are coming from and neither can they
This thread is admittedly a bit rant-y. I'm not here to shame @chrisoncode or anyone else who feels this way. I get it. When you have a hammer, etc. And we have SO many hammers to pick now.
hundreds of ppl replying to chris' thread: haha same, I too smash my face with hammers whenever I try to make something. I miss mallets.

me: nobody has taken your mallets. They're RIGHT THERE! Please stop hitting yourselves in the face! https://twitter.com/chrisoncode/status/1265344822388252672
This isn't even a situation like in, say, game design. Technically, the tooling for games is much better now. But the expectations are also higher, so maybe it's a wash.

Every. single. thing. has gotten easier about making a website by hand.
Layout? CSS Flexbox, Grid, and Shapes

Visual effects? filter, <canvas>, <svg>

Fonts? Web fonts.

JS? Is pretty much the same across browsers now.

In fact, browsers update much faster these days, so browser compatibility is massively better across the board.
And are people expecting MORE from websites now?

Here's arstechnica in 2001 vs today. Today's design has more photos, but it's SIMPLER. And I guarantee you could spruce up the text-heavy 2001 design and launch it today as a "revolutionary" "content-forward" blah blah blah
Maybe some of you reading will take all this to heart and decide to make your next soon-to-be-abandoned project a plain, hand-coded site.

But a lot of you are still going to try out some new bullshit named after a tree or dinosaur or whatever and it's probably worth asking why.
Some of it's just marketing. "Try Maple, it's Sweet!" And we fall for it, because it IS sweet, it does make some things easier. We get the thrill of learning something new, a new way of refracting familiar concepts, the excitement of a new relationship, and maybe it even lasts!
It's very unlikely that the project itself lasts. Most projects don't, and My First Maple Tree is particularly unlikely to be durable, but that isn't really the point, and as long as you're honest with yourself, that's fine. I learned everything I know making doomed projects.
There's a dark side to this framework marketing treadmill tho, and it's this pressure I see a lot of folks under to Keep Up With The Industry.

Oh, you know React? React was SO 2019. Now we're all using Vue. I mean Svelte. I mean Elm. I mean…
The pressure to keep up is particularly bad on new grads. And truly, I don't have a great answer. My strategy is to mostly ignore the PR spew. If something is really blowing up, I'll spend a few minutes glancing at the docs and internalizing the patterns.
I am aware that this is not exactly helpful advice. It's like a chess grandmaster saying, "Chess is easy. Just look at all your moves and pick the best one."
Not saying I'm a grandmaster coder, but I have been coding for almost 30 years, so a lot of the fundamentals are just IN THERE, y'know? But the upload took 30 YEARS, and not to put too fine a point on it, but none of us may have that long.

So I don't know how helpful I can be.
But I'll say this anyway: I did not learn what I know now by learning piles of languages and frameworks. I learned what I know by playing around. Trying to build too-ambitious things with paltry tooling. Doing shit the Wrong Way. Intimately learning the boundaries of the system.
That's how I can glance at a web framework and know what's happening so fast. Literally the moment I saw a sample of React Suspense code, I knew they had to be throwing Promises. Why? Because there is nothing else they could do that would possibly work like that.
It's ALSO how I know, even though I still can't explain it, when Rust's borrow checker will be happy or angry. The system isn't just the web, or Javscript, or Rust, or macos. It's the whole thing: the machine, cores and memory, network, information and its locality.
The system is big, but it's not actually HARD to understand. There's a logic to it, but I think it's harder to see from atop layers and layers of abstraction.

So sure, build whatever you want with whatever tools you want.
Just remember that you can still open Notepad and make a website and nobody can ever take that from you.
You can follow @rakshesha.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: