This was such a fun read and made me reflect on my journey on the web which started around 2004.
I’ve always been fascinated by interpreters and compilers. I really enjoyed reading crafting interpreters and the NAND2Tetris course (you build a little toy language and assembler!)
HTML is very verbose (thanks to some goofy theories about semantics). I use shortcuts run through a routine to expand them. E.g. @url|label@, and @+imageurl,(parmslist)@.
> Then in high school, I joined the business club which had competitive C++ events.
What kind of high school has a business club with competitive C++? Is/was this common? I graduated 4 years ago from a school in the Bay Area and the closest we had was FIRST robotics or a Data Structures and Algorithms class (which we had to beg for...)
It was Business Professionals of America. At the state competition there were only 5ish people competing in C++ out of >100 schools. We didn't actually have any programming classes or activities within my school.
Honestly I don't understand this at all. HTML is really, really simple. CSS is also pretty simple until you get to layout, then it can get a bit tricky. JS starts simple, but it can get as hard as you want it. Writing a compiler? I wouldn't even know where to start.
Too much probably, I started web dev before CSS was even a thing, but there's still parts of it I've never used. But I stand by it. The basics of CSS: text styling, colours, padding, margins, etc. are really simple. Layout can be tricky, but even then most sites are just header, footer and two or three columns, and that is really simple to do, even without flexbox and grid.
In fact I think it is easier now than ever: cross-browser issues are much less of an issue, and grid and flexbox have made layout easier.
The font styling and padding stuff aren't really the meat and butter (edit: sorry, bread and butter... English isn't my first language) though. They're the kind of stuff you learn on day 1, then from day 2 to day 1000+ everything else remains hard.
"Layout can be tricky" is a... slight understatement? These days almost all web layout is handled through CSS, which means multiple layers of flex and grid, yes, along with axes and media queries and unit scales, pseudo classes, inheritance and priority, animations, transitions, gradients, shorthands, variables... and all of that is before adding in frameworks like Bootstrap or transpilers like Sass or abstractions like tailwind and other newcomers.
Remember how many years it took major browser vendors to reach a decent score on the ACID tests? (https://www.acidtests.org/) That was before flexbox and it was already insanely difficult to properly render CSS. It's gotten orders of magnitude more complex since then.
Cross browser issues are more of an issue than ever, since nobody uses CSS alone anymore there's different permutations of layout engines, permissions, web APIs, JS features, etc.
It's... just not simpler. You used to be able to learn nearly all of CSS in a week or so. Then over the last decade or so, I've been unable to even discover new features, much less keep up with them. Granted I'm getting old too, but man, it's really not a simple language.
Markdown is somewhat simple, but even writing a parser for that is hard. CSS and the DOM are waaaaaay complex. There's a reason there's only like three actual parsers for them (Blink, Webkit, Gecko).
> multiple layers of flex and grid, yes, along with axes and media queries and unit scales, pseudo classes, inheritance and priority, animations, transitions, gradients, shorthands, variables...
You don't need all of that to build most websites, and certainly not to get started. I'm familiar with all of that but I don't remember most of it — I just look it up again or re-learn it as needed.
> and all of that is before adding in frameworks like Bootstrap or transpilers like Sass or abstractions like tailwind and other newcomers.
Yeah, don't do any of that until you've mastered basic CSS layouts.
> You used to be able to learn nearly all of CSS in a week or so.
You can still learn as much in a week as before, and you don't need to learn it all to start being productive. If you want to be a professional web developer, then yes, expect to spend more that a week learning CSS; if you just want to build your own blog or hobby site, then you can learn enough in a week to build a nice site. CSS is not a simple language, but the basics are simple, it's easy to get started, and the learning curve is not too steep in my opinion.
It makes a bit more sense once you realize the author's story begins around age 10/11. (Also not strictly a compiler, more an interpreter.) Clickbait headline for a fun nostalgic story of learning to program.
I read the article, but it still seems like he went to a huge amount of effort to avoid a little bit of effort.
> my website layout would shift around in seemingly unpredictable ways when I added more content
Yeah, that can happen if you build tricky layouts. Doesn't happen if you keep it simple.
> The tags were cryptic.
Wot? They are mostly plain initialisms or acronyms. Even 'div' which everyone says 'what the fuck does that even mean?' just stands for "document division".
Ah good times. Trying to design a better language than Pascal, that one afternoon, with a friend, in highschool. I remember the hubris. World was ours.
Neat story! Also, neat to see someone mention Jack Crenshaw's Let's Build a Compiler series; that was one of the first resources I used, when I started getting interested in compilers.
19 comments
[ 0.18 ms ] story [ 52.3 ms ] threadI’ve always been fascinated by interpreters and compilers. I really enjoyed reading crafting interpreters and the NAND2Tetris course (you build a little toy language and assembler!)
> Then in high school, I joined the business club which had competitive C++ events.
What kind of high school has a business club with competitive C++? Is/was this common? I graduated 4 years ago from a school in the Bay Area and the closest we had was FIRST robotics or a Data Structures and Algorithms class (which we had to beg for...)
In fact I think it is easier now than ever: cross-browser issues are much less of an issue, and grid and flexbox have made layout easier.
"Layout can be tricky" is a... slight understatement? These days almost all web layout is handled through CSS, which means multiple layers of flex and grid, yes, along with axes and media queries and unit scales, pseudo classes, inheritance and priority, animations, transitions, gradients, shorthands, variables... and all of that is before adding in frameworks like Bootstrap or transpilers like Sass or abstractions like tailwind and other newcomers.
Remember how many years it took major browser vendors to reach a decent score on the ACID tests? (https://www.acidtests.org/) That was before flexbox and it was already insanely difficult to properly render CSS. It's gotten orders of magnitude more complex since then.
Cross browser issues are more of an issue than ever, since nobody uses CSS alone anymore there's different permutations of layout engines, permissions, web APIs, JS features, etc.
It's... just not simpler. You used to be able to learn nearly all of CSS in a week or so. Then over the last decade or so, I've been unable to even discover new features, much less keep up with them. Granted I'm getting old too, but man, it's really not a simple language.
Markdown is somewhat simple, but even writing a parser for that is hard. CSS and the DOM are waaaaaay complex. There's a reason there's only like three actual parsers for them (Blink, Webkit, Gecko).
You don't need all of that to build most websites, and certainly not to get started. I'm familiar with all of that but I don't remember most of it — I just look it up again or re-learn it as needed.
> and all of that is before adding in frameworks like Bootstrap or transpilers like Sass or abstractions like tailwind and other newcomers.
Yeah, don't do any of that until you've mastered basic CSS layouts.
> You used to be able to learn nearly all of CSS in a week or so.
You can still learn as much in a week as before, and you don't need to learn it all to start being productive. If you want to be a professional web developer, then yes, expect to spend more that a week learning CSS; if you just want to build your own blog or hobby site, then you can learn enough in a week to build a nice site. CSS is not a simple language, but the basics are simple, it's easy to get started, and the learning curve is not too steep in my opinion.
> my website layout would shift around in seemingly unpredictable ways when I added more content
Yeah, that can happen if you build tricky layouts. Doesn't happen if you keep it simple.
> The tags were cryptic.
Wot? They are mostly plain initialisms or acronyms. Even 'div' which everyone says 'what the fuck does that even mean?' just stands for "document division".
Yeah. That’s the pivotal part. The story is about where that pivot took him.