I just finished reading a great analysis of Google Wave by Redmonk's Stephen O'Grady. Ever since seeing him present at an Eclipse board/council meeting, I've been following his blog. Highly recommended if you're interested in a great perspective on what's really happening in the enterprise open source world.
As I was reading it, I was struck by what Lars Rasmussen said at the beginning of his keynote on Wave at the Google IO conference: "What would email look like if we set out to invent it today?". Well, apparently they've ended up with an open, extensible framework for hosted collaboration systems that seemlessly merge IM, e-mail, and documents into a single interactive workflow. Wave has really impressed me as a significant step in the evolution in the way we communicate on the web.
Stephen also brought up IBM's Jazz. His analysis at the time was that Jazz is application development given a certain number of technologies that were popular at the time, which wasn't that long ago, i.e., Ajax, Subversion, and IM. And everyone I know who's taken a serious look at Jazz are pretty Jazzed by it.
Today, though, at least from where I sit, there are a few more technologies that could contribute to our software developer toolchest. And I ask, what would the IDE look like if it was invented today, or at least in the next few years, in a world with Google Wave, distributed source control, and smartbooks. Even just seeing David Green's blog on Galileo Builds on your iPhone, an app that shows reports on your Hudson builds, gives a hint at this future.
The world around us is changing dramatically since the rise of the iPhone and competing open smartphone devices and our ability to stay in touch with the Internet wherever we go. Also significant is the rise of web technologies that allow us to leverage that connectivity in better ways. What would an IDE look like in that world? My imagination is running wild ;).
An IDE invented today would need to be aware of multiple programming languages, including scripting languages. So much code these days is made out of scripting languages calling C libraries, which may in turn call or launch other scripting languages. The ability to seamlessly trace through this type of call stack would be appreciated.
ReplyDeleteAn IDE invented today might also incorporate the web the way that I use it in concert with an IDE: Whenever the C++ compiler returns a cryptic error or warning, the IDE would allow a one-button access to that warning's page on a developer's wiki that describes the general causes of and solutions to that error. (Actually I google the error string, but there really should be a wiki for this kind of thing. Or maybe just more empathetic compiler errors.)
Finally, just because we're WRS people and I keep seeing WRS blogs about it, I might as well suggest a way to debug systems that are running across multiple simultaneous virtual machines at once. Or does Workbench already do this? I'm so focused on my current project that has nothing to do with our new Hypervisor that I haven't had the time to really pay attention.
Now that I think about it, my previous ideas are pretty Web2.0 (meaning old). A Wave-type IDE should allow developers to link bug reports and comments directly into the code, so that if I browsed my work in driver.c, I might see inside my ioctl implementation someone's complaint from the bug database that it hangs when called with the TXFLUSH option. When I check in a fix, my comments and repository update reference would be propagated back to the bug manager so that the person who raised the issue would know I addressed it and how to get the update.
ReplyDeleteI'm describing this like the IDE, repository and bug tracker are three different programs, but once Waveified (inundated? deluged? wiped out?), they'd actually all be one and the same.