Tim Bray: “[H]ere it is nearly thirty years into my programming career and I’m still debugging with print statements.”
Heh. Same here, though it’s only been 25 years for me (wow, “only” 25 years?).
The lesson here is that old habits die hard—and that different segments of the developer community have vastly different expectations and preferences when it comes to tools. Case in point: Despite all the advancements in tools over the past decade (and despite the fact that I ran marketing for NetBeans at Sun for one of those years, and that I’m a big proponent of an IDE centric “connected developer” approach for Sun), my “IDE” of choice is still a combination of command line tools and Emacs.
Indeed, as I’ve learned over the years, this presents an interesting challenge for platform vendors. While grassroots momentum in the early adopter community is key to building a successful platform these days (think Linux, MySQL, and Amazon Web Services, among others), and early adopters will put up with a remarkable amount of pain to target these platforms (Linux, MySQL, and Amazon Web Services developers have largely relied, at least in the beginning and in many cases still today, on command line tools), what I call “integrated development experience” is key to taking these platforms to the mass market—and indeed can be an immensely powerful competitive weapon.
Think about how Microsoft was able to successfully leverage its Windows/Visual Studio/MSDN triumvirate to bootstrap .NET in the early 2000s, and how it’s leveraging .NET/Visual Studio/MSDN to bootstrap Silverlight today using largely the same techniques. Or think about how Apple is entrenching itself in the mobile developer community by providing dead simple drag and drop tooling for the iPhone, along with a (mostly) seamless publication and monetization vehicle via the App Store. What would the iPhone platform look like without this dead simple tooling? Let’s just say there’s not a whole lot of demand in the early adopter community for digital flatulence applications.
Of course, the real question for the 21st century platform vendor—one that understands that massive adoption in the early adopter community is key to success—is when to transition from a wild west, bubble gum and bailing wire platform strategy to a more neatly packaged integrated development experience. I’ve long argued that making this transition is key to taking your platform to the next level. When to do it is the real question. Too early, and you damage the limitless possibilities that make your platform so appealing to early adopters. Too late, and you expose yourself to competition from vendors that do a better job at capitalizing on the broader opportunity (and that’s best case—worst case, your platform fades away because it is never able to grow beyond the early adopters).
No one ever said this business was simple..