I’ve always been a proponent of ease of development. All things being equal, when I have a choice I will pick the easier language/tool/environment.
But all things are never equal. Developers have to consider development costs and their personal skillsets and platform install base and hundreds of other variables in their decision to build a product on a particular platform using a particular set of tools.
What wins? Install base.
Example #1: Playstation. Writing games for the original PlayStation, PlayStation 2 — and even PlayStation 3 — is incredibly challenging. The hardware is complex. The documentation is abysmal. C/C++ is de rigueur. But the PlayStation line of game consoles has sold hundreds of millions of units, and developers have risen to the challenge of making PS games, because that huge install base represents the chance of making a fortune.
Example #2: iPhone. Creating apps for iOS is no easy task. Objective-C is an obscure language that is only popular due to the runaway success of iPhones and iPods.
That’s why I was surprised at the recent announcement of Swift. Apple has no business need to create better tools or languages. Developers are not blocked creating iOS apps. Yet Apple continues to improve the Xcode development environment and now introduces a new programming language that should appeal to many developers. Fascinating.
iOS install base. Check.
Apple winning the hearts and minds of developers. Check.