221 comments

[ 74.1 ms ] story [ 779 ms ] thread
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.
The developer must understand when it's time to use a framework. A small website with few pages doesn't need a frontend framework. But if you have to deal with a large/complex application using a web framework is not a bad idea as they offer a lot of reusable components, you don't need to "reinvent wheels" using HTML & CSS.
> The developer must understand when it's time to use a framework

Frameworks are useful but not nearly as much as people might think. There are many cases where a static site generator (as a simple example, Markdown → HTML converters) or simple templating solution may be "enough", and they're relatively easy to understand as bells and whistles on top of HTML and CSS.

> developer must understand when it's time to use a framework.

The developer does. Do the project owner/manager/mid level personnel? That's a better question.

There's no moral panic about project managers though. Their decisions do not affect the excesses of software development in any way, only those of software developers do. ;-)
> The author seems to be resigned to the fact that HTML/CSS are skills that you should use as an introductory tool

…And she's right. It's the perfect introductory tool in web development, because that's what any given framework is going to be abstracting over anyway. A student needs to feel the pain of typing everything a million times before the solution of a templating system really makes sense. Same goes for event delegation, browser inconsistencies, etc.

> 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.

You're right that many websites would do just fine with static sites — most of the (highly paid!) advertising industry is brochure sites. But that's not the market though. You do need more than just HTML and CSS to be competitive in the market, even if you're BSing your way through most of it.

I hear this a lot but I don't really see it. Do you have examples of sites which are written using a framework but shouldn't be?
At least half of the websites you visit would probably benefit in performance/size/usability/etc if they eschewed JavaScript.
I really don't know if that's true. The only example I can think of is ad-ridden media/news sites but those are that way by design.
You would be incredibly hard-pressed to find a long-term job that only wants HTML and CSS skills without a huge additional career-level skill like visual design or various JavaScript frameworks.

It's doable if you're freelancing, but you'll almost always end up picking up additional skills in the process (or partnering with someone else) because your clients will ask for them.

Though I'd argue that freelancers themselves are a bit of a dying breed (at least in the US) because it's increasingly harder to afford things like healthcare when you're an individual with no company backing.

Every time I look a restaurant's web page and see delays downloading javascript crap when all I want to do is see a menu I think a person could make a good living just building basic HTML & CSS websites for small businesses. The site would likely be more responsive than some dynamically loaded javascript bloat just to show a few pictures and bit of text. It would also be maintainable by anyone, forever. No framework updates or APIs to learn.

It would be so simple you could even teach the business owner how to do basic updates, like changing the listed prices on the menu or changing the description of a dish. Sure, you don't get to charge them for these changes, but they'll be delighted they don't have to worry about paying a consultant's minimum fee just to update their menu.

The problem is that small businesses either don't have the money to pay for a quality static site or don't want to. If you want to get into this industry as a dev you're competing against sweatshops that shit out these garbage websites in 2 days for $200 apiece. They're not optimising for easy-to-use tooling or a quality end product, they're optimising for stuff they can copy/paste as quick as possible. Back in the day when I was learning HTML/CSS, that meant a bunch of shit jQuery plugins. Today I imagine it's React components or something.
Not contradicting you directly -- but many small businesses also value the personal impressions and trust a lot more, and many of them have been burned by those sweatshops.

I think the tide is gradually turning and many small business owners would prefer to buy you a dinner and have a good chat with you and if they like you then they'll give you business, albeit small (though you can do 10 of these without much trouble if you optimize your own process).

There is a market niche for practical no-BS small website builders these days, IMO.

Sounds simple in theory, but try it. What people need is vastly different from what they want.

It's a sea of people who want complexity for $100. They just go to fiverr and get someone to throw together hacky shit templates.

This is exactly what I'm doing right now. Small businesses are being thrown HTML files and told to figure it out, it's crazy.

So I do the opposite and take care of everything. Design, build, deploy, maintain and update. I'm not a designer, but I take cues from their logos, menu, etc. I run it in the nearest AWS region for low latency, optimize all the assets, http2, etc. I strive to follow every best practice, within reason.

For a craft beer pub[0], I pull their current beers on tap from the Untappd![1] API, so the beers are always up to date. I also made a beautiful responsive menu that works great on mobile, tablet and desktop.

Where I'm really lacking is in self promotion. I do great work, but putting myself out there and selling myself is difficult. I will get there, though!

I'm doing this all to land a job doing front-end web dev somewhere I can grow my skills more. I came to programming late, but it is my passion.

Any thoughts on my site[2] would be much appreciated.

[0] https://tangentcafe.ca

[1] https://untapped.com

[2] https://jeremypoole.ca

Edit: formatting

I think this is a great angle to take. Small businesses don't care at all about modern web development, and I think sites like this best suite their needs. Keep it up :)
Good on you for doing this. I too build what people need, not just stuff the industry says I should. You're doing good work if you're giving people what they need.

My latest project involved actually building a Wordpress site but in such a way that someone with no coding/html/css ability can alter it in a virtually unlimited variety of ways to build what he needs.

I actually built the site for the operator, not the business. And in turn that's already having positive impacts on the business as they can react and create things they need quickly.

Some parts I wrote myself but sure I hacked parts of it together with theme builders and plugins. Lambast me all you like but those were right for him as he had ownership/understanding of what they did for him rather than some unintelligible code. And that's what matters sometimes!

Nice job. Looks like "untapped.com" may have some issues at the moment though.
Your sites may have gotten hugged a little too hard...
How do you get the business to agree to your design?

I would love to do something like this but when I used to try I always ran into the same problem.

The business owner would rather me follow the poor design choices of their competitors (hard to read text, bloated, random pop ups, etc). I always did it for them but it really killed me inside.

On [0], it takes ages for one of the 3 categories to get folded back. I actually thought they can only unfold and are not supposed to fold back.
Your site looks great, I like the way you explain your services.

You might want to check your "blog" link at the bottom though. Gives me a 404.

(comment deleted)
Which makes the author's pointless aversion to static websites strange. No, you often really don't need to have a database, relational or not, to just do a website.

I've seen so many sites dutifully set up with CMS backends and databases that only ever get updated by one person, and which only actually get updated once in a blue moon.

ETA: I mean, damn, how many people first got started just putting up or editing some static web pages, back in the 1990s and even 2000s?

My understanding was that the author isn't against static websites in general, but rather is against kludging together a functional equivalent to a CMS with backend scripts or third-party tools, when a RDB would be faster and simpler.
To expand on that, sqlite3 will most likely work best for 98% of all blogs out there. You hardly need a dedicated RDBMS service if 2-5 people put new articles few times a week.
Most websites could work without JS but they would be in a degraded form. You need JS when you want a select to change the fields displayed on the form. You need JS when you want to make the list resortable by drag and drop. You need JS when you want a page with a list to not reload every time you press delete on an item.

Sure you could make it work with JS but you would be degrading the user experience for no reason at all.

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.

> 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.

Is this really true? It seems like those entry-level people are caught between two trends: the low-level stuff is going SaaS and a growing percentage of the rest is buying into the idea that you need to install 10k dependencies for a brochure site.

>Is this really true

My answer is 'no'. I think it's hard to make a living as a html/css website builder. You're competing with students, foreign freelancers, Web CMSes (like Wordpress+themes), and Website builder services (like Squarespace) ... all of which can, in one way or the other, undercut you.

>you need to install 10k dependencies for a brochure site.

You don't need 10k dependencies for a brochure site. Things like Wordpress or Squarespace should be more than enough.

> You don't need 10k dependencies for a brochure site. Things like Wordpress or Squarespace should be more than enough.

I agree but say you want to create a simple site for something like a restaurant. You read all of the advice saying to use create-react-app and now you have 37,646 dependencies. That gives you a lot of tools but many of them are there to reduce the downsides to having that much complexity in the first place. It's certainly not a simple good-bad call but I do think it's right to ask about barriers to entry and whether we're entirely comfortable with the trade-offs.

I think I agree. You don't need to setup an entire modern javascript build-chain in order to build a simple site, and if that's the advice that they received, it was bad advice.

Having said that, 1) HTML/CSS even outside of any JS is complicated, and website builders are probably a better approach, and 2) all those JS-based frameworks are there for building web-applications, not web-sites and therefore geared towards solving programming problems (like how to organize and maintain thousands of lines of code).

I was talking about "industry entry points" not "long term careers".

Yeah, it's probably harder to have an entire career on html and css unless you're also a really good artist.

But for getting your foot into the industry, you've already said it: Plenty of students are doing it.

The first website I built was a static HTML/CSS website for a family members party hire business. And this was only about 5 years ago.
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.
They have become increasingly popular since you can host them for free on many services.
Just a musing, but perhaps now is a good time for the resurgence of Flash or something like it. A lot of designers I know learned ActionScript because they needed to gradually up their Flash game.

There is a gradual path into programming, but right now we've built up our frameworks to be tools for devs, not for normal people. I see a lot of apps that dumb it down too much (templates), and not enough that successfully expose you to as much complexity as you want/need. That's not to say they're bad apps, just that there really isn't something on the spectrum halfway.

Funny you should mention the F word... while reading "The Great Divide", I was thinking about the "Flash designer vs. Flash Developer" situation we had before the iPhone :)
This is a tooling problem imo, and whatever tool that is should just output javascript that works on a canvas. There's no reason to cram another programming language like ActionScript into browsers by default.

Anything that installs and runs like Flash/AS is going to raise security concerns though. Please let's not repeat all that bullshit.

Agreed.

I bet a "modern Flash" could probably compile down to JS and work natively.

Like Adobe Animate which is a rebranded Flash Pro that does exactly that?
You mean WebAssembly + WebGL? It is already done.
> If we make it so that you have to understand programming to even start [web authoring], then we take something open and enabling, and place it back in the hands of those who are already privileged.

Very much agree with this conclusion, though entry level web devs trained on eg. React might be too invested to acknowledge this.

(comment deleted)
> 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.

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.

It's worth considering using an mp4 (with video tag) for this use case. You get the same effect, but it's much more battery efficient.
Not sure if I'm a bit behind the times with this one, but I remember that iOS Safari had issues playing inline videos and you'd need to use JavaScript + Canvas to get it working well there (compared to desktop browsers where a simple video tag doesn't go full screen).

So depending on your intended browser support, a GIF may sometimes work better.

As long as the video's muted attribute is set I'm pretty sure iOS Safari will autoplay a video these days.
You also need the playsinline attribute.
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.

It makes much more sense to approach web dev/design from a conceptually high level, outside in (if you consider CSS as the inside).

This means that it's better to create your own project in a niche that interests you, using low code tools (e.g. site builders, visual databases etc.) to get the general overview about how it all relates.

You get to know a bit of everything this way (invaluable experience for teamwork), and the knowledge trickles down much better to lower levels.

Starting to code is then a natural progression in order to customize your system as competition increases, you learn what you need, with motivation, because it makes a real difference to your project.

If you start on the "inside", your knowledge may not flow upwards, a lot of stuff you learn at lower levels can become redundant and abstracted away as you approach environments that are actually used in your niche.

Writing raw CSS is like chopping wood and working with the grain, but people who get into furniture design already have the Ikea experience, like everybody else. Don't start with CSS from ground zero.

> Writing raw CSS is like chopping wood and working with the grain, but people who get into furniture design already have the Ikea experience, like everybody else. Don't start with CSS from ground zero.

I don't think it's true, those people never get the incentive to do their webpages in html and css. Site builders produce some crazy terrible spagetti code btw.

>Site builders produce some crazy terrible spagetti code btw.

Not all of them, there are more serious ones like Webflow which aren't too bad in that regard.

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?

> 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.)

"Sometimes I wish I was a carpenter, where you learn something and it may stay valid for a long while."

But what's stopping you?

I prefer programming and development, exactly because it's always changing and interesting.

(comment deleted)
I am a semi-professional carpenter and wood carver - much better field to work in than frontend development.
Your tools are for you to keep and the gratification you get when you finish something from a to z are something we lack in this IT industry.
Personally, I get a lot of gratification seeing customers use the code I produced.

If you don't get gratification from the output of your work as a software developer, why do you continue to do it?

>> > 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.

But if you build a foundation on HTML and CSS then you have something that stays relatively constant in the face of change. All that other stuff is often just fluff and programmers thinking they know a better way.

The foundation of HTML and CSS was separation of concerns, yet the most popular web app framework mixes HTML, CSS and JS together and says that it's fine. That's the first moment of confusion for students who are learning React after doing the basic HTML/CSS courses.

Someone who can build a static site (not Hugo/Jekyll/whatever) in HTML and CSS and upload it via sFTP will struggle to understand loop functions in a database-driven CMS, which require some knowledge of a server-side language.

Same goes with learning Git; there's a big jump in perceived complexity when you go from coding inside Sublime Text and typing commands into a Terminal.

> most popular web app framework mixes HTML, CSS and JS together and says that it's fine.

This was always the case. Because you could never build any reliable foundation on HTML+CSS alone.

And that's because the web wasn't meant to be an application platform. It got turned into one on top of html/css.
Yet here we are. The internet wasn't "meant" to be the global apex of commerce and communication, yet here we are. People started making more than just static documents because running programs on the web was fun and cool and it still is.
(comment deleted)
And it’s really sad that the standards bodies never realized that. They still treat the browser as a means to display text and some pictures :(
“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.” Whole industry is bit of an exaggeration. I’m implementing features to a decades old product and a new tech stack that grows on it’s side. QR decomposition and a bit of linear algebra never go out of style.

The hype cycle is just a gimmick. You don’t need the latest hotness for it’s own sake. Business users pay for solid products that deliver added value even though they are not utilizing the latest buzzword.

(comment deleted)
Yeah, that's true, but as a peon you're not at the mercy of the business users. Your career tech choices are mostly determined by the horde of technical managers who spend 8 hours a day brushing up on the latest tech and fuck all of it actually coding anything other than a project boilerplate. Whatever they decide they want to use is what 80% of the industry is going to be hiring for. If you're good you can just avoid all that and stick to the other 20%, but that's probably not a great strategy for someone with less experience.

That's why I always scoff when some shit new feature gets added to a language or library and the response is always "well you can still use the old stuff". Yeah, maybe if you have your own solo venture, but everyone else has to suffer through it. Even being the lead on a project doesn't spare you from it. If all your devs want to use something new it's probably never a good idea to veto it, unless it's batshit insane.

> 80% of the industry is going to be hiring for

80% of the industry is hiring programmers to work on some boring line of business app using Java or whatever language they've been using for the last 10 years.

(comment deleted)
Agreed. It's hard to believe given how much press all the trendy companies and startups get, but an awful lot of the web development world is nowhere near as flashy and modern as people online like to think it is.

Makes me want to write an article which basically compares and contrasts:

A: What the technical press, Reddit, Hacker News, etc thinks software development and web development is like

versus

B: What it's like for developers outside of the internet trend bubble

To given an example of B, porting a VB.NET application that converts CSV files for their data measurments, done by someone with some VB knowledge thanks to their VBA macros, into C# due to single language policy for internal applications.

Migrating an aging custom Web site into a CMS platform like Liferay.

Is the tech industry at large truly that immature? You are describing a slice of the industry as hype and blog driven ADHD thrill seekers - and probably quite accurately - but is that slice really 80%?

My own professional experience is from computer graphics and CAD (mobile and desktop) so I've never been directly influenced by the hype machine affecting web development.

80% might be a bit ambitious, but it's probably not that far off. How much money do you think is in the web industry relative to the more grounded industries you've worked in?
> regularly I wish I was a carpenter

I'm happy being a programmer, I just wish that any of the management folks understood that we're NOT carpenters, and their expectations that we learned everything we need to know ten years ago and should never need to learn anything ever again are unreasonable.

Only if you are targeting startups.

Plenty of companies whose main business isn't anything related to software, which are quite happy to have devs automate their infrastructure, they could even be done in BASIC or Pascal for what their sales people and management would care.

You might want to read House by Tracy Kidder to get an idea of how crazy building a house can be, even on a good project.

One of the builders in that book wrote a book of his own, The Well-Built House by Jim Locke, which I bought and found to be interesting reading.

In his obituary it says: "The revised edition is still in print although Jim dismissed it in recent years as technically out-of-date."

Which is to say that things do apparently change in building industry too. (I think this is another case of the grass being greener.)

My grandpa was commenting on some tiling that was being done in our house and mentioned that back when he did tiling they had none of these tools they use for tiling now and the result would have been close to impossible to do back then.
Can't remember exactly what it was about now but it was all over the news here in Sweden. A few years ago there was some new cover tiles for houses. They were widely used because they were new and cheap but now they realized it was a ticking bomb. Turns out the house under the tiles was damaged from moisture or a reaction to the material or some such.

Most jobs have a lot of new things all the time, the web industry just have it a lot more. There is always some fresh meat out of school that think the old ways are stupid and we should do it this way instead. The old ones that warns that we tried that already and it blew up in our faces are "Backwards" and gets pushed asside.

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.
> 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.

Think more in terms of, say, Netscape Composer in the Netscape Communicator suite (or Microsoft FrontPage/Adobe Dreamweaver/HoTMetal as a browser mode or tab environment). Typing JavaScript in the console to create a DOM document that's easier to type up raw in a text editor sans JS ain't exactly the same thing. It's not even the same category of thing.
He probably means a WYSIWYG-style page editor... Microsoft Frontpage, Netscape Composer, etc.
"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.

>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.

>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.

> 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.

Your comment basically sums up my feelings exactly even though I agreed with the intent and principle of the article. At the end of the day my HTML/CSS skills alone won't put food on my table. The brochure site market is basically eroded away by squarespace / wix / facebook and whatever else.

The "to even start" is the key phrase there.

Sure, you have to learn programming to build a modern web app. But starting with HTML and CSS can be a good entry point.

> There is something remarkable about the fact that, with everything we have created in the past 20 years or so, I can still take a complete beginner and teach them to build a simple webpage with HTML and CSS, in a day.

Speaking as someone who has spent many hours lovingly hand-crafting CSS, I don't see how this beats using ms word or google docs or any other way to produce a static document. You can even have those editors output to HTML. I can teach somebody to do this in minutes, rather than in a day. What actual deliverable can people produce using html+css that isn't easier to make with other tools?

A web page.

A word processor or a web publishing framework are more complex and less tractable than HTML and CSS written in a text editor. Even if you manage to export something it will be mangled and you haven't learnt the tools or produced the result that you set out to.

Learning HTML and publishing something on the web is a uniquely technically empowering feeling.

HTML and CSS are probably the absolute worst thing for document creation and management. HTML/CSS are in fact complex, and suffer major issues with export, long-term backup, sharing/collaboration, revision control, review-workflows, printing, security (encryption and password access) and consistent presentation. This is why you want government documents stored in PDF, ODF, or DOCX and not in HTML/CSS.
AFAIU, (there's probably better insight out there)— but governments seem to love XML.
Sure. There's a reason why ODF and DOCX are both xml-based formats in a zip container.
I get that it's empowering, as a hobby I spend a lot of time on it! But much like building a ship in a bottle, mastering the unicycle, or running your own enterprise-grade server rack at home, I can't justify such a painstaking and intricate craft with proportional utility.

Platforms like wordpress, squarespace, and wix all make a killing by providing a 'good enough' experience with a WYSIWYG interface, and I think that's empowering a large set of people who neither want nor need to learn CSS syntax.

(I do suppose understanding the basics of the DOM is helpful for any internet user, but you don't even need to publish anything for that info to be valuable!)

You can, and there's nothing wrong with it if that's what you need to do (using word/google docs).

That's not the point of the author though. She's saying compared to frameworks like React and Angular, making a web page in HTML/CSS is a lot easier.

The subsequent point being, once someone has taken a day to learn HTML/CSS this way, it acts as an entry point to get into more complicated stuff (i.e. js frameworks, or backend coding, etc.) and become a web developer.

You can use word or docs to create a static document. Sometimes that's all you need to do. Then you're done. It doesn't make you want to get into web development because of having done that. (sometimes, maybe, if you're interested enough afterwards.)

Nowadays the industry wants React devs. If you're an outsider, you have to very intentionally put yourself through bootcamps so you can get hired. React is not easy to learn. It's not easy even if you have a computer science background (but never done web dev). Just "picking up React" as an outsider is nearly impossible.

If you have 2 million academic papers in PDF format and the deliverable is a table of p-score by school. HTML is a compromise between ease of use and keeping metadata in the document.

That's why we tried UML to model the relationships of the data as distinct from design choices, like the (x, y) of the image on the third slide. Either party likes stripping all the metadata from the other, so HTML is now the standard so we can share inefficient, festering hunks of shit over the internet.

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.

> It is not sexy.

IMO, the desktop environment in "Linux on the Web" [1] is a very sexy usage of modern web standards (including some non-standard stuff like the Chrome-only HTML5 FileSystem API)

> put some text and images online where people can see it.

I agree with this sentiment. My "backend view" [2] is just for things like that.

[1] https://linuxontheweb.org/desk.os

[2] https://linuxontheweb.org/pics/

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?

Hey there, I am a product manager at DocuSign. Sorry about your experience. I would love to dig into this - can you drop me a note at bilal dot aslam at docusign.com? Thank you!
Sure thing, will do.
Remember to turn off your Adblock ;)
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.

> 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.

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.
The only custom hacks are my own styles. Every so often it sends me an email saying "hey I just auto-updated to the new stable release". It's great.

and yes I have taken basic security measures to close off a lot of stuff, I dunno if it'd survive an attacker who specifically had it in for me but WP + a decent security plugin does fine.

> 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.

> 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 :)

(comment deleted)
Are HTML and CSS really vanishing though? 99% of the websites are still built on them. People starts replacing them when they build applications, which is fine imo since HTML and CSS were not conceived to build applications.
I would say 100% of web "sites" are built on CSS and HTML, web services on the other hand is what really pays to learn.
(comment deleted)
> "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.

What were app dev entry-point positions like in the (good? better?) old days of desktop applications, before the many-headed Hydra that is the Web came and ate everything?
Tools like Delphi still haven’t been matched for GUI development: I was able to use it as a 6/7 year old to create little programs with buttons that popped up message boxes when clicked. And, if I needed help, I just clicked something on screen, hit F1 and got great documentation.
Yeah, very true. VB1 and then Delphi constituted my ingress into the world of GUI programming as well, after C64 Basic and QBasic.
I had the same experience with Delphi and similar tools.

It's amazing to me that 20 years after, the Web is still not quite up to par with regards to speed and ease of development as well as performance. I'm not sure we'll ever get there, either.

If you could build your own hello world WinForms program with some interactions, you had a reasonable chance of getting a junior position if you had some education.

I knew a guy who worked on a pharmacy application that calculated IV drug mixes that was a Visual Basic WinForms app and written with basically no knowledge of re-use or architecture. Kind of like web development where CSS was only applied via id's and so there was a lot of code repetition.

Visual Basic. You started there and then "graduated" into Petzold-style Win32 programming.

Those days were not better, by the way. Win32 programming was and is horrible.

> 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. :)

>Why isn't the entry point <Ctrl-shift-c> into devTools, for example?

Open dev tools in any major web platform like Facebook and you'll have your answer. The DOM of many major sites is increasingly less readable to humans.

Contrast to the MySpace days, where many people did cut their teeth with HTML/CSS via view source.

That's because the actual DOM isn't what devs look at. Its the vue/react dev tools. The real Dom is full of layout divs.
We're talking about entry-level folks here, not devs
I'm talking about starting with about:blank, which would be the equivalent of writing HTML in an empty notepad/MS Frontpage window in the nostalgia years. Not starting from a heavyweight page.
I guess I'm not sure exactly what her point is, or who she's mad at exactly. If there are vanishing entry points, it's what the market is demanding: more complex applications that look and feel like the big players. Single page checkout flows. Client side form validation. Who wants to have to post a form, wait for the page to reload to see that you've missed a required field?

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

Not sure who is the "we" that she's referring to here. Nobody is actively "making it" anything, it is just the changes in people's and companies' expectations as technology develops.

Not sure what apps you are talking about. The modern web loads immediately, then slowly snaps in user controls and buttons. Instead of pressing something and having an immediate response, now you press a button and if you are lucky, the lazy javascript developer who wrote it remembered to add a loading symbol. And you are usually not lucky.
+1. My browser already has a progress indicator baked into it. Thank God those lazy JS developers move all the heavy lifting to a secret place where I can't see what's going on.

My progress indicator indicates fast progress these days!

She's longing for the "good old days" when web development was easier to learn, but AFAIC the good old days were 15 years before that when the "entry point" was C64 basic and there was no world-wide web. I would have written something similar in 1999 when I saw everybody goofing off with HTML and CSS and having important things like ASCII codes and memory allocation hidden from them.
> or who she's mad at exactly

This bit makes me think you got her point, but you didn't want to acknowledge it.

I am not so sure about "complex applications". More often than not I see sparrows being shot at with a canon. Some web site which is not even an application, but loading megabytes of JS just to show 200 bytes of information. For some reason they call this PWA. Except all already forgot what was supposed to mean.
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.

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).

What pisses me off is when people defend javascript with politics-heavy statements like inclusion, gender or whatever and then most of rational people just shut up. Backend tech or non-javascript tech is not gatekeepers. New comers just enter the wrong gate led by wrong people (you know I don't really mean people..)

About hiring, sure, I had to withdraw Elm implementation before I left a project. It's responsibility for what's good for them in hiring new folks. That's sad.

My probably-never-came-true dream was that just improve HTML honestly. 1) Make controls style-able 2) Make more controls

I hate to look like a jerk, but I say it again, big corps are significantly part of this problem. People just pick React and abandon everything.

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.
Rachel Andrews is a great inspiration to me but the post here is kind of mid conversation, normally she emphasises document structure and accessibility.

She also is an evangelist for CSS Grid and why that should be the layout engine of choice instead of a framework.

I think a catering analogy is in order for those people that say that this basic stuff is not important and you have to take the frameworks if you work in a large team on these mythical mega projects. The analogy goes along the lines of 'can you cook for yourself' yet it doesn't really apply if you want to work in McDonalds. In a hotel kitchen that does 200 head wedding dinners clearly you need to be able to use the catering supplies and not necessarily know how to do actual cooking. I will work on the analogy, but there has to be a better response to the comments provided by people engrossed in complex build tools, frameworks and esoteric TLAs.

You are right though, and there is no reason why some vast modular behemoth of a system cannot write the proper HTML tags, e.g. aside, section, nav, figure not to mention main, header and footer with people knowing what they are doing rather than using these elements because they might be better for SEO. There is also a problem with the design process that does not put content first and takes a visual mockup as the starting point with nothing on the mockup having semantic value.

I regularly look at 'view source' to see how bad the sea of divs and class tags gets. It all goes against Google's performance recommendations yet it gets churned out by people that should know better. So long as you are with the delusion of grandeur that your website is so much more enterprisey and complex than these little things Rachel Andrews works on then you are going to stick thinking that way - pay cheque depends on it.

I think that there needs to be more of a movement like what happened with responsive design or flat design, a new thing that people understand even if they have no practical skills. The tools are all there but it requires as much unlearning as learning. Few in the industry have the circumstance to forget everything and go to proper HTML with vanilla javascript and CSS that uses grids and CSS variables. But it is a good entry point what we have now, coding for evergreen browsers, with time saving arguments that are compelling.

When I do view source and I see a couple of HTML5 tags and a sea of divs I think that the web page is by a team of people that actually do not know HTML. They have their excuses but when you look at it there is no logic to it. I got told off once for using an address tag around the copyright notice in a footer, as if I was insane. I was told to replace it with a div.

Yes, this is so sad to see. The obsession with frameworks and "JS everywhere" pushed the users interests out of the picture. I really really miss the start of the XXI century when web was improving at a fast pace. All those web standards and accessibility initiatives where are they? Does anyone even use validators any more? Even if adherence to standards does not matter, accessibility still should. Alas.
Not sure about the overall ideas in this one. I am currently writing apps in Angular using Python on the backend. Just got a new contract. My career started years ago with only HTML and CSS.

Being experienced, I would agree with the thesis here, except for the fact that we hire several junior devs here at my new office with only HTML and CSS knowledge and then gradually teach them frameworks and tools they will need.

Other places I have worked have taken this approach too. Don't know Angular or ember? That's okay...if you are teachable and really want to learn. Those are the real skills you need.

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.

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.

(comment deleted)
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.