Linkbait 40

A CSS-heavy edition. I’m doing research for my possible new book, and I need to know more about what people don’t like about CSS. So there’s a lot on that topic.

The Front-End Tooling Survey 2018 – Results. Which front-end tools are used most, and are best-known? Personally I’m most interested in the CSS tools the article opens with, but there’s also JavaScript, where Vue overtook Angular.
CSS: the bad bits. Starts with the global scope, of course. Joe’s solution of choice is BEM. Agree or disagree with him on the solution, CSS global scope is not always good.Continues with many more useful notes. Very useful for understanding what JavaScript developers dislike about CSS.
Very interesting article by Adam Wathan, where he starts doubting the separation of structure and presentation. Money quote:

My markup wasn’t concerned with styling decisions, but my CSS was very concerned with my markup structure.

There is some truth here, and I must admit I’ve started doubting the strict separation of structure, presentation, and behaviour we made popular in web development all those many years ago. I need some time to assimilate all of this, since I spent most of 2000-2004 telling web developers to strictly separate their concerns. Now … maybe it’s time to revisit that.
Food for thought.
A lengthy guide to using CSS custom properties, either in a Sass context or not. I especially like the heading “Don’t Be Too Clever.” You can do amazingly complex things with custom properties, but it’s not always a good idea. For instance, you can calculate font sizes and widths and such at runtime, but that might eat up too much valuable processor time. So calculate the values beforehand and let the browser switch between them.
Brad Frost on CSS architecture for design systems. He, too, inserts BEM into his solution, so I guess there must be something good there.
And while we’re on this topic, here’s Harry Roberts’s CSS guidelines. Not exactly new, but still important.
How browsers position floats. A technical breakdown of what happens when you float elements. With interactive example.
A breakdown of CSS !important and what we can use it for.
Doesn’t really treat my favourite use case: figuring out if you have a cascade problem. If styles mysteriously don’t show up, I add !important. If they do show up now, I have a cascade problem. If they still don’t, something else is going on. Useful debugging information. Afterwards I remove the !important and fix my code.
Interesting breakdown of how Microsoft CEO Nadella shifted from a Windows Everywhere strategy to a Services, Not Devices strategy. It took him five years because in the short term Windows mattered a lot to Microsoft clients.

[Office for iPad was] an easy win that symbolized the exact shift in mindset Microsoft needed: non-Windows platforms would be targets for Microsoft services, not competitors for Windows.

True. Right now, what Microsoft could do to target non-Windows platforms is porting Edge to Android and creating a competitor for Google Services. Now that would be interesting. Still, it’s a huge investment and so far it doesn’t appear to be forthcoming.
We always assumed that smartphones would entirely replace feature phones in the long run. This report, however, finds that feature phone traffic is actually going up in India, where both iOS and Android lose market share. This share is picked up by the new FirefoxOS-based KaiOS feature phone system, which, according to this report, has already overtaken iOS in India.
Interesting times are here again? In any case I badly need a Nokia 8110, which runs KaiOS.
GDRP and ads. According to this article, the new European GDPR (you know, the reason you got so many mails last week) is going to pop the adtech bubble. Doc Searls distinguishes between the ads themselves, which are not necessarily evil or bad, and adtech, which purports to connect the right ads to the right people, but mysteriously doesn’t and (my interpretation!) is so in awe of its own cleverness that it ignores the ad-blocker writing on the wall.
null >= 0 evaluates to true in JavaScript. Why? Abinav Seelan explains.
Brian Rinaldi argues against the job title “full-stack developer” by giving a lengthy list of things these developers are supposed to know. No one can be a specialist in all of these areas, and I’m not sure we need a lot of generalists who know a little bit about everything.
So don’t call yourself a full-stack developer. You can’t be.
Dave Winer on why the Internet is going the wrong way.
Have a tip for the next Linkbait? Or a comment on this one? Let me know (or here or here).