- Integrated Development Environment. After having tried a number of different PHP IDE's, I settled for Eclipse PHP Development Tools. An Open-Source project by Zend, the makers of the PHP core engine, it uses the famous Eclipse IDE to provide a thorough PHP IDE. Another alternative is PHPeclipse, but lacks some features which facilitate development and management of large and/or complex problems.
- Version Control. Tracking your changes and being able to roll back when pooh happens is a must-have for anything more complex than "hello world" software. I regularly use Subversion (affectionately called SVN be everyone). In order to integrate it with Eclipse, I use Subclipse. By the way, this makes up for the best Subversion client I've used so far!
- Testing server. Every developer needs a local testing server. The easiest solution is to use a prepackaged, easy to install solution, like XAMPP or WAMPserver.
- Reference book. Joomla! 1.5 offers a very rich and powerful framework. Before setting out to develop an extension for it, it is very useful to read a book on Joomla! extension development. The two books I have read so far are Mastering Joomla! 1.5 Extension and Framework Development (wonderful reference book) and Learning Joomla! 1.5 Extension Development (more like a tutorial, recommended for beginners). Of course you can shop for something else and it probably takes a few tries to find the one which is best for you.
- Debugging tools. I regularly use J! Dump to gain insight on my code. To be perfectly honest, once I found out about it and began using it, I started to wonder how could I code without it! It replaces your needs for ugly calls to var_dump(), die(), etc.
That's about it, guys and gals. Developing for Joomla! is neither hard, nor expensive. All the tools, save the books, are Free and Open Source software.
Have fun writing some high quality code!