Teamwork

by Luca Baldini on 11/20/2014

I have always thought of programmers as people who solve complex problems, translating them into sequences of operations that a computer can execute. However, and especially recently, we need to handle a lot more than that.

I started programming in the mid ’80s, and things were relatively simple at that time. The ecosystem we were working in was limited, and it changed very slowly. There were no browsers then (Netscape came out in ’94, while Internet Explorer didn’t show up until ’95), and the operating systems hardly ever changed.

Today however, everything changes, and quite often at that. Browsers update every 2-3 months, operating systems for mobile devices change multiple times a year, and given that they are developed by human beings who make decisions as well as errors, if I want my applications to keep working, I have to stay up to date, pore over all the new changes, understand what is different, and anticipate and correct errors (that others have made).

I’ll tell you about a few things that happened to me recently. As you know, Chrome updates every 5 to 6 weeks on average. And every “major” version contains fixes, changes, and sometimes, malfunctions. The latest version (39) had two “problems”: support for SQL databases (such as SQLite, I mean) had been removed from the web workers, and a regression was introduced, the effect of which was to display incorrectly the value of input fields in certain special cases. In version 13.5 we tackled both “problems”. In the first case, we decided to launch Safari to allow programmers to test applications offline on their computers. For the second case, I reported the problem to the developers. Fortunately, I had noticed the problem on Chrome BETA (which I use all the time precisely in order to find problems in advance that your users would see when their browsers update), and my report was analyzed and corrected, and the problem is not found in the current version of Chrome.

Last month, iOS8 came out too, and the Apple developers have made many changes. But they also introduced a bug, which, despite the fact that I reported it immediately, has not yet been corrected: if you load an XML text larger than 6-7 MB with the NSXMLParser native class, the application crashes! That’s why I’ve had to release a new version of Caravel that uses a third-party library as its XML parser.

I’ve described just a few cases, but there have been many others. Simply consider Lollipop and Windows 10 for some certainty that there will be others in the next few months.

In this sort of environment, the effort required to stay up to date grows larger every day. For people who produce software, today more than ever it’s important to find a way to eliminate this issue, and be able to focus on solving “real” problems – on the implementation of your applications – and not on volatile technological elements.

Instant Developer was created in part for this reason, and from this point of view, one of our goals is to give you a tool that is always in step with new technologies, taking on the task of handling changes and bugs in the new browsers, new operating systems, and new databases. And we’re always watching carefully for big changes that are yet to come.

Basically, we’re something of a team, you and us.

Image: applenapps.com

Leave a Comment

Previous post:

Next post: