DEV Community

Cover image for The web without the web
Laura buns
Laura buns

Posted on

The web without the web

1.

I built my first website when I was 14? It was a fansite for the Sims. It used tables and the colours wouldn't pass any accessibility (or aesthetics, for that matter) checklist. If I remember correctly it was a combination of making the visuals in dreamweaver to then copy/paste the generated HTML and CSS into a PHP backend that I made myself (you can imagine how that looked on the inside).

This was a very important website not just because it somehow got relatively popular but it was also important for me as it became my personal playground. I taught myself CSS to make the layout nicer, and in the process I picked up enough design skills to be employed as a designer for 4 years. I started doing banners and animations using Flash (from macromedia back then!).

The web 2.0 era arrived shortly after and I started hacking together mooFx scripts to make things move and be cool. I wasn't entirely sure about what was going on in my code and I missed to PHP standard library dearly but I powered through. Eventually picked up jQuery and for a buncha years that was all my understanding of the DOM really.

I learned more about HTML and CSS. I learned how to write semantic and accessible code. I learned how to scale up CSS architectures to prevent spaghetti code.

For a while I had this personal website that was like a Mario World stage and everything moved and it used CSS animation and some JS sprinkles to add infinite clouds and stuff.

I fell in love with all the cool shit I could build.

2.

I eventually became a somewhat respected frontend 'engineer'. I do talks and stuff. LinkedIn recruiters actually put effort in their greeting messages. It rules. I'm just bragging at this point. Stop me.

Now, despite all this you may have noticed I'm missing a lot of things from my intro to an engineering career.

I'm not really sure how functions map to mathematical constructs. I actually dropped out of maths when we started doing that algebra where instead of equality you deal with stuff like 2*n > x/3 and you have to find out what range n and x are (I have no idea if this particular one is solvable, I just came up with it)

I'm still just wrapping my head around the more complicated types you can do in stuff like typescript. For what is worth I don't use types in personal projects. I think they are good for making code self documenting and thus, good for teams. Too abstract though.

For a long time I never used any real frameworks for web development. I totally slid past the angular and ember era because I considered unacceptable to have a site not work without JS enabled. Writing your entire frontend in javascript felt incredibly unnecessary when we have semantic HTML.

3.

I love React. I love React because I know enough about scaling up HTML and CSS that I understand the value of single file components. I like the way CSS-in-JS gives you the enough abstraction to still use tricks like blind owl selectors while also giving you the full power of using JS to do stuff like container queries. I love how server side rendering React apps is trivial because it all compiles down to vanilla HTML rather than web components, effectively turning it into a kickass template engine that can come alive. I love the way you can very effectively still do progressive enhancement by using completely semantic markup and then letting hydration do more to it.

I also hate React. I hate React because these behaviours are not defaults. React is not gonna warn you if you make a form using divs and unlabelled textboxes and send the whole thing to a server. I hate React because CSS-in-JS approaches by default encourage you to write completely self contained one off components rather than trying to build a website UI up as a whole. I hate the way server side rendering and progressive enhancement are not defaults, but rather things you have to go out of your way to do.

But what I hate the most about React is that it paves over the land of HTML, CSS, and JS progressively layering on top of each other and replaces it with 'efficient' and 'clean' code.
Compared to vanilla HTML it's very easy to add type checking to a React app to really make sure you can't accidentally add "12" + "8" because how else would you know you aren't getting 20 here. By running your app? Absurd. It's also very easy to automate tests by taking component snapshots and effectively freezing them in time, evolving CSS layouts be dammed. With CSS-in-JS you can ignore those pesky CSS behaviours like the cascade. It's not like it's the first letter in the name or anything.
Not having that much first class DOM manipulation and a mandatory build step anyway means engineers can finally start paving over the ugly duckling and liability that is javascript for other languages, based on the purity and elegance of mathematics, like Elm or Reason.

Some people think these are good things. Other people think they are a masturbatory exercise in service of nerds finding actually coding websites too boring and needing to spice it up.

4.

I'm a surprisingly fast learner. I have caught up. I know my stuff around all this shit. I'm also a bit of a rarity. The best frontend developers I know are at a complete loss right now.

Most modern frontend codebases are no longer about HTML and CSS. In fact they are so far removed from it that the idk 20? people total who still care about HTML and CSS and can code websites and haven't become product designers or whatever have no clue where to even start.

Our 'clean' and 'elegant' frontends are now often more clean in the back than in the front now. Our perfectly typed 20 file redux store supporting a form that doesn't work with javascript off. Our CSS-in-JS modules with typed props hiding spaghetti CSS with completely static props as an implementation detail.

We are building toilets with world-class plumbing that people can't then sit on. And the people who know how to fix the toilets have no clue how to fit a toilet into our plumbing.

The designer that knows CSS can't update some colours in GitHub without breaking half of the tests. The Product manager can't replace a bunch of words in a page without figuring out the PropTypes of the map component. The accessibility expert can't replace divs with buttons because the visual regression testing says that Opera mini in Windows Phone 6.5 renders a border about them and we can't merge changes until it all goes green. The frontend dev can't implement an accordion (honestly, that one might be for the best) because the guy who's super into types won't let her store state outside of redux.

In elevating frontend to the land of Serious Code we have not just made things incredibly over-engineered but we have also set fire to all the ladders that we used to get up here in the first place.

5

I think a lot about how I started coding. About how I developed an understanding of the web. It was wild. I didn't touch code for ages while still making cool websites. We just made things work.
The web, by design, always has had a bit of 'best effort' sprinkled all over it. You would make your HTML accessible and semantic and then write your CSS in a resilient way so when it inevitably breaks in a different/older browser the page still works. And then you sprinkle your javascript on top and if it doesn't work? That's fine because it's not required to function. It's icing on the cake.

I love React because it lets me do my best work faster and more easily. I hate React because the culture around it more than the library itself actively prevents other people from doing their best work.

Top comments (32)

Collapse
 
luisnomad profile image
Luis Serrano 🇪🇺 • Edited

Bravo! I totally feel the same. Specially after being rejected in interviews by devs half my age (with half my experience) because "I don't know enough React" 😂 Anyway I do enjoy React and modern development, but the culture around it is toxic and destructive. It's a competition to always being right (while all the others are wrong), the over-opinionated era where best practices won't last a week. If you blink, everything changes, something new comes up, and all the community go crazy to refactor everything once again to follow the new golden hype. Nobody mentions standards anymore, or semantics, or accessibility... I really suffer from framework/hype fatigue to the point where I don't code anymore. It's just not fun, and not reliable. I don't mind learning but the feeling that what you learn will be obsolete next week is truly discouraging.

Anyway, thanks for putting these words together, someone had to say it!

Collapse
 
redrogue12 profile image
Edgar X. González Cortés

Wow, very interesting read! I remember when I decided to become a web developer I just took a course on html/css/javascript. One night, after finishing in my laptop a website for my last assignment in a web dev class (a shitty one) I felt so proud of having become a web developer in such a short time. Next morning I decide to check my masterpiece on my desktop monitor to find out, to my horror, that all the elements had shifted. Fixed everything, then checked it on my laptop. The website looked whacked on my laptop now. After a quick google search, I found something called "responsive web design". That day I realized how little I knew and that there was an even bigger mountain to climb in front of me.

I'm glad I stuck out with web development. The new technologies are wonderful but sometimes I miss the simplicity.

Collapse
 
corneliodev profile image
José M. Cornelio

It was the same for me. I used to design websites with Photoshop and at some point i have learned how to code it with HTML, CSS and JS with jQuery. Life was simple and fun. You could make something that works (and you can still) over night.

I remember it was okay to use CMS's and there was no problem using jQuery to speed up development. But at some point. Everything that helps the developer to code less, cleaner and faster it is the devil to JS community.

Today, over-engineering is priced and i'm (maybe) too old to understand why. I do not understand why jQuery is wrong, i do not understand why PHP is wrong, i do not understand why i need to use react, angular, flutter, vue or whatever is trend this week to make a simple three pages website for a local bakery.

I'm too old at 27 years old to understand what the hell is going on with web development these days.

Collapse
 
theblairwitch profile image
Blair McKee

Wow.. I needed to hear this. I've been forced into CSS in JS lately and I share so many of your sentiments, I miss the cascade and the structure of plain and simple CSS.

Beautifully written. Look forward to reading what comes next :-)

Collapse
 
stasgavrylov profile image
Stas Gavrylov • Edited

I don't understand these kind of posts. Every year we hear, how complex JS has become.

With all due respect, for me such posts always sound arrogant and portraying authors as people, who hope to never learn anything in their lives anymore, or believe that they've had their share of learning already, and just want to keep working 9 to 5 building primitive web pages, sprinkling them with JavaScript.

Noone forces noone to use frameworks or anything.
But the thing is – browsers evolve, they provide more and more features for developers to explore, allowing us to build more complex and powerful interfaces.
And businesses want to explore this opportunity.
Simple static websites simply cannot provide the same UX as a real web application. It solves completely different problems.

Browser is the most popular cross-platform solution, and if it's possible to use this platform to build something, that was previously only available on desktop, then why not take this opportunity?
Take a look at Figma, for example, is it bad that we have such an awesome web-service today?

Of course, with the progress of the web, the problems that web-developers face evolve as well, and every new framework tries to solve these problems in its own way.
Of course, we could still be using jQuery for everything, but it is just not that convenient than, say, React, when working on really large projects.

I also want to remind that HTML and CSS evolve as well. New properties and attributes appear every year, new specifications arrive, and personally I am very happy with it. There's an infinite number of possibilites to explore, and for a long time already frontend is not a single area, but many-many different domains. Anyone can find something of interest – animations, 3D graphics, complex web apps, Web Audio etc.

Don't take this personally, please. I just want to encourage everyone to keep learning new things, dive deeper into JS and others fields of web dev.

This forum is great for the purpose, by the way.

Collapse
 
oenonono profile image
Junk

What does that have to do with people replacing CSS and HTML with JS? If they are evolving to meet web application needs better, why are we still using JavaScript only frameworks to paper over them with a low level, procedural, imperative language that's has to implement things like Suspense to accomplish things progressively enhanced HTML and CSS has been able to accomplish for a decade?

Collapse
 
gvescu profile image
Gustavo Vera Scuderi

Very interesting read. I remember programming with just HTML/CSS and a sprinkle of JavaScript just for being able to brag that "I'm using DHTML, yo! It's so rad!"

Still I think there's a place for us developers with self-taught talent for designing and sketching. Not every project needs to be a full Webpack fest with components that you have no idea where they came from.

I kinda feel relieved every time I need to make a custom WordPress theme because at most I'll be using some kind of SASS to CSS converter, then it's just my PSD/AI file, my browser and my code editor.

Collapse
 
adactio profile image
Jeremy Keith

This is spot-on! Thank you, Laura, for sharing this.

Collapse
 
iceorfiresite profile image
Ice or Fire

I think a lot JS frameworks are wildly over-engineered. What's wrong with simple pages that are actually written in html?

Collapse
 
tiffany profile image
tiff

JS frameworks are solving a completely different set of problems than simple HTML sites.

Collapse
 
syntaxseed profile image
SyntaxSeed (Sherri W)

JS frameworks tend to be the hammer that turns everything into a nail.

I still subscribe to the less is more approach.

Collapse
 
leob profile image
leob • Edited

I don't know ... I've heard sentiments similar to this a lot recently: "Where are the good old times of geocities", something along those lines.

I'm not saying that React and Webpack are the end-all-be-all, but it would be sort of sad if we'd be coding web sites or web apps in the same way we did 30 years ago. My point is, even when using React or other JS frameworks it's still "web" and manipulating the DOM, just using a different syntax, and nobody is forcing anyone to use CSS-in-JS. It's just that we have way more options nowadays.

Collapse
 
oenonono profile image
Junk

Yes, lots of people are forcing other people to use CSS in JS. I am forced to use it at work.

And it's not about "doing things the same way." Even without React, we would not be doing things the same way as 30 years ago. HTML had changed. CSS has changed. JavaScript has changed. None of them existed in 1990, by the way.

Collapse
 
leob profile image
leob

Haha you're right, 30 years ago none of this existed. The very first website in history was put live on 20 December 1990 by Tim Berners-Lee (en.wikipedia.org/wiki/Tim_Berners-Lee) so that's less than 30 years ago, and Javascript was nowhere to be seen (not even CSS probably).

Also true that even without React we wouldn't be doing things the same way, all of the standards and APIs have evolved, a lot. My point is that React is just a "tool" to get work done, and ultimately it's just the DOM with markup and CSS, only with a different syntax and some build tools.

Collapse
 
frankdspeed profile image
Frank Lemanschik

Hi i love to see that you hate react please look into this and post feedback i would love to hear from you about your opinion my example only shows build in customElements but could easy get extended to use unknown html element as its base.

dev.to/frankdspeed/the-html-compon...

Collapse
 
bobbymoure profile image
BobbyMoure

Very interesting read. I remember programming with just HTML/CSS and a sprinkle of JavaScript just for being able to brag that "I'm using DHTML, yo! It's so rad!"

Still I think there's a place for us developers with self-taught talent for designing and sketching. Not every project needs to be a full Webpack fest with components that you have no idea where they came from.

I kinda feel relieved every time I need to make a custom WordPress theme because at most I'll be using some kind of SASS to CSS converter, then it's just my PSD/AI file, my browser and my code editor.

Collapse
 
emceeaich profile image
Emma Humphries

❤️ So much this.

Collapse
 
silentsudo profile image
Ashish Agre

anyone remembers dreamweaver?

Collapse
 
dihfahsih1 profile image
Mugoya Dihfahsih

I do remember it but never used it, though it was hyped at my college

Collapse
 
apol0x profile image
Apol0x

The Photoshop of webdelopement hehehe

Collapse
 
pencillr profile image
Richard Lenkovits

This article is amazing. Btw frontpage ruled! I built my first site with it at age 12~ ish.
About part 4.: I get what you're saying (even though I'm a modern barbarian who started with React right away). But I think this can only change by changing from the top to bottom. We can't really go javascript-off when our clients want to follow the trend, and the trend is to have a ducking disco 🎆 on the frontend. :D

Collapse
 
ghost profile image
Ghost

Macromedia, you just opened wounds that I thought where closed. I guess I'll have to go to repress some memories again,

And you had to put a picture of FrontPage, you cruel, cruel woman.

... I'll be crying under a cold shower if someone come looking for me.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.