Issue #190 (Coupling, Mobile/RWD, Productivity, Multimedia)

It's amazing how things have changed in front-end development best practices in just the last 5 years. In his fantastic book Maintainable JavaScript, published in 2012, Nicholas Zakas discusses tight coupling vs. loose coupling in front-end code. He gives the following suggestions, which I've simplified into a basic list for brevity:

Keep JavaScript out of CSS (this was in reference to IE-only CSS Expressions, which were awful for maintenance and performance)

Keep CSS out of JavaScript

Keep JavaScript out of HTML

Keep HTML out of JavaScript

Zakas was always somewhat of a purist, and this advice was excellent advice in 2012, and it was consistent with the "separation of concerns" concepts that have been prevalent in the standards community for years.

But things have changed. Probably the only one of those suggestions that's still technically the right advice is the first one. But since CSS Expressions were only supported in IE7 and below, that means we could say that not one thing on that list is categorically good advice today.

With the emergence of UI libraries like React and Vue, the Web Components spec, atomic CSS, and other similar techniques, the above advice is limited in its value and is probably bad for code maintenance in many cases. That being said, I'm sure many developers still write vanilla JavaScript that can benefit from those loose coupling concepts.

Fortunately, that part of the book is only a few short pages. Most of the book (242 printed pages) is still great advice, and I highly recommend it for anyone working on JavaScript on a large team. But it is interesting to see how modern practices and techniques have that small section in the book almost obsolete.

vizflow
A relatively small library for adding transition effects and interactive visualizations to HTML5 documents with a simpler design compared to other popular interactive visualization libraries like D3js.