I have a problem with the word lightweight. It used to mean something along the lines of »efficiency« (in terms of performance, memory footprint, code used). Nowadays it seems the word lightweight has become redefined to »ommitting the important stuff, doing things wrong - as an excuse for having a "small" code base«. Caution: this is just an opinion
Today pickadate.js scrolled by and I suddenly had that weird sensation running down my spine. Could've Rebecca's tweet been hinting at this? Yep, as tragic as this sounds, it did. I usually don't bother reading HackerNews (or HatingNerds™, as I like to call it) - flipping through the comments brought tears to my eyes. People actually congratulated for »a great UI«. Only a hand full mentioned keyboard and accessibility. There is no keyboard access and accessibility-wise it's a fraking nightmare. But hey, it's a great lightweight date picker - job well done!
It pains me that there are over 1100 People starring a github repo, that sacrifices quality of implementation for something as ridiculous as file size. It pains me that over 1000 github users like an URL parser, that completely disregards the standards and uses lightweight as an excuse to do so.
Dear news services: I implore you to do some sort of quality control before recommending random tools. It's ok to not promote everything.
Dear developers: I implore you to have your friends look things over to find serious issues like missing keyboard access, accessibility, or even specification compliance before you go public.
Now, you shouldn't stop encouraging people to create stuff. On the contrary. If they build stuff and didn't quite nail it - help them improve. People did exactly that to me. I sucked, they told me, I improved. If they hadn't, I'd probably still be building table-layouts.
This is not a pissing contest. It never was, it never will be. If you think it is, you are in the wrong place.
Now that a day has passed and I'm killing time at some random airport, it's time to add a few more thoughts to this otherwise useless rant.
By no means do I want to hinder anyone from taking the steps of creating stuff and publishing that work. We, the web, need this to happen. In fact, we need to encourage people creating and sharing tools. This is important.
We need to help each other build great stuff. If you're new to the game, find people to review your stuff. Other people have been playing this game for some time now and do this. The fact this happens behind the scenes is just not communicated well enough. Every article written - reviewed by others. Every tool developed - reviewed by others. We need a second (third and fifth) pair of eyes and opinions. Either to hilite mistakes, or to strengthen our position for a specific decision / solution.
That's that. Back to the lightweight thing.
Take jQuery and Zepto for example. jQuery found and fixed all the gaps. They ended up with a bloated code base. Zepto swept in, took jQuery's good parts, made some sacrifices, et voila, it's a lightweightier solution to the same problem (yes, this is overly simplified, I apologize for that). The point is, the creators of Zepto had very good knowledge of the domain and its problems. They made sacrifices and made an argument for it. This is fine. You may break the rules if you know what you're doing.
The two projects named in the rant above are not like Zepto. The date picker is lacking some (fundamental) features. The author's been called on them. He'll probably investigate and fix them - any serious developer would. If this had happened had he have his code reviewed by others? Up to the reviewers. But at least there'd been a chance to find these issues before hand.
The URL parser thing is another story. A lot of issues have been pointed out - most of them shut down with the excuse of being lightweight. This author made a deliberate decision to provide a broken service without explicitly saying so. This is the scary part. People who've not read RFC 3986 - and I think they are the majority - might just mistake this broken thing for a working solution. This is bad. Very bad. Fact is, most people just trust some random third party utility to get the job done right without investigating.
So from now on: if something is labeled »lightweight« - be extra skeptic. Investigate to find out if you're dealing with deliberate decisions or plain inexperience.
Be a little more critical about things. If you see mistakes - tell the authors. How are we - each and every single fraking one of us - supposed to improve if others don't tell us what we did wrong? Be more critical - it's not a bad thing.
The author does not allow comments to this entry