At his Ongoing blog, Tim Bray offers a long blog post titled Software in 2014. Rather than looking forward to the year ahead, the post is more of an analysis (and rant) of what web developers face in getting their products out to customers now.
According to Bray, some things are working well, others not so much. He says that the industry is at an "inflection point in the practice of constructing software."
The client-side mess. Things are bad. You have to build everything three times: Web, iOS, Android. We’re talent-starved, this is egregious waste, and it’s really hurting us.
Mobile sucks · I’m going to skip the differences between Android and iOS here because they’re just not that significant in engineering terms. Anyhow, here’s the suckage.
First of all, you have to do your mobile development twice.
The update cycles are slow. Days in the case of iOS, hours for Android (compared to seconds for browser-based apps). What’s worse is that you can’t even count on people accepting the mobile-app updates you send them. Got a critical data-losing account-compromising privacy-infringing bug? Sucks to be you.
The devices are memory-starved, CPU-starved, and battery-starved.
There are loads of form factors and it’s getting worse.
You don’t get a choice of languages; if you hate both Java and ObjC, get another job.
Unit testing is a bitch.
This is just a part of the analysis. Bray's complaints continue. He also questions who's making the money in mobile apps.
You can’t make money. Seriously, Apple is always talking about the billions and billions they pay out of the app store, so why is it that I don’t know anyone who’s making serious money on mobile apps?
Of course, this may be more of reflection of the respective conditions between the iOS and Android communities., the average price of iOS apps is higher than Android apps, and more iOS developers are making some profit than their Android counterparts. And there's a different expectation of each user base about paying for software.
I've noticed the many new developers offering Mac applications. Part of this is the continuing acceptance of the Mac with consumers and in business. At the same time, perhaps new iOS developers are trying to leverage their Xcode experience over to the Mac platform, where average software prices are much higher than iOS.
Note that Bray sees that marketplace as "clients-in-triplicate for the long haul." That doesn't appear to leave much breathing room for any platform other than Apple iOS, flavors of Google Android and web applications. This conforms to the choices of developers I've spoken with over the past year: they all pick Android and iOS platforms. The third choice is a toss-up and something to worry about tomorrow. Or next year.