Socializing development tools
You may not be able to socialize me (just ask my inlaws or come on my next extended family vacation), but at least socialize my development tools.
Social software is slow to make it's way into development tools. Why is this important? Consider the Java platform. The strength and value of the Java platform is directly derived from collaboration among a community. I would argue that the amount of collaboration is as important as the size of the community, and both are extremely critical.
Yet, as a developer, I typically need to leave my IDE in order to collaborate and communicate with other developers. Isn't this the same as the pre-telephone days when people had to leave our homes to communicate with others? Once telephones became common place in every home, communication increased dramatically. As a developer, I am "at home" in my IDE, yet the ability to communicate hasn't made it into that home yet.
I would suggest that the integration of social software, like weblogs, wikis, RSS feeds, Instant Messangers, etc, into the development environment would increase collaboration among developers.
So, in my ideal world, if I am in my Netbeans IDE and connected to the Internet, and logged into java.net, I should be able to find and collaborate with fellow netbeaners or java.netters without leaving my IDE.
I should be able to set up a buddy list so I am notified when co-conspirators are online. Instead of inviting them to view my web cam (insert bad visual here) I can invite them to view my code (insert bad code here).
Imagine, if while in your IDE, you clicked on "help" and actually got real help (read: Online assistance).
I should be able to set up preferences that will enable people to find me based upon my interests or area of expertise, if I wish. Imagine when clicking on "help", in addition to the normally helpless context sensitive help text, I am also pointed to relevant projects, weblog, forums, projects on java.net. Additionally, if there are members currently online that have advertised relevent experence in their profile, I find out out about them too. It is as that point that when I click on "help", that I actually get help.
Finally, why doesn't my IDE allow for some "Napster like" peer to peer capability. Why do I need to upload my code to some site just to get it published? I should be able to mark a folder or directory shareable and allow people to download whatever I put there at will. It works for MP3's, why not for JARs? The technology is there. Isn't that what JXTA is all about (p2p)? It's been around. So, how come tool vendors aren't using it?
Any saavy marketing person or product manager will tell you that "there is no demand" for these capabilities (that they can measure). So, the flaw with this approach is that innovation often spurs demand and not necessarily the other way around. How many people desperately needed Instant Messaging, email, fax machines or personal computers as compared to the number who today can't live without it. The fax machine and the PC are classic examples of where the capability created the demand . The good news is that major corporations, and especially their marketing people, don't innovate; creative individuals do. Now we just need someone to productize it.
More good news is that all of the technologies needed to accomplish some of the above ideas are available today. As a matter of fact, putting web services, Netbeans, and JXTA in a blender on high speed gets you pretty darn close.
I guess I am hoping that it becomes less noticeable where my IDE ends and my community starts....
So, Java developers are already cool. Their tools would be a whole lot cooler if they were socialized.