top | item 19106922

HTML, CSS and our vanishing industry entry points

371 points| antibland | 7 years ago |rachelandrew.co.uk | reply

210 comments

order
[+] munificent|7 years ago|reply
I remember reading articles like this years ago.

... Except that they were lamenting the rise of GUI operating systems and how those eliminated the easy on-ramps that command line OSes had where you could write a simple BASIC program that felt like something real.

It is important to be thoughtful about how people can easily get into computing. But it's also important to not idolize or idealize the particular on-ramp you took X years ago. Those ramps are going to die and get replaced by new ones. It's part of technological progress. As long as new paths come along — and they always seem to — it's gonna be fine.

Frankly, raw HTML and CSS is already a dying path. If you get someone to build a simple web page from scratch, it won't feel like a "real thing" to them. Because, today, "real" now means it has social sharing, interactivity, and a certain level of visual polish your web page will lack.

A WordPress install is a better path because it looks nice. And then they can start tweaking the template and the next thing you know they are learning a little HTML and CSS, but in the context of something that already feels real.

Forcing them to start with an empty notepad document is like getting someone interested in cooking by making them grow wheat.

[+] wwweston|7 years ago|reply
> Frankly, raw HTML and CSS is already a dying path. If you get someone to build a simple web page from scratch, it won't feel like a "real thing" to them. Because, today, "real" now means it has social sharing, interactivity, and a certain level of visual polish your web page will lack.

Social sharing, interactivity, and reasonable-to-high levels of visual polish were all frequent features presented with raw HTML/CSS a decade ago. If you have a decent designer available to you, some of them can hand you a quality original screen design in an day or less in a PSD/Illustrator/whatever file, and it's possible for most cases to convert it to HTML/CSS from scratch in about the same time (at least, it was for me by the time I'd done a hundred or two of them). Responsive may add time depending on the layout conception. All of this can work pretty much the same today.

If you don't have a good designer and/or design isn't going to distinguish you (or you want the benefits from fitting into widely-present framework styles), a template or framework can make a lot of sense. But that's a different proposition from saying HTML/CSS is a dying path.

Interactivity & Sharing: up to a certain point, interactivity via progressive enhancement costs no more time/effort than application-centric approaches unless you're truly building an application over a hypertext document with some added features. Possibly less. Social sharing is usually a matter of dropping the right widget into a page.

> Forcing them to start with an empty notepad document is like getting someone interested in cooking by making them grow wheat.

It's more like having people start with buying/using their own staples instead of a meal kits or deli meals. The latter can be delicious and convenient, but it doesn't mean the staples aren't a viable path.

[+] zanny|7 years ago|reply
I recently started making a personal reddit clone mostly to learn Grid properly but I'm having no problem making custom controls (checkboxes, search bars, forms, etc) that look "professional" with just a consistent color palette, some borders, shadows, gradients, and linear transitions.

A lot of it in my experience is because you can use flex / grid almost everywhere to evenly space / proportion content now so you don't have to do as much pixel fidgeting to get things looking right. I'm using .5rem gaps and padding everywhere and it just looks pretty dang crisp out of the box.

At least compared to what you could do even five years ago its lightyears ahead in ergonomics. Still rubbish because its still html and css at the end of the day, but a far cry from floating half the page.

[+] Townley|7 years ago|reply
I love the wheat analogy on a few levels

An excellent chef may know that midwestern wheat makes tougher bread than southern wheat, and that White Lily flower is a great brand for softer wheat with less proteins. But that's useless knowledge--and added complexity--for a total newbie who's never thought about what "rising dough" means.

One of my friends got into programming recently by building netlify-hosted react websites. Yes, his need to learn JSX and the strange capitalization of reactifiedHtmlAttributes is additional mental overhead, but because some onramps have gone away entirely, he won't have to worry about FTPing files up to a server, or Linux file permissions, or configuring Nginx, until he's established.

So whether it's cooking or programming, the "on ramps" have definitely changed, but it's never been easier for anyone to get started building high-quality products.

[+] exodust|7 years ago|reply
> Because, today, "real" now means it has social sharing, interactivity, and a certain level of visual polish your web page will lack.

Apparently a real website has social sharing and "interactivity" that can't be achieved with raw code! I'm guessing you're not a developer.

> * A WordPress install is a better path because it looks nice.*

That's the saddest statement I've read all week, only topped by..

"Growing wheat?"

Nobody suggested "notepad". A basic HTML structure can be achieved in 5 minutes in your code editor. From there it's about populating that structure with layout components. Yet more minutes coming your way. What, you wanted to have your site made by clicking a few buttons?

"Tweaking the template" in Wordpress is an exercise in extreme patience. A lot of faith in the black box under the Wordpress hood, and a spammy, over-commercialized "do you want fries with that" plugin ecosystem. The fragmented style of adding custom CSS or HTML in wordpress... you end up with a bloated unsustainable, messy maintenance headache. That's how you want people to learn web dev?

> Frankly, raw HTML and CSS is already a dying path

Rubbish. When it comes to doing interesting polished "modern" things with transitions, nested flexbox layouts, interactivity, and custom light-weight modules, there's no better way to control the quality and details of a web product than with raw coding.

[+] jm2|7 years ago|reply
At first I suspected I was becoming lazy now, only because I believed, against my own unsettling self ridicule I recognise that nervous giggle was, that I should have a pure distilled and faultless prompt / repl / vim / emacs install / ide / visual studio enterprise edition / PGI suite crystallised as if my own personal x-kryptonite shard, pulsing invitingly in my minimalist polar cave.

Imaginatively my infallible future perfect hindsight convinced me that I would be mad to expect a 10 year old me to build a current development system.

Oh my, how preposterous of me. The lengths I went to to get my mitts on my first very own workstation I think can't be repeated on grounds of antisocial hubris. I was monomanaical. Over years. I ditched a first rate education for which I (to my retrospective surprise) knew I was a second rate candidate by this obsessive proto virtue if nothing else.

I have since learned that this is a universal human counterfactual and misconception: we inevitably one day look around us and fail to find the totemic beautified objects of our youthful ambition. ("Where is my beautiful house?") But we have already grown up, and in so doing, found human cares supplant the material and abstract and idealistic, it happened with the most materially successful people I know even more acutely to my experience.

Whether religious or atheist I think we can all take solace in the drive and determination and inventiveness of the next generation to face the similar issues. Meanwhile, echoing just about everyone who has responded, I think we've reinvented enough prompts and repls and gui libraries and stdios sufficient there likely will be some of them to survive the apocalypse.

[+] samirm|7 years ago|reply
I agree that old "ramps" are going to die and get replaced by newer ones as part of general technological progress, but your comparison to cooking is just nonsensical.

Using HTML+CSS to build a site from scratch is not at all like growing wheat... let's not make false equivalence fallacies here.

[+] soperj|7 years ago|reply
This seems like the whole don't learn CSS, learn bootstrap, foundation, bulma, etc. Don't learn javascript, learn react, or vue or angular. You can do a hell of a lot with css and html(including interactivity), and considering the amount of cross browser support you don't even really need a framework these days.
[+] yc12340|7 years ago|reply
> I remember reading articles like this years ago.

>... Except that they were lamenting the rise of GUI operating systems and how those eliminated the easy on-ramps that command line OSes had where you could write a simple BASIC program that felt like something real.

Are you implying, that they were wrong?

"The rise of GUI operating systems" haven't killed off the existing programming paradigm. It still exist, — it is called "back-end". And I can testify, that back-end programming is order of magnitude simpler, faster and leaner than modern front-end or Android development.

[+] teddyh|7 years ago|reply
> important to not idolize or idealize the particular on-ramp you took X years ago.

I agree tremendously. As I wrote four years ago¹:

It’s not too late in 2015 to get started in computers. People who got started in the 1990’s feel that way because they started in assembly language and compilers and all that, and how could anyone starting now possibly learn all that?

What they don’t realize is that people who got started in computers in the 1960’s feel that since they started with soldering and electronics and radio and circuits, nobody could possibly learn all that.

It’s easy to start in computers at any time. You simply ignore all the stuff that’s too low level to be worth your time to get bogged down in.

And two years ago²:

You were frustrated by Windows 98 because you could not reason about it on the level you were used to. But think back on the earlier electronic enthusiasts who were used to thinking about resistors and voltages – they would have been just as frustrated by your ZX Spectrum because they would not have been able to reason about machine code by thinking about what voltages they mean. The level to reason about Windows 98 would instead be by thinking about installed programs, registry settings, DLLs, etc. If someone came to computers fresh and started with Windows 98, this level is what they would know.

And three months ago³:

[…] Hasn’t it always been the case that the current generation skips learning about useless lower layers used by older generations? How could it be that the layers you grew up are the special ones which are still useful, when all the layers which came before, which people at the time thought essential, have turned out not to be so? […]

1. https://news.ycombinator.com/item?id=8952800#8953744

2. https://news.ycombinator.com/item?id=13675268#13677390

3. https://news.ycombinator.com/item?id=18228740#18240422

[+] sly010|7 years ago|reply
> Those ramps are going to die and get replaced by new ones.

No. They will be perhaps covered with a shiny rug, but not replaced. Technology is not "changing" there is just more of it. And it's just as important to be aware of that.

[+] arethuza|7 years ago|reply
'it won't feel like a "real thing" to them'

I always find it amusing that we are having these discussions on HN which is about as old school as web technology gets and which doesn't seem to suffer too badly....

[+] themodelplumber|7 years ago|reply
I appreciate the thoughtfulness you've put into this, but I have to disagree a little bit.

First, I am perpetually shocked to find peers in tech who still use BASIC or other tools that others see as outdated. The last one I found was a food product company; their lead tech guy, a member of the family, had given new meaning to NIH with the system he showed me. His website spec document literally started and ended with DO NOT WANT WORDPRESS, in large part, he explained, because he wanted someone who brought the same mindset to technology that he did: Invent something that fits the problem like a glove. And--that probably will not even closely resemble WordPress.

I've since learned that what really happens to influence a technology decision is not trend or "technological progress" alone. At the root of this stuff is human psychology. And not even individual human psychology, but human _relational_ psychology. In some human relational systems you get things like this: A family that is technologically backwards _by psychology_ sells a high-demand food product. They displace all of their technology thinking onto their son, or whoever is even remotely interested. And _that_ person does whatever they're comfortable with and good at. Voila: The rich and hidden empire of yesterday's tech!

And...you want to work with that person, you want that company to give you access to their funding--you have to kind of protect their on-ramp and you even quickly realize: Gosh, it still works and even surprisingly well! Otherwise they will tell mom and dad: "Sorry, we still have to use yesterday's tech." Well: Mom and dad actually love hearing that.

We will always need students who are ready to work with people and companies like this.

So I disagree that raw HTML and CSS are a dying path in a way that rules them out except for that set of new learners for whom it's less "specific problem solving" and more "build a website as you see them on the web". Clients who ask for WordPress these days are sometimes simply asking for what friends told them to ask for. For those building the websites, it can be a golden opportunity to step in and really bring problem-solving skills to bear, where the client can't be bothered to do so. Otherwise you paint a big target on your back for competition with other "WordPress companies" and the like. $300 gets you a new website, that kind of thing.

I absolutely agree about the overall risk of starting students out with an empty Notepad document too. I got into WordPress and Mambo/Joomla back in 2006 and had a blast right up until I was using gobs of plugins for everything and then they started to die, or get bought out by e.g. a company that tried to spam my clients with telecommunications equipment advertisements. What is there to do but start really figuring out how to solve problems without the plugins, in a situation like this? Then I found Textpattern, which was an amazingly great way to start dipping toes into template design and eventually PHP and SQL. When I taught people web design at our local college, I made sure they knew the advantages and disadvantages of Photoshop HTML Export, and then taught them how to do it in the best way possible. I gave extra credit points to those who would dive into the code a little bit.

[+] darepublic|7 years ago|reply
Don't disagree with you but you can still create something 'real' with HTML, CSS, _Javascript_ and notepad :)
[+] austincheney|7 years ago|reply
> Those ramps are going to die and get replaced by new ones. It's part of technological progress.

That completely misses the point. This makes sense as technology changes, however, HTML and CSS are not dramatically different now than they were 20 years ago. Despite that lack of significant difference the approach and entry points have radically changed and continue to change. This is problematic for a number of reasons addressed in the article.

The article touched on only one of the two biggest problems. The article did a great job talking about the churn every couple of years and the associated disconnect between a former group and a later group of developers. That disconnect is incredibly understated and important.

The article fails to talk about performance. Many sites today are not more performant than sites more than a decade ago even though hardware and JavaScript are orders of magnitude faster. If everything is 10s or 100s of times faster and yet the end products remain the same what got lost? The technology got lost behind layers of abstractions. These abstractions, in almost every case, don't exist to supplement (enhance) the technology. They exist to supplement the developer.

My personal single page app pushes nearly 1.5mb of JavaScript doing really heavy computing to the user and yet the site is still fully loaded in about 1.6s. The techniques I use scares the shit out of younger developers, because they are old and primitive (and yet stupid fast). I can remember the last big dot com I worked at struggled to get back down to 16s homepage load from 24s even though there is very little code doing anything the user would care for on site load.

> there is something deeper and more worrying than a company having to throw away a couple of years of work and rebuild because they can’t support a poorly chosen framework.

In my experience every framework or technology stack becomes poorly chosen on a long enough timeline by the incoming developers. Consider other solutions before thinking about abstraction, abstract only as an exception to policy, and then document the measured costs.

Consider the current most popular web abstraction: React. There are now numerous abstractions for React. It is only a matter of time before those abstractions over abstractions have their own abstractions until somebody wants to reinvent the framework again. People now spend more time and energy learning the abstractions than I spent learning the base technologies, but then difference is that my comfort with the base technologies allows me to spit out a solution in less time, that is smaller, and performs faster to the shock and disgust of framework advocates. That makes perfect sense realizing that the abstractions are there to supplement the technology but to supplement the developer.

[+] egypturnash|7 years ago|reply
I am still using the WordPress installation I set up around 2011/12. Complete with custom styles that are messy balls of entwined PHP and HTML crudely hacked on top of existing styles.

It does what I need it to: sits there quietly and builds the HTML for my blog entries and my slowly-growing art gallery and my ongoing comics projects. It is not sexy. It does not check any boxes that will get me a job at a startup. It just sits there and does what I need it to do; I dive into html/php/css about once every year, at best, to do a quick hack to properly display my latest art project, or to improve and polish that quick hack to really nicely present my work.

I doubt I could get a job at a Silicon Valley unicorn with these skills. But that's fine. I get other work with the skills that my basic web design skills help me show off.

I look at the never-ending cycle of Hot Frameworks and the thought of trying to get on that train makes me feel immensely tired. That's two full-time jobs right there just to be able to check the box on an application asking for six years experience with a hot new framework that came out two years ago.

All these frameworks, all these technologies, all these lengthy toolchains, I don't need any of these to do what the Web was invented for: put some text and images online where people can see it.

[+] beachy|7 years ago|reply
Its funny, I'm just setting up Docusign right now, and it bears many of the signs of SPA-done-poorly, even in the most basic, constantly used parts of the UI.

For example:

1) Sign in and open the page showing templates, and my existing template is not displayed - just a whirring hourglass while some Ajax struggles behind the scenes. Clicking to deleted templates, then back again, fixes it.

2) Click to use the template, and I see no indication that anything is happening - then some seconds later a new page appears.

3) Even when opening a support page, the page doesn't render immediately, like a normal web page. Instead the outside of the page loads, then I need to wait while some Ajax chicanery needs to now load the content itself.

There are obviously plenty of people who can build SPAs well, but there are also plenty of people who have SPA fever, and don't ask themselves the basics first - like why don't I just make this a plain old web page?

[+] chriswarbo|7 years ago|reply
> It does what I need it to: sits there quietly and builds the HTML for my blog entries and my slowly-growing art gallery and my ongoing comics projects.

I actually felt that (not Wordpress, but a similar CMS) to be going too far. I got fed up of having to patch PHP security vulnerabilities; debug occasional database outages; etc. just for some occasionally-updated content.

Now I just write markdown, convert it to HTML with pandoc and run a bare bones static file server.

[+] namuol|7 years ago|reply
> the never-ending cycle of Hot Frameworks

React has been out for 5 years and it's popularity is only growing. It sticks. Alternatives aren't anywhere close, and the ones that do are just variations on the same pattern. We've learned something real.

[+] ocdtrekkie|7 years ago|reply
Out of curiosity: With all your custom hacks... is it still up to date? One of the biggest things that scares me about widely used web platforms is that they have widely known vulnerabilities. I tend to prefer a bit more home-spun code when I can manage it.
[+] pjmlp|7 years ago|reply
Same here, my web site went through manually edited HTML in the mid-90s with frames (I know...), XML with XSTL transforms, and now the same XML having those transforms replaced by PHP, it isn't great but does its job.

At work, it is JEE and ASP.NET with server side rendering and vanilaJS.

Some projects do use Angular or VueJS, but only if they are actually a proper SPA.

[+] dwaltrip|7 years ago|reply
> I don't need any of these to do what the Web was invented for: put some text and images online where people can see it.

The world changes. Most inventions are used in ways that their inventors never fathomed. While it can be difficult at times, and things can certainly be repurposed or reimagined poorly, overall I think it is a very good thing. How else could innovation and technological advancement occur?

We should try to make the most of these changes, and improve their shortcomings where possible. Or maybe even create something new if there is an opportunity :)

[+] rchaud|7 years ago|reply
While I agree that teaching HTML and CSS well before jumping into frameworks is the right way to go, I can't blame students who're looking for what will most likely get them hired tomorrow.

If you are of working age, learning this shit is not fun, because you won't have time to build cool hobbyist mini-sites "just for me and my friends". It is a seemingly never-ending race just to keep up with the state of the art, let alone needing to know "just enough" about version control, hosting, redirects, SSL and resisting the temptation of "shiny new tech" that looks great but won't put food on the table today.

With all that said, it's ridiculous to even have to know HTML or CSS, or even a WYSIWIG CMS at all to put up text, audio and pictures on a 2D plane. How is it that web browsers are able to grab my location, turn on my webcam, etc and yet not offer a way for me to create a web page right there in the console?

[+] pmlnr|7 years ago|reply
> it is a seemingly never-ending race just to keep up with the state of the art

It is, there is noting seemingly about it. And it's the whole industry, from sysadmin level, through ML to front end dev. You sit down for 2 years, boom, you're so outdated, it hurts.

A regularly I wish I was a carpenter, where you learn something and it may stay valid for a long while. (EDIT: I admire carpenters, before someone thinks otherwise.)

[+] iamdbtoo|7 years ago|reply
"I can't blame students who're looking for what will most likely get them hired tomorrow."

I can't tell you how many people (recent grads and experienced folks) we've had to turn away because they can't even pass a basic CSS test.

[+] whytaka|7 years ago|reply
> How is it that web browsers are able to grab my location, turn on my webcam, etc and yet not offer a way for me to create a web page right there in the console?

var h1 = document.createElement('h1')

h1.innerText = 'Hello World'

document.body.appendChild(h1)

I don't understand your meaning.

[+] pintxo|7 years ago|reply
We had that with the good old Netscape browser back in the 90s.
[+] baroffoos|7 years ago|reply
>If you are of working age, learning this shit is not fun

Well there is your problem. I have been working for quite a while now and I find this stuff very fun. I tried out VueJS last year as my first framework and I found it delightfully simple. Then I got a job working on react and found it a little worse but still nice. Took me very little time at all to go from vue to react.

[+] farresito|7 years ago|reply
I think it's fine to jump into frameworks and slowly delve into the fundamentals. I find it's better to build something first, even if you don't understand 100% what's going on; otherwise, I don't end up sticking with it.
[+] saagarjha|7 years ago|reply
The author seems to be resigned to the fact that HTML/CSS are skills that you should use as an introductory tool, and that just this is not enough to be "employable". I maintain that this is not true: many websites would do just fine with just those two (as in, they don't need JavaScript at all!), and I'm sure a very large fraction could get by with some small amount of hand-written frontend code hooked up to a database.
[+] Existenceblinks|7 years ago|reply
A couples factors lead to this point:

1) Bootcamps teachers. From what I've seen, they are mostly React/js developers making living by things around that, books, courses. And most frontend technologies that are popular because big corps.

2) Big corp and developer mindset. Big corps have money and it's a big factor when developers pick up technology.

3) Javascript, the most low-barrier-to-entry and terrible at long term (They like the term "modern" so much)

Therefore, javascript ecosystem spreads like virus to the point it's eating HTML and CSS too. Imagine the virus was for improving HTML (things like <details> <summary> <datalist> free autocomplete, are powerful, interactive with zero cost) .. unfortunately no one cares anymore so they stay half-ass

Even myself now building a new app, I cannot bear "the platform" and pick compile-to-js lang for highly interactive widgets.

[+] ratling|7 years ago|reply
Javascript gets begrudging respect from me because of node. I can see the appeal, you can take existing JS developers from 'wherever' that have good fundamentals and crosstrain to be able to do backend and frontend stuff. It's also got a lot of good builtin bits that older languages don't have natively. On top of this you could theoretically go full serverless with S3, API-Gateway, Lambda.

I wouldn't choose to do that greenfield (python backend all the way, webassemblywhen?) but that's usually not my call.

Really, whatever you use, I just care that you can hire for it (sorry Erlang) and that it's not Java (because, as someone who works in Operations and Security land, fuck Java and fuck Oracle).

[+] yoz-y|7 years ago|reply
I blame this on the “appification” of the web. Before we had documents and web applications. The split was pretty clear at that time, one would approach making a website as you would a PowerPoint presentation. Layout stuff, put copy in... maybe make an animation using JS.

But nowadays it seems that even the simplest page needs to be some isomorphic react application. I got into an argument with the company we hired to make our website because they made a loading animation for switching between static pages and of course broke the website without JS completely for no reason. Apparently it was “working as designed”. It was not my responsibility so I let it go but it still left me bitter.

I think that web developers are lucky that their “assembler” is understandable and can be used as is. It would be sad to produce a generation of developers that didn’t learn it.

[+] justinph|7 years ago|reply
One of the side effects of this problem I see is poor accessibility. So many devs learn the latest hottest javascript framework as the way to make a webpage. They end up making pages that are full of div + span soup, with complicated javascript interactions. Careful use of proper HTML elements and stylesheets go a long way that are often overlooked by bootcamp/CS degree hotshots.
[+] chiefalchemist|7 years ago|reply
> "These arguments about tools, frameworks and technologies happen throughout the stack. I have watched them go round and round during the 20 years I’ve been working on the front and backend of the web. The de facto standard technology has limitations, we hit up against problems, we want to solve the problems. So often, we decide to solve the problems by throwing everything away. The old stuff is terrible, invented when we knew no better! We can do a far better job now, with all of our knowledge. Let’s reinvent that wheel!"

Sure, that might be a problem but it's not The Problem. The Problem is results. That is, despite all these reinventings products are still: coming in over budget, past deadlines, with too many bugs and most importantly end users are as frustrated and dumbfounded as ever.

We keep chasing shiny new objects and ego-driven bragging rights (i.e., "...I use Technology X...") and frankly no one on the outside has noticed., nor cares. They're too busy scratching their heads wondering, "Why doesn't this shit work the way it should?"

Agreed. The organization owning the product also contributes to these things.

[+] save_ferris|7 years ago|reply
> many websites would do just fine with just those two (as in, they don't need JavaScript at all!), and I'm sure a very large fraction could get by with some small amount of hand-written frontend code hooked up to a database.

And that's where companies like Squarespace come in for their value prop: we'll handle all of the back-end, asset hosting, etc. for you, give you a set of pre-built templates to choose from and allow you to tweak some of the CSS.

Businesses are less interested in pure HTML and CSS skills because they can get "good enough" for a few bucks a month and not hassle with a developer that's charging market rate or get into the weeds themselves.

[+] wccrawford|7 years ago|reply
We didn't need bootcamps when companies just wanted html and css. Now that there are companies that want a lot more, we need bootcamps that teach that.

The bootcamps don't teach the things that you think you can teach someone in a single day? Perhaps it's because those things are so easy they don't waste their time on them. They expect the students to study that stuff on their own.

But in the end, none of that matters. "industry entry points" aren't "vanishing". There are still tons of companies that need entry-level html, css, and javascript. We love to talk about all the companies that want more, and those companies pay more, but the other companies haven't dried up.

[+] jules|7 years ago|reply
Modern HTML+CSS is way wayyy easier than in Internet Explorer 6 times. Back then you had to understand the box model and float intricacies and CSS hacks to make your page look acceptable in all browsers. A three column layout with a header and footer required a PhD in CSS.

That, and tools like Webflow, make learning HTML and CSS easier than ever.

[+] jancsika|7 years ago|reply
> We have already lost many of the entry points that we had. We don’t have the forums of parents teaching each other HTML and CSS, in order to make a family album. Those people now use Facebook, or perhaps run a blog on wordpress.com or SquareSpace with a standard template.

There's the fundamental assumption here that the entry point outhgt to sit atop cruft that publishes the user's content to the world. That may have been meaningful during the utopian days of HTML/CSS on a pre-weaponized internet. Today, it is a bizarre and counterproductive assumption.

Why isn't the entry point <Ctrl-shift-c> into devTools, for example? There you can view, measure, test, and get feedback on anything in the window. Learn a single command or even single url to make the content editable so that you can type, "Hello world" to yourself. Paste an image from somewhere else on the web. Style it, move it around.

Then when you're done, close the window and it goes away, like it should. Because you don't actually know how to publish anything to the world yet. And it's quite possible you don't want or need to do that yet.

This provides a nice self-test because when you next open an about:blank window you have to do everything again from memory to get your content to display.

Who knows, maybe the entire forum will eventually get fed up that Firefox doesn't yet allow you to set svg shape width/height/x/y/etc. through CSS. What a pain, they'll say. And then they'll all threaten to switch to Chrome en masse to force Firefox to implement the most sensible part of SVG2.

The forum may have other priorities in addition to that. :)

[+] voidhorse|7 years ago|reply
Whenever I reflect on the "state" of the web the whole thing seems like such a mess.

I can't help but feel that the web's progression to what it is today (framework/spa/webapp overload) was more or less a cobbled together solution using technologies that were never really designed or equipped for the task. The browser has become, quite literally, the kitchen sink--it's how we access nearly all of our applications, and today it's less common for an application to provide a native OS implementation than it is for it to provide a counterpart in the browser which has worked out fine, but is pretty insane when you think about it.

HTML/CSS/JS were never intended for making complex application UIs. The world has done a great job at coercing them into doing so anyway, but I can't help but indulge in alternative histories at times and wonder what things might've been like if javascript never hit the scene.

JS is such a double edged sword--it's great because it has a very low barrier of entry. On the other hand, the same accessibility tends to plague it with misuses, abuses, and overreliance.

[+] z3t4|7 years ago|reply
With a static site generator (SSG) you start with a document, and you end up with a document, using simple HTML, markdown or WYSIWYG editor. What the generator does is basically replacing server side include files, and SSG does a much better job as you do not have to litter your documents with the server side stuff. The SSG can also generate your index pages, sort documents and list them by keyword or topic, etc. SSG is basically the good parts of server side generating and static web sites mixed together. A SSG usually don't hide away your documents in a database, and you can keep your documents independent from your publishing and content management solution. Documents are the core feature of the web.
[+] icameron|7 years ago|reply
I'm STILL learning HTML and CSS after 20 years. Constantly surprised by new uses or semantics, or rediscovering a little known attribute or selector. One that comes to mind is background-image is an animated GIF with background-size: cover making it look like the page text is on the inside of a car window as its driving around.

It took a while for everything to 'click' and understand how DOM/JavaScript/CSS can really jive together. Using a framework is easier than understanding how something like Bootstrap works by examining the elements, CSS and scripts that all work together. I know there's always going to be more to learn, like any art form.

[+] macspoofing|7 years ago|reply
>However, when it comes to frameworks and approaches which build complexity around writing HTML and CSS, there is something deeper and more worrying than a company having to throw away a couple of years of work and rebuild because they can’t support a poorly chosen framework.

I take the author's point on this because infatuation with latest micro-frameworks and the lack of long-term support and backward compatibility is well-known aspect of modern JavaScript-based development. I attribute this to the fact that the industry is dominated by young professionals, the web as a platform is still exciting, and the fact that JavaScript is a terrible language that requires custom frameworks to work around its intrinsic limitations.

Having said that, you cannot write web-applications in just HTML/CSS. You can create very nice looking websites, but not web-applications with any sort of complexity.

>If we make it so that you have to understand programming to even start

Sorry. That's the reality. Many websites, and certainly those that are the core competency of the parent company, are really full-fledged applications that use HTML and CSS as the UI layer, and are backed up by thousands of lines of client-side code and thousands of lines of server-side code. You need to be a programmer to meaningfully contribute[1] because however way you slice is, writing and maintaining thousands (or millions) of lines of code is complicated and hard.

There are areas where programming skills are overkill, such as when you're not building a (web) application, but rather a website for your church bake sale, or putting together Wordpress-backed web-page for a local business. But that isn't where the money or need is.

[1] There is obviously a need for non-programmers, such as designers, testers, and UX professionals in software product development. But to actually realize the product, you need programmers.

[+] azangru|7 years ago|reply
> However, 22 year old me would have looked at those things and run away. If we make it so that you have to understand programming to even start, then we take something open and enabling, and place it back in the hands of those who are already privileged.

I am not sure I understand what exactly the argument is (as is often the case for me when feminist concepts of power, enablement, and so on are involved).

Is she talking about hobbyists (someone who just want to play with technology and make a website for themselves) or people who want to enter web development as a career?

I would expect hobbyists to have enough time and curiosity to be able to start with the basics. There is also nothing preventing hobbyists from building their sites with pure HTML and CSS. These web technologies still work today just as great as they did 20 years ago. And there is no pressure from the lists of required skills on job boards.

If she is talking about people who already know that they want to get into professional web development just starting from scratch, then they have all the motivation in the world, numerous tutorials, online courses, and bootcamps. They have different goals than hobbyists, they need quick results geared towards job requirements. (Although I am having hard time imagining a person who would want to get into professional web development without going through the hobbyist stage first).

The "something open and enabling" argument makes total sense to me only in the context of hobbyist web development. It’s a wonderful thing that everyone who so wishes can learn how to build and publish a website and participate in the global sharing of ideas. But why is this criterion even mentioned in the context of professional web development? Is it incumbent on a profession to be "open and enabling" for everybody?

And what is she arguing as a solution, exactly? Stop using CSS-in-JS or JavaScript frameworks for professional development, because newcomers may find them hard to understand? Even though these technologies may be perfectly suitable for many situations? Why?

[+] sureste|7 years ago|reply
I'm so glad this people are finally having this conversation.

I will start by saying I'm not a developer of any kind. I'm learning Ruby and I've been doing that for a few months now. However, back in 2015 I got the itch to learn HTML/CSS/JS with the idea of changing careers. Long story short, I tapped out somewhere between 2016 and 2017. I still haven't changed careers. I was stressed and discouraged about how much I had to learn. I'm not saying this is everyone's experience but it was mine and I'm sure I'm not alone. It felt like trying to catch a train that is gaining more speed while crawling.

Hopefully there's a mindset shift after this, although it is my feeling that it will take another 5 years until there's a complete shift in tool set.

[+] root_axis|7 years ago|reply
You're simply inexperienced and the time you've invested is pretty small. Every successful programmer spends years reading, learning and coding. You just have to keep going.
[+] dmitriid|7 years ago|reply
I would really love to have lived in this imagined world where everything was simple, and you could easily learn to do everything and do everything in HTML and CSS.

It’s like browser wars never happened. Or float hacks. Or the search for the holy grail. Or DirectX filters. Or box models. Or... Or... Or...

The web never was a place of unicorns chasing butterflies and shitting rainbows. If anything, it’s a much better entry point now just due to the sheer power of tools we have at our disposal.

I’d have killed for dev tools in early 2000 when I was struggling why a particular copy-pasted peace of HTML + CSS wasn’t rendering the same way it was rendering on some website I got it from.

[+] drawkbox|7 years ago|reply
The web with HTML, CSS and the amazing Javascript was a simplification of previous systems.

Simplifying is the right way to go. Great engineering is taking complexity and making it as simple as possible.

Somewhere we forgot that simplicity beats complexity.

Lots of this move to complexity is that standards and more are being squashed for lock-in and proprietary control as well as increasing complexity so companies can stay in charge and dictate the internet and standards associated with it.

Unfortunately the simplification phase from the 90s through Web 2.0 has ended. Apps may have helped demolish that but ultimately open standards and simplicity is taking a back seat due to mass specialization choosing complexity over simplicity to squash standards, sell conferences/books, companies taking control of development, job security and unfortunately it is closing entry points and the beginner's mind outlook.

HTML, CSS, Javascript were mostly data-first then presentation layer, now it is framework first dictating all as a monolithic controller.