The world needed yet another JavaScript library...

... and it has gotten yet another one in scandiojs. The ubiquitous question arising seems to be: why would anybody possibly ever write another OpenSource JavaScript library in an age of GitHub, Node and raving sharing of code in general. Wouldn't it have been so much easier to pick Underscore, jQuery and a set of small plugins flying around the inter-webs and mangle them into one to become a company's JavaScript library. In this case we're talking about Scandio GmbH. A company full of incredible people which I need to thank upfront for being patient and allowing me to play with this idea.

Lets take a step back and reconsider ourselves. Why did people start developing libraries and a frameworks and how did some tiny code asemblies get to see the light of OpenSource? I think mostly companies and their developers kept running into the same old problems during their every day development. Some might have used snippets, others might even have implemented the same thing a redundantly across various projects. This is surely not culpable but why should not everybody collaborate on one project contributing his own solutions. Discuss issues and problems while trying to find a solution suiting everybody without anybody having to run into the same old booby traps once again. Sounds almost too saviour. Moreover, I would love to see but never expect this library to live up to that promise.

Anyhow, so we tried to find common problems and workarounds people have been using over time and trying to incorporate them into one library: yet another JavaScript library, ours. In the process, some people had requests on features and others merged their previous work in. All a good thing, that's what it was about. This consequentially made the library especially tailored to Scandio's needs while offering an encouraging guise for everybody to contribute back. It is intended to be modular and testable. Hopefully it will after all be used by a few projects.

Up to this stage it is build around 12 modules starting at conditional library and script loading, moving on to string manipulation and DOM-caching, allowing logging into the DOM while having standard utility functions and also easing timing and offering a ”php-bridge”. Still, there is more such as a lightweight module definition for little reusable scripts and more little things.

It is all built using Grunt and its ample set of available build-tasks, Jasmine and Testem for testing and TravisCI for continuous integration. Furthermore, all the works are hosted on GitHub waiting for anybody internally or even externally to Scandio to write a little extension. There is a mixin-function for it giving a starting point and some examples already being set up.

Maybe yet another JavaScript library will end up being something useful for at some people and not just part of an ironic blog post.