This Developer Hates Mobile

There’s a common misconception that mobile is the future of software development. Mobile, in this context, means a touchscreen device like your phone or tablet.

I’m not picking on this particular author — he is simply regurgitating a common assumption — but this is the type of sentiment I’m writing about:

The era of the laptop and personal computer will eventually come to an end, but not until they allow developers and power users to do everything they can on high-end devices as easily on mobile devices. Before this can happen professionals of all sorts, the power users of the various platforms will need as much memory and processing power as they are currently using. (Source: grack.com)

I disagree with this mindset, almost entirely.

I do agree that most software development will happen for mobile devices, but I do not believe that software development will be on mobile devices, at least for quite a while, if ever.

There are two types of users: creators and consumers. The creators among us are the ones who tinker, who take things apart, who build things “just because.” Their needs are entirely different from the consumers, who enjoy having things “just work,” and do not need to know (or want to know) how it does that. Simply, consider the difference between a person who watches a movie and a person who makes a movie.

The problems with being a creator on mobile platforms are not related to the amount of performance we can get from them. Indeed, some of the higher-end tablets are very fast and quite capable of handling software development (my field), at least from a hardware point-of-view. It’s not the performance of mobile hardware, it’s their draconian software licenses and their sick culture of walled gardens which prevent us creators from doing our work.

The number one issue holding software development back on mobile devices is the operating systems which they run. Android, iOS, BlackBerry, and Windows Phone, all require “rooting” before most of the software is even available to a developer. As a developer, I don’t want to work on a device that does not obey my commands, nor do I want to work on one that requires a hack in order to obey my commands. This sort of device might be great for your mom and dad to watch things on, but it’s certainly not designed for creators to build things on.

Right now, the ideal development machine is the one in which I use: a PC laptop, running Linux and Windows. It lets me build anything I want quickly and without hassle. I don’t have to deal with any sort of bogus license agreements or ask for permission to build software for it.

In Canada, cell phones are sold locked to a certain carrier. This means that before you can switch providers, you have to call and pay to have your phone unlocked. Who really owns the phone, then? Can you imagine having to do that for your car if you wanted to buy gasoline at Shell instead of Esso/Exxon? It’s outrageous and a huge overstepping of authority by cell phone providers.

The most exciting parts of building hardware or software come from the freedom to explore, to scratch your own itch, then share that solution with your friends, who will go on to use it and change it to scratch their own itches. Mobile is heading in the opposite direction: locking everything down to keep the technical bits hidden away, and the fun of creation along with it.

There is a place for consumers. After all, the market cap of consumers is many times that of creators. But the place for consumers cannot come at the expense of the place for creators. Maybe the two never meet? Would that be a problem? Is there a solution which solves both needs? Does there have to be?

Until things change course and mobile device manufacturers start selling devices with open and libre software set, including operating system, and offering sane license agreements, this creator will stick with his laptop and Linux + Windows, thank you very much.

The Optimistic Programmer

Recently in the world of programming blogs there has been a string of articles by disenfranchised developers bemoaning their current work environment in a sarcastic and ultimately unproductive manner. I understand and appreciate sarcasm and tongue-in-cheek humor but what I have seen lately goes above and beyond simple satire to a new level of pessimism that in the end is more about self-serving venting than anything enjoyable to read or to learn from.

At first I shrugged off the first article, which was a negative play on a post I made last week, thinking that perhaps the writer had a bad day and was simply going a bit over-the-top. But then another post by a different author came up on DZone in the same light. And then another.

I then started to wonder why there was this growing trend into negative venting blog posts, where their only function is to belittle other peoples’ efforts and cause as much controversy as possible surrounding that subject.

When I started this blog I made a choice: I wanted to prepare and post articles that people could read and learn from or to be more realistic, to offer them alternative channels of thought so that they can continue their research until they find the solution they require.  I have made a personal choice to be an optimistic programmer, meaning I understand that while there will be times that I am incorrect or times where my example code was not the most efficient it is more important to accept that and learn to grown from it, moving onwards and upwards, than it is to be negative and post with the only intentions being to vent and complain without offering any sort of solution or assistance.

There have always been trolls on the internet. There always will be. The best thing I believe we can do as bloggers is to call it what it is and try to be above it by taking the good points of a negative experience and growing from it, not brooding over it.

UPDATE: Since posting this I have received E-Mails concering the troll label I have applied to these posts. Specifically to the first and last links. While I still disagree with the method of complaining or venting with no solutions presented, I have mistakenly grouped what the authors wanted to be humorous posts in with the negativity I was seeing at the outset. Perhaps troll was a bit harsh. I apologize :)