IScroll is an open source, free software released under the MIT license and contributors are required to sign a CLA to participate in the development. This blabbing basically means that you are free to use my code in any way you want, for commercial or free software, for closed or open source code. Nobody will ever come after you asking for money or your first born.
This also means that the software comes AS IS with no warranty. It’s something I do for myself and –out of my good heart– release to the public, but (let me stress the obvious) I owe you nothing.
Why the harsh? I periodically get insulted (literally) for: not providing free prompt support, not sticking to some High Open Source Code of Conduct, using weird naming convention, using weird coding style, not providing extensive documentation, not committing pull requests in a timely manner.
Maybe people relate open source to Linux and Firefox and they think that I get paid for developing the iScroll. I know that iScroll is used by Nike, Bose, Apple, Playboy, Microsoft, Ikea… but let me make this clear. I get nothing back. Every new feature and every bug fix are hours that I remove from staying with my wife, from sleep, from my spare time or from work.
Multiply this by each open source project that I have (because iScroll is just the tip of the iceberg) and you get a pretty clear vision of why I can’t reply to each and every support request.
Contributing and testing
Fortunately many have participated to iScroll development. Without them iScroll would be such a lame script.
I am in no way attached to any part of the code, I accept any suggestion regarding not only the functionality but also the coding style. Whining about the name of a variable is not making the iScroll any better. Open an issue on the bug tracker or send a message to the Google group, I might not be very chatty but I read all of them. Promise.
I am very humble about coding, I’m not a coder, I’m just a developer. I do not have an engineering background, I did art school for god sake. So what? Am I not allowed to write code?
“I sent a pull request 3 months ago and it has not been committed yet”.
Testing the iScroll is one of the most time consuming tasks of the project. iScroll works from desktop to smartphone, from tablets to smart TVs. Often a small change in the code makes more damage than it solves. I do not have physical access to all the testing devices, so before I can push a change I have to make sure that the new code is not actually breaking something.
“Why don’t you use automated testing?”.
Unfortunately the most important tests that have to be done require physically touching the screen. I’ve not been able to find a solution to effectively test the code without a real device on hand.
Sometimes companies contact me requesting a new feature. If that feature is already in my to-do or if it is very general purpose I demand the code to be released in the main repository. Basically the company sponsors the project.
Never happened. Apparently that’s too much to ask.
I’m setting up a landing page for iScroll, if you want to sponsor the project (I hate the “donate” thing), I’ll put your name/logo in the supporters’ section and of course you’ll get regular invoice for that.
I often receive compliments about iScroll performance especially on Android. I subsequently get asked how I’ve been able to reach that kind of smoothness and my reply is never liked.
I try to over optimize the code for speed (at least in the critical spots). I use a –messy– build system that selectively replaces bits of code. I do not use external libraries. I do not use standard coding style. I do everything it takes to spare CPU cycles. I’m sorry if you don’t like my answer, but this is what it takes.
We are not to the point where you can throw your code to the browser and forget about optimization. You can (almost) do that on desktop but not yet on mobile (or TVs).
Plans for the future
I’m working on documentation! It is coming early next year. I’m sorry this is taking so long but either I fix bugs or write documentation. Actually this post should have been the introduction of the docs but it ended up being too long and boring and made a blog post out of it instead.
So, fear not. Documentation is coming real soon. Thanks for waiting so long.
Infinite scrolling is also coming to a small screen near you! It is coming out really well and it is good not only for “infinite” scrolling but also to manage very long lists with small impact on the device memory.
The bottom line
Don’t be a dick. I’m open to discussion, attacking me doesn’t help your point.
I do my best to reply to support requests, but I simply don’t have time. Unfortunately there’s a thing called life that tends to fuck with the things you like doing most.
Consider that every $150 donated I can take an hour from work and dedicate it to iScroll. Just saying.