Serious engineering: most common tasks have solid solutions
When we deal with software and code, especially open source code, there almost always is a specialized, rock-solid and well-established solution for what we need. Let it be a program such as ghostscript, a library such as OpenMPI or numpy, a web server such as nginx, or a content management system such as Drupal. No need to only name dinosaurs, also quite modern developments often are absolutely professional and rock-solid, considering e.g. pandas and Redis. All of these and many more software projects have in common that you, as a user, can rely on the developers to be awesome and make things right. If it fits your problem, you can be sure that you have a very good tool at hand. Often, you even have no doubt that you are using the best tool the world has to offer. No second thoughts, you can go ahead and combine these technologies and do some serious engineering with serious tools.
Web development: most common tasks have an entire forest of imperfect solutions
However, when it comes to web frontend code snippets, the situation is entirely different, at least from my point of view. I’m not talking about serious projects such as backbone.js, which is great. Did you ever have a quick web search for finding the right ‘Lightbox’ implementation for the website you were just working on? An image gallery? An image slider? There are tons of different solutions out there, because this is an extremely common problem and every semi-experienced ‘web developer’ comes up with her or his own approach and publishes it, sometimes even tries to sell it. I think the issue here is that the community of ‘web developers’ is one of the largest among software developers and that the sub-tasks often are quite small. This leads to quite a low entry level, yielding many solutions. The result, put in extreme words, is a forest of imperfect solutions. It is entirely possible that one tree in this forest is much better than the rest but, in my opinion, the main problem here is: how can you find the best solution? The forest is just too dense, it is difficult to get a good overview. It is clear to everybody that it would be much better to have just a handful of solutions with a high quality standard, resulting from joined efforts and good engineering by people that have a broad experience in the field they are working on and a strong technological background in what they are doing.
Yes, I could start hacking on my own ‘Lightbox’ solution right now and I would get it working, for sure, like all the others did. But it would fail in certain scenarios, it would show inconveniences, because I do not have the experience. In the meantime, browsers and web standards are much too diverse to be able to come up with the perfect solution just because one has done a bit of software development for a couple of years. You have to be a real expert.
Need a lightbox? Have a closer look at Magnific Popup
According to the considerations made above, I recommend people to read Dmitry Semenov’s lightbox article here:
I have done research on Lightbox stuff for quite a while now and no solution really convinced me by the criteria outlined in the first paragraph. Nevertheless, I had to use this or that solution here and there, with mixed feelings. Magnific Popup — as published in May 2013 by Dmitry Semenov — is the first solution that makes the impression to me to be able to develop into the one, rock-solid, well-established open source project. Although initially published by Dmitry Semenov, Magnific Popup in fact is joined effort, it combines experiences and seemingly merges the best technologies around the lightbox topic known today.
With this article I would like to provide some orientation in the forest of ‘Lightbox’ solutions. Have a look at Magnific Popup, and, if you think something can be done better, contribute. Magnific Popup at least has the potential to become the best. It should be among the first search results when searching the web for ‘lightbox’ or ‘jquery lightbox’.