Coding involves a lot of thing than just coding. Alright, I agree, people can even code in notepad. But choosing right IDE for your everyday use is far more than important. You can open up a program of 40-50 lines in notepad and edit and save it. But what about a whole project of 100 scripts, 200 functions, numerous number of variables and objects and constants, also classes and complex flow or architecture? Stop arguing, and start learning.
Integrated Development Environment (IDE): The very first thing to choose is obviously the IDE. It will be based on your coding platform and it should facilitate you with all the common and extra features. And what are the features? Features can be of your interest but also includes the following for sure;
- Project: You should be able to create projects and open a single project in a single window or multiple (better if in multiple windows, otherwise things go a little slow). In this way you will be able to have all you project files listed right beside your coding script just like file and folder browser.
- Find and Replace: Even notepad has this feature, right? Yes, but your IDE should be able to search not in the opened file but also in
- All files of the project
- In files of a specific folder
- In selected files and folders
- Somewhere outside the project
- Coding suggestion: While coding in a project which is so huge and you are working on it for long time, it is obvious that you will forget not only language specific methods and class names, but also your own variables, constants, classes and method names. So the good IDE must suggest you these whenever you are typing.
- Syntax Errors: I believe, this is important than coding suggestion. While coding scripts, in early stages, missing semicolon at the end of a statement is very common. A good IDE must highlight this and other like
- Missing function’s required arguments
- Invalid method calling through an object
- Use of undefined and unused variables
- Missing braces etc.
- Code Templates: This one is really very important to have your IDE supporting code templates. For example, while coding in a PHP project, sometimes we have to echo a lot of time inside HTML codes. So each time we have to write <?php echo $variable; ?>. This is a pain. Instead of this, just typing ‘eco’ and pressing TAB can write <?php echo ;?> for me and I just have to write the variable name. That saves a whole lot of time you will find when you will get used to it. Not only this short thing. I can also write the basic structure of a HTML page with 4 key presses. Isn’t it great? I can add this kind of templates as many as I want. So your chosen IDE should also have this feature as it is really very helpful for faster coding.
- Lite weight and fast: I understand, to provide you the previously mentioned features an IDE will be working always and will keeping a lot of data in the RAM. So your IDE will become a little less responsive while opened for a very long time. But still, if you have a multiple number of choices than pick the one that takes less RAM.
- Sub-Version: If your work in an environment that uses SVN then your IDE should also. You should be able to commit and update directly from your IDE and also the IDE should highlight files that has been changed and needs to be committed.
- FTP facilities: If your work goes to a server in a regular interval or it is directly connected to a clone at a server then your IDE should also facilitate you with FTP connectivity feature so that you can always find out the files you have changed and needs to be uploaded to the server. In this way, you won’t have to worry about which files to upload and then browsing and uploading them one by one, manually. Rather the IDE will take care of everything.
- Code reference: This feature is a part of Find and Replace feature but in a simple different way. All your variables and functions and classes and constants will become hyperlinks and clicking on them will take you to their definitions. This is really very (very very) important while you work on a project in a team and also when the project is huge. For example, in the IDE I use, whenever I come across a function that has been called but I can’t remember or know where it has been declared and defined, I just simply press CTRL button and click on that function, my IDE takes me to the root of the function immediately.
- Split view of file: I have files that contains nearly 1500+ lines of code. Now consider that I have to code at bottom of a file like that and also need to see some information which are at top of the page. Now jumping up and down the file is a pain, instead it is a really very good feature to split my file into two, so that I can view the top part of the file in one and bottom part in another. In this way I won’t have to go up and down and relax both my eyes and memory 🙂
My Favorite IDEs: I work on different coding environments and I have one choice of IDE for every platform
- .NET Projects: No doubts, obviously the best ever IDE I have ever used, the Visual Studio
- PHP Projects: PhpStorm, this one just rock.
- Android Projects: Android Developer Tools (ADT)
I might have missed more important features so let me know those in the comments.