Reading many forums, IRC channels and usenet’s I see many people bragging about how they can code without the use of an IDE. Although it is important for a programmer to have the ability to be able to program without such aids as an IDE to be more productive an IDE is a very important tool.
I personally use Zend Studio. I have tried using other IDE’s and just did not like the look and feel of them. By all means Zend Studio is not the be all and end all of IDE’s (there is for example NuSphere’s PhpED, Dev PHP and netbeans to name a few) but I am personally more comfortable with Zend. Although Zend is the right IDE for me everyone should try a few IDE’s to see what they are comfortable with. They should also take into consideration cost, features (whether it can debug, highlight code etc) and something that can be overlooked, how well the product is supported either by the company or by the user base.
So what makes an IDE so invaluable? Well that is easy, the functions that most well respected IDE’s have can speed up the process of programming as well as help indicate problems as you are programming without the need to debug the software. For example if you program simply using a text editor you will be unaware that you forgot a ; at the end of a line or you are missing a ). The first you will be aware of this is when you run your script. with a good IDE this will be obvious as and when you make the mistake. Another invaluable feature for me is function completion. When I start to type a function name, Zend gives me options (provided they are built in functions/classes or functions/classes that I created within the script/project) of what function/class I could be meaning. The IDE also gives me hints on what parameters the methods and functions take (invaluable if you forgot what order a certain function takes its parameters in).
Now for break points. As Zend and many other great IDE’s come packaged with the php binary file the IDE is capable of running the file. This can help in a couple of ways, firstly I do not have to upload the file every time I wish to test (or install a server for that matter), secondly 9and much more importantly) it gives me the opportunity to insert a breakpoint in the code. Sometimes when programming (no matter what your skill level is) you may make a mistake and the content of a variable at some point within a script may not be what you expect it to be. If you set a breakpoint in a script as soon as the script reaches this point the IDE will halt the execution and allow you to inspect the content of any currently set variable. If coding without such an aid you would have to resort to echoing out the content of the variables at several steps throughout your scripts life.
So what else can a great IDE do. Well some IDE’s have the ability to integrate with programs such as Zend Platform (a free version can be obtained from Zend, there are other similar programs but this is the only 1 of its type I have used, some IDE’s apart from Zend Studio can also integrate with this). Zend platform gives the programmer the ability to profile a project and to help you find the bottlenecks in your script. this can be achieved yourself but again means adding extra code to your project. Zend Platform has the ability to show you a breakdown of how long a script took to execute right down to each individual function. This can help you find the parts of a script that are taking too long to execute and is disproportionate of the total execution time.
In todays (and yesterdays) programming world there is also a need (especially when working in teams) to have a good version control system. Many IDE’s can act as an SVN or CVS client as well so there is little need for that extra piece of software.
This post may sound like an advert for Zend but believe me it is not meant to be. I am a long time user of Zend Studio and would be lost without it, just as a long time user of PhpED would be lost without their IDE of choice. Don’t be put off of using an IDE because you see people claiming how they only ever use Vi or textpad. A proper IDE has many benefits and capabilities over a simple text editor.