Eric Meyer is a CSS expert who writes about web standards, accessibility and design, along with personal essays about his family.
HN links his "Considered Harmful Essays Considered Harmful" and CSS posts, and commenters call his writing about his daughter Rebecca heartbreaking and gripping.
Here is a thought you might want to consider and see if it makes sense. This is personal, but I also believe this is where design codes (especially CSS) are going to go.
It is not going to be Tailwind or more new frameworks. Honestly, I think all of these Bootstrap, Foundation, and Tailwind, etc. are like middle-layer abstractions are for designs that are neither small nor large. Bootstrap won because of the out-of-the-box UI designs that looked nice overall, and so did Tailwind. By the way, I love Tailwind's color palette, and I continue to steal from it all the time.
CSS (the actual raw CSS) has become so usable, easy and just works while browsers are so advanced these days, that I don't think we even need to reset/normalize/sanitize the styles.
The tools we need will soon be the ones that will integrate directly with IDEs, akin to how the likes of Figma are going. Imagine a designer either does an overall design or works on modules of components or StyleTiles that are reflected in the CSS either on its own or part of the Javascript-ified HTML markups. When a developer changes something, it is reflected back to the designer's tool so that the designer also knows what changed.
I believe this is where the AI-assisted ones will shine — their ability to bridge the relationship between the design and the code. The interface to interact with that can be the drawing tools (Photoshop, Affinity, Figma) for designers, prompts, or harry's wand (it does not matter).
In fact, for…
While developing web applications and doing every part of it myself(design, coding, everything), I have noticed that I design my web apps in three stages:
1. Interaction Design: In this stage I design my web app's UX - mainly wireframes. The focus is on usability and not on look and feel. For this the only useful tools are paper, pen, whiteboard and an open, creative mind. Knowledge of html,css,js will help you in determining what is feasible and what is not.
2. Illustration(optional):In this stage I take wireframes as input and create a design that will look exactly like final desired product. I use vector graphics tools to create design and then export it into png files. If some heavy graphics is needed I also use raster graphics programs. Tools recommended:
1. Vector : Adobe Illustrator or Inkscape(open source)
2. Raster : Adobe Photoshop or GIMP(open source)
I don't use anything else.
3. Web Design : In this stage, I do actual front end development. I take png mockups created in previous stage and make webpages by coding html,css,js in my editor. Tools used :
a good editor(vim/emacs)
css reset(http://meyerweb.com/eric/tools/css/reset/)
jquery library(and some plugins)
Browser(Chrome/firefox for development/testing. IE8+ and Safari for testing)
Some browser plugins - Firebug, Color Pick, Resolution Test, etc.
Some sites - 0to255.com, kuler.adobe.com, ui-patterns.com,
smashingmagazine.com
That's it. Anything else isn't really necessary.
One more advice. Get…
I really hate this framing. The title is an old meme, but to me it always feels like a false way to present your case by making it feel more "official" than it really is. I'd rather it be titled something like "Here's why you should be careful when using Cloudflare" or "Cloudflare runs into issues when using Tor or disabling JavaScript". The framing shuts down all debate, and ignores that it's mostly just considered harmful by the author. (more: https://meyerweb.com/eric/comment/chech.html)
I personally love Cloudflare. It's made a ton of stuff a lot easier for me as a developer. Sure, there's some downsides... but that's true with any service. (And a lot of the complaints are opt-in features that the web developer enabled)
It seems the author only has problems with Cloudflare almost completely because he uses Tor. Unfortunately, most Tor traffic is malicious (94%, by Cloudflare's count), and the whole point of Cloudflare is to prevent malicious attacks.
Anytime you do something for privacy (block ads, disable JS, use Tor), unfortunately things won't always work exactly how you expect.
Lastly, it ends with a weird conspiracy theory... "It is probably a US Government-attached intelligence agency". Okay.
TL;DR - the article seems to invent its own terminology for what many others might know as (roughly) "OMP parallel for" or a fork-join pattern [1] or even in POSIX shell a "a & b & c & wait" pattern. IIRC, the Python multiprocessing module calls it "imap_unordered". The "map" part of "map-reduce". Etc. I'm sure it has many names in both parallel and concurrent contexts which (at this level) share some control flow concepts.
When this pattern applies, it is indeed easier to use than less structured alternatives and error handling & resource clean-up & API design are perennial topics, but I'm not sure we need even more diverse terminology. For example, what the article dubs "nursery", most call a "pool" or "group". "Nurseries" are declared a new thing in a boldfaced paragraph with innovation claims only softened later or in footnotes. I think this is why a lot of pushback happens, but also see the funny [2] mentioned elsethread [3].
I did love the domesticated-wolf comparison pictures, though. :) (And I say that earnestly, not snarkily.)
[1] https://en.wikipedia.org/wiki/Fork%E2%80%93join_model
[2] https://meyerweb.com/eric/comment/chech.html
[3] https://news.ycombinator.com/item?id=31956840
Dijkstra's "Go To statement considered harmful" article spawned a whole series of "XXX considered harmful" papers by various computer science researchers in the following years. This has even led to "Considered Harmful Considered Harmful" counter posts to the practice: http://meyerweb.com/eric/comment/chech.html
One can argue that these "considered harmful" taboos were largely personal opinions based on the, in retrospect, limited experience with early computers and computer programming projects. Modern computers are over 1000 times faster with 1000 times bigger memory and many other improvements. This, for example, makes scripting languages much more practical than in the 1960's, specifically making run-time type inference and similar implicit/weak typing methods feasible for many programming projects. These typing methods clearly break many of the rules established in the 1960's but empirically make software development much faster in most cases. C++11 caved into fifty years of real-world experience and added type inference with the auto keyword -- for example.
Before Rebecca passed, her older sister Carolyn requested help [1] to raise money for childhood cancer research by participating in a shave-a-thon.
I was slightly upset to see she only got to 90% ($10,443 of $11,500) of her goal [2] -I guess I'm hoping the internet can step up and help (I believe we can still add donations after the event).
Edit: I'd point out that "The family requests charitable donations be made in Rebecca’s name to the Philadelphia Ronald McDonald House [3] or the St. Baldrick’s Foundation. [1]", however I think it's important for Carolyn to know her earlier actions specifically were and continue to be worthy of support and respect.
[1] http://meyerweb.com/eric/thoughts/2014/02/26/a-st-baldricks-appeal-from-carolyn/
[2] https://www.stbaldricks.org/participants/mypage/663064/2014
[3] http://www.philarmh.org/