Open Source Platform Tools

Open source serves as a platform for developers to build on and with. When I was starting, the state of the art tools were gcc, emacs (or vi depending on which way you batted), and make. Those tools are still de rigeur in the low-level close-to-the-operating-system world, but as open source extends into other areas we’re seeing better tools emerge.

For example, Eclipse has a strong position in the Java developer community. There are Eclipse plugins for languages like Perl, Python, PHP, etc. but they haven’t taken off. That community seems split between the old text editors and a handful of specialist tools like Activestate’s tools. Speaking of specialist, I see Textmate has a lot of traction in the Mac-using-Ruby-developing world, though Coda is getting a lot of buzz there lately.

Open source debugging tools hadn’t seen much advance over the years until valgrind took the world by storm, making it really easy to find memory errors and profile your program’s performance. Solaris’s DTrace is the killer advance of the last few years. Similarly, Firebug has become a must-have tool for web developers.

I was thinking of this today because Robert O’Callahan (Foo Camper, Mozilla developer, and all-round interesting person) has finished the initial release of chronicle recorder. This is a valgrind-based tool that lets you ask time-based queries of your code (“what was the last piece of code to write to location L before time T”, “show me the state of the execution stack at time T”). In his blog post on the launch, Robert thanks Novell who let him work on it while he was employed there and let him release it after he left.

Bryan O’Sullivan drew my attention to a blog post about DATE2007 and the concurrency discussion there. There’s an interesting point in there about compilers–gcc is still not awfully sophisticated, and there’s room again for business to have better compilers and sell their better technology until open source catches up. This raises the pleasing prospect of open source software getting faster in the future as distros and apps are compiled using better tools.

What areas have you felt the need for better tools in? Leave your wishlist in the comments. I’d love to hear of any tools that have been of particular help to you that other people could benefit from learning about and using …

tags: