Saturday, December 18, 2010

Standard Developer Toolkit - 2010 version

I don't know if it is because I am getting older but I am starting to record my thoughts online or digitally so that I can easily go back to that record. I do this by posting blog posts on blogspot and through other subversion code repositories.

One task that I have long neglected is creating a list of common developer tools. The toolkit suite contains a list of common software applications that a developer of any language or environment would need. Most of the software is open source of freely available. Obviously, different developers want or need different tools. Here is the list of packages that are essential for what I need. Yes, the list is bias with a emphasis on Java development. I marked the critical applications in bold. I would typically install of all of these tools on one machine over a long time period. Some of the tools seem similar in nature, for example, I do install Netbeans and Eclipse on the same machine. I may swap between the IDEs if there are tools built for one platform not available in the other environment.

Operating Systems:
- Use both WindowsXP/Windows7.
- Cygwin
- Use VMWare and an Ubuntu 9+ Image (only VMWare player is needed for win32)
- VMWare Fusion if you use Mac
- Ubuntu 10+ on a standalone machine (AMD64bit or Intel machine)

Programming Languages and Environments:

- Java (Java JDK from Oracle on Win32, possibly OpenJDK on Windows)
- Scala (JVM language for Java)
- Clojure (JVM language for Java)
- Python (install on both win32 and Linux)
- Perl (for some scripting)
- Haskell

Developer IDE Tools:

- Eclipse (you can easily install/setup multiple versions of Eclipse)
- Eclipse CDT for any C++ Development
- Eclipse PyDev for Python development
- IntelliJ IDEA (Great for Scala development, rapid Java development)
- Netbeans
- Emacs

Misc Developer Tools:

- Subversion client
- Git client
- Mercurial client (optional)
- Maven (for Java development)
- Ant (for Java development)

Text Editors:

- Vim (install on Cygwin if using Win32)
- Emacs (I prefer Emacs over XEmacs and use the Emacs win32 version)
- TextPad
- Notepad++ (notepad++ is open, textpad isn't, I like both)
Word Processing:

- Open Office
- Microsoft Office (I prefer older versions of the Microsoft Office suite. If you have the money, I would consider purchasing the software).

Web Browsers:

- Mozilla Firefox
- Install Firefox Firebug plugin
- Install Firefox Tamper data plugin
- Google Chrome

Network Tools:

- WinSCP (Win32)
- FileZilla (Win32)
- XChat (or XChat2)
- VMWare Player

Graphic Tools:

- Gimp

Misc Tools:

- 7zip
- WinMerge (open merging software, very useful)
- R (google R statistics application). Useful for charting data

Cygwin Installs

- Install Cygwin
- Download or make sure that these are installed: vim, find, grep, wget, gcc, g++, gtk libs, openssl libs, gnuplot

Eclipse Plugins for Java Development

- Subclipse
- Maven Plugin (m2eclipse)

Java Frameworks

- Spring Framework, Google's GWT, Apache Wicket, Hibernate, iBatis ORM, Lucene, AspectJ, ASM, Antlr


Jason Riedy said...

Check out ggplot2 for R if you haven't already. The grammar is quite nice and flexible.

And JDEE is handy for those of us physically bound to Emacs keys and occasionally need to cope with Java. For Clojure, though, there's a nice slime interaction mode...

Berlin Brown said...

Yea, Clojure and Eclipse wouldn't work but the emacs clojure mode is nice. I usually don't use slime but I need to.

Berlin Brown said...

Congrats on the Ph.D by the way.