What follows is a list of what I consider to be some of the best computer programs available for programming, internet browsing, document creation, file management, and other tasks. This is by no means a definitive list; rather, this is a list of the programs that I use for these tasks on a daily or regular basis. Please feel free to send me suggestions of other programs I should try out!


Eclipse is hands down the best integrated development environment (IDE) that I have ever seen. Version 3.0 is chock full of amazing features. If you're doing Java programming, then this is the best IDE available by far. Version 3.0 also adds support for C++, meaning you get all of the wonderful refactoring tools that used to only be available for Java.
Visual Studio .NET
Microsoft Visual Studio .NET gets second-place for best IDE. .NET is a very good framework with many interesting features/tools. However, in my opinion, until strong refactoring tools are freely available for .NET, Eclipse still wins the IDE shoot-out. A strong choice for C++ editing and hands down the best for any of the .NET languages (C#, VB.NET, ASP.NET, etc)


JUnit is a powerful testing tool for Java. It comes standard with Eclipse. It's a fundamental tool for XP and Test Driven Development (TDD)

NUnit is the .NET version of JUnit. It makes use of some of the nicities of C# to make for a very enjoyable testing experience. I actually have enjoyed NUnit's flexiblity with the C# language more than JUnit's more rigid Java implementation. Of course, that will all change when Java 5.0 comes out...
TestNG is a next-generation testing tool for Test Driven Development (TDD). It combines many of the joys of NUnit with JUnit and wraps it together rather nicely. I haven't used it much yet, but it seems promising.
http://checkstyle.sourceforge.net/ Checkstyle is wonderful Eclipse plug-in which goes above and beyond the Java compiler to find common programming errors and style inconsistencies. I highly recommend that you try to adhear to its strict style rules as it makes your code much more readable. And since you can customize its rules, you can tweak it to match your needs.


Find Bugs is a tool that has been developed at the University of Maryland to find logical errors in your program. While a compiler can find syntax errors, it cannot find syntactially-correct bugs. Find Bugs looks for bug patterns (these are OOP patterns which are typical of bugs) to identify potential errors.

Apache Ant is the next-generation replacement for Make. Make uses a proprietary file format that can be difficult to learn and hard to remember (IMHO). Ant uses an XML file format that is much easier to read and edit and permits you to create new plug-ins and tools, making it easier to create more powerful build scripts. Hands down the best choice for automating your build process.

CruiseControl is a very helpful software engineering tool which can do a continous build of your code repository. The idea is that the code in your CVS repository should always compile and should always be in "good working order" even if it isn't feature-complete. If you always have a program that can compile and run, then you're much better off. CruiseControl does regular builds of your code repository (using Ant or other tools) to ensure that this is true.

jcoverage is an open source utility (jcoverage+, professional version, also available) that analyzes your test coverage. It determines your unit test coverage and outputs the results in HTML format. Add it to your Ant build script and see how you're doing!

Clover is a closed-source unit test coverage utlity. The main advantage that Clover has over jcoverage is that has a nice Eclipse plug-in. I always like tools that let me do everything from my IDE.
http://www.ej-technologies.com/ JProfiler is a very user-friendly profiler for Java. Although it's not as fast as some other native profilers, it's much easier to use and costs less than many of the faster profilers.

Agitar is test generation suite which automatically tests your programs. I haven't had a chance to use it, but it looks interesting and has won several awards.

Enterprise Architect is a multiple language UML design tool. I have yet to find a UML tool which I'm impressed with, but thus far Enterprise Architect has caused me less frustration than any other UML tool.

Bugzilla is a web-based bug and task managment system. It integrates very well with CVS and enables a team of programmers to collaberate and track issues very efficiently. There may be better solutions for particular teams/companies, but I think it's the best vanilla solution to issue management that I've seen.

StatCVS is a neat little tool which analyzes your CVS repository and generates statistics about how many changes you've made and how many lines of code you've written. If you're in a team, you can use it to see who has written the most code. Makes for fun little competitions in the team to see who can be the most productive!

ViewCVS gives your CVS repository a web-based interface. This is a very handy utlity to have as it gives a very verbose, detailed view of your repository when you need to track down what changes occured over time to a particular file.

Cygwin gives you a UNIX shell on a Windows machine. It will let you install many common UNIX tools (like make, man, grep, etc.) and run them against any Windows files. Very handy for cross-platform development.

Java 1.4.2 is the industry standard Java package right now. Download the JRE or SDK today. (Tip: If you're writing code, get the SDK!)

Java 5.0 offers a wealth of new features, including metadata, autoboxing, generics, and several other improvments. This brings in several features that until now were only in C#/.NET and adds other benefits which I feel make Java the gold standard.
JOGL provides a Java library that can access OpenGL functions. Now you can get the speed of hardware-accelerated 3D graphics in the OOP framework of Java!
JInput is JOGL's sister project and is aimed at providing direct input of user interface devices such as keyboards, mice, and joysticks. Basically, it lets you have raw access to all USB HID devices (and legacy keyboard/mice) from the OOP framework of Java in a manner very similar to DirectInput.


Log4J is the defacto logging utility for Java. Rather than writing debug statements to stdout/System.Out, use Log4J to develop a structured, flexible log that can filter input and direct output to many different sources. Every Java programmer should have this!
http://www.jfree.org/jfreechart/ JFreeChart is a LGPL utility for creating charts in Java. It's open source but the tutorial PDF costs money. The tutorial really don't cover that many charts/cases, and IMHO, you'd be much better off teaching yourself from the demos which are including with the source code. (See src\org\jfree\chart\demo in the jfreechart directory after you download the source.)
  Tablet PC SDK

ActiveState ActivePerl is the standard Perl distribution package for Linux and Windows. For anyone that needs to do some Perl scripting, this is the package of choice.



Firefox is my only internet browser. It is far far superior to Internet Explorer, has tons of wonderful extentions, and doesn't have the security holes, spyware problems, or unwanted pop-up ads that Internet Explorer gives you. Switch today and you'll be much, much happier.
    Network Stumbler
File Managment
    Tortise CVS
  Beyond Compare
File Viewers
  Adobe Acrobat Reader
Document Creation
    Microsoft Office
  Macromedia Dreamweaver
  Macromedia Fireworks
  Adobe Photoshop
  Macromedia Flash
  PDF Creator
  http://www.zonelabs.com/ ZoneAlarm is a great little firewall. I have a subscription to ZoneAlarm Pro but for most people, the standard (and free) ZoneAlarm will do just fine. The web site makes it a bit difficult to get to the free version, but it's worth the digging if you want a free firewall.
http://www.mcafee.com/us/ McAffee Anti-Virus has been my anti-virus tool of choice for a while for two reason: (1) Norton's utilities seem bloated and have slowed down every Windows 2K/XP machine I've seen them on and (2) the University of Maryland OIT provides it free to all students/staff/faculty. NOTE: To Norton's credit, they seem to be making some improvements regarding speed and bloat, but I still don't trust them based on my past experiences.
Other Tasks/Tools