Thoughts, rants and commentary from a husband, father of five and professional web geek

Choosing a coding tool

Posted on June 21st, 2007 in Geek Stuff, Web Development

A question I hear a lot in various circles is ‘What IDE/Editor do you use to code in?’. I have answered that question before, in several ways, but I thought that for anyone interested in taking up development, you might also be interested in someone else’s opinion on various tools to get the job done.

Today I want to talk about coding. Writing code. Hard coding. When a developer develops, or codes, they are opening a blank canvas and putting down on to that canvas a series of instructions that will be interpreted by some piece of software to ultimately become what the developer wanted. Whether it is c++, PHP, HTML, XML, SQL or any other language, the fact is code is instruction, and those instructions must be clear, easy to follow, easy to understand and easy to write.

So when you look for the tool that you will spend most of your time in, your editor, find the tool that will meet your needs as a developer for the task at hand. Sometimes you may want to open a file really quick to make a fast change to it, then save it and run it. Other times you may need to write a fresh page from scratch that will be added to a project or collection of other code. Still, there are times when you will need to build an entire application. Each task has different requirements, and each set of requirements has different tools suited for the job.

To start, lets get the following list out of the way first: my favorites.

Please note: All of the editors in the above list are free to download and I believe are all open source. They are also all for the Windows environment (except Eclispe which will run anywhere the JRE is installed). For Linux (Fedora Core) I prefer gEdit and vi/vim. For Mac, I hear TextMate is really good.

Checking our list

Notepad2 — If all you want is a version of Windows Notepad that can highlight code and show you bracket matching, this application is your tool. It loads in a matter of seconds and is usable immediately. It has syntax highlighting, bracket matching and supports various types of languages. It also does not natively save everything as text.

On thing to watch out for… this editor does not support tabbbed editing.So if you are used to Ctrl-O to open a new file in a new tab, this is not your editor. It will open a new, blank document and close your previous document. This isn’t always bad, and is actually a nice little feature of the editor once you get used to it. But get used to it quickly because it can throw you off.

Programmer’s Notepad — This little application is one I recently stumbled upon and it has quickly become a favorite of mine. It is very flexible, very fast, supports all sorts of language syntax for highlighting and supports tabbed editing. It also has code folding, bracket matching, line numbering, current line highlighting and several other useful features. The one thing that does leave me wanting a little more is that when you close the editor and open it again, the tabs that were open when it was closed will open in a completely different (seemingly random) order than they were in when it was closed.

Also, some of the default settings of the editor need to be tweaked to make it useful, which is something I am really not into. But if you have three minutes to play with software, you will quickly find your way around its intuitive interface and be able to make it yours really quick.

When I need a lightweight and quick, but powerful, editor, Programmer’s Notepad is what I use.

Notepad++ — This editor quickly became my favorite and has been a staple of my arsenal of tools since I found it. I will always have this application open on at least one machine at any given time. It is fast, lightweight, supports all sorts of syntax highlighting (as well as custom language support) and supports tabbed editing to nth degree.

Notepad++ will also allow you to test certain code execution inside the editor without having to compile it, and I believe it can hook into Apache to allow you to execute web application code right from the editor.

When it comes to small apps with big payoff, this is one that exceeds expectation. I highly recommend it to any developer, but especially to new developers.

PSPad — This little application is a powerhouse disguised as an editor. It is as close to an IDE (Integrated Development Environment) as you can get without getting an IDE. It supports all of the features of the previously listed editors, but also has support for projects, a code browser, a file browser, an FTP manager for remote file editing as well as several other neat features designed to make a developers life in the chair a little easier to swallow.

I use PSPad at least once a day, but usually it is more than that. For PHP development, it has a neat PHP default plugin that has all the PHP functions in it that will allow code complete using Ctrl-spacebar. It has a clean, easy to use interface and a huge selection of additional, web specific development tools as well, like a web server setting and database server setting. The one thing that irks, just a pinch, is sometimes the app gets weird and starts doing things that are unfixable in the editing session and require the app to restart, like a cursor position bug that puts the cursor almost anywhere it wants to go, a relapse of undo that causes changes that were made to be lost in the undo buffer, entire sections of the editing window going blank. Yes, they are issues, and they are infrequent. But they can cause bigger headaches for those that are unprepared for it. However, I will still use it, and use it as often as I need a powerful, IDE-like tool for coding.

Eclipse — This IDE blows all other IDE’s out of the water, in my opinion. It is an actively supported project that has active support and development from many other languages that plug in to it. Though originally developed for the Java development community, it has been adapted to suit the needs of almost any development genre. It does everything you would want an IDE to do and with the pluging available for it, does a lot more. It supports code control through the Subversion plugin (I think there is one for CVS as well), it supports database connections with a database browser, it has automatic updates or schedule updates, it has a clean easy to use interface and it totally cross platform compatible.

If there is one gripe I might have with Eclipse, it would be the loading time. It runs on top of Java (which means no installation is necessary) but, because of that, it takes a long time to load and has been known to get really slow with extended use. That is it though.

My favorite feature of this IDE: it’s price tag of $0. It does all the things you would expect from a Zend Studio or Visual Studio, and does it with not cost to you. It is an easy download, has easy extraction of the files, is easy to set up and even easier to use.

If you are looking to develop an application or framework or other large code base that is best kept in a project format, this is the editor to use. It is not lightweight or fast in any capacity, but it is a work horse that will suit any large scale development need you might have.

Wrap up

I hope this little article has been somewhat helpful to you. In my years of coding and looking for the best tools available to allow me the fastest application development possible, these tools have always been on the list (or at least as I have found them they have been). I personally would recommend any of these tools to any code developer of any type of code. And I can tell you from personal experience that these are all very good tools for any developer at any level.

Well, now that you have a run down on some pretty good tools, why not go get one (or five) and start coding!

One Response to “Choosing a coding tool”

  1. [...] few weeks (perhaps months) ago I wrote a brief posting about the top five editors that I use to write code. Well, there has been an ongoing mega-thread at the PHP Developers Network Forums regarding [...]

Leave a Reply

Back to top