Joomla Development Tools
In order to write extensions for Joomla, it is helpful to have some tools at your disposal to make the process easier. While you could use a plain text editor such as Notepad++, GEdit or nano and FTP your changes to a web server on the Internet, it would be much better to have tools at your disposal on your local machine to allow you to concentrate on development instead of all the extra curricular activities to get the work done. Besides, having these tools makes your life easier and who doesn't like that idea!
A Local Web Server
The single most important tool to have is a web server running on your local computer. This allows you to develop for multiple sites, allows you to make all the changes you desire to the web site or code without ever affecting your users on the live Internet web site and the changes are immediate. That's a good thing. You will be doing a lot of coding on the files located on the web server itself, so it just makes sense.
There are a few options on running a web server on your computer, and it depends on what operating system and how involved you want to get into setting these services up. For Windows you can run WAMP, Mac you can run MAMP, and Linux you can run LAMP. You probably see some similarities there. The first letter is the operating system, W (Windows), M (Mac) and L (Linux). The last three letters stand for Apache (the web server), MySQL (the database server) and PHP (The scripting language). These three pieces of software have to be installed and configured to be able to develop for Joomla.
An IDE (Integrated Development Environment)
An IDE is not mandatory to have. Like I mentioned earlier, you could always use any old text editor you like, but having an IDE makes things like following class hierarchies, reading commented code much easier. We will focus on Netbeans, a free IDE but there are other ones available to use as well. For most, the IDE selected for use is highly personal and sometimes even a little controversial. So let me reiterate, At this time we will be using Netbeans mostly because that is all I have ever used. If someone would like to join the team and cover other IDE's, your input is welcome!
phpMyAdmin
phpMyAdmin is a tool used to manipulate MySQL databases from a web server. This application allows you to create databases, tables, users, and a host of other functions. Since we are wanting to develop for Joomla and Joomla is database driven we have to have some means of interacting with it. This is not the only tool available for use with MySQL and we will cover others as time and space allow.