Tim Bray has a great post discussing the state of software development in 2014. I found myself nodding in agreement virtually all the way through this one, mainly about client-side development for mobile and the web.
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.
A bit about mobile:
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.
Bottom line, client-side development is a difficult place to live but server-side is more stable. I have felt this way for a long time, client-side makes me cuss and server-side makes me smile.
It’s a good read.