Lib and learn?
This article was first published on Net Magazine (10-09-2012).
Below is a tweet I posted a month ago. It’s mostly a knee jerk reaction to a couple of experiences I had just had.
I think bootstrap/boilerplate/etc hurt WebDevs out there. I interviewed 2 people with a few years of experience & all they know is cut/paste— Thierry (@thierrykoblentz) October 13, 2012 https://twitter.com/thierrykoblentz/status/257201609283604480
To start off, I’ll say this article is not about differentiating libraries or their users. Even though discussing the difference between libs or between web authors are legitimate debates, they do not relate to my original tweet, which only boils down to what using libraries entail for many authors.
By removing barriers, libraries often lead authors to ignore problems. Some they disregard, others they are oblivious to.
Espousing a library often means:
- dropping IE 6, 7 (, 8?) support without any thought for a fallback.
- little consideration for page weight.
- no discrimination for what is included.
Libraries may shield authors from some important stuff:
- the way browser quirks are ironed out.
- the underlying blocks (technical choices) upon which the library is built.
For many, using a library is a means of getting away with the learning curve; to avoid dealing with what Douglas Crockford calls “The most hostile software development environment imaginable”.
I don’t see anything wrong with that approach though. After all, building web sites should not be the privilege of “people who know better”. But we cannot argue the fact that blindly relying on tools to erase obstacles can easily make people lazy or uneducated.
@roy @thierrykoblentz Issue with plethora of libs/plugins/frameworks, some devs stopped thinking. We didn't have as many libs 10 yrs ago.—(╯°□°)╯lʎǝM ǝllǝʇsƎ (@estellevw) October 15, 2012 https://twitter.com/estellevw/status/257739411482091521
Because libs facilitate development, authors have less to learn in order to make things work. There is no need to look for answers, no need to figure things out. But for every challenge eliminated, there is a missing opportunity to learn something new.
I’m not saying people should re-invent the wheel in order to learn their craft. What I’m saying is that designers and developers should be curious about how things work under the hood. Most libs offer a tremendous wealth of knowledge for those willing to dig around. These projects have great contributors who comment their findings and decisions.
Learning about the “how and why” through comments is not as enlighting as experiencing an issue and finding a fix on your own, but it saves you the time and pain.
On their own, bootstrap/boilerplate/etc are invaluable tools. Their negative aspect mostly lies in the shift the plethora of libraries and frameworks has created. Today, people spend more time learning a tool rather than a technology. We now have SASS ninjas and WordPress gurus. But as far as I know, these are not front-end skills, and being a Drupal wizard will not make you a great FEE.
Learning from a library should be more important than learning the library itself.
@thierrykoblentz Things Great Engineers Never Say #1: "I’ve used _____ but I have no idea how it works” jobtipsforgeeks.com/2012/10/08/thi…— Karl Isenberg (@KarlKFI) October 16, 2012 https://twitter.com/KarlKFI/status/258037838900248576