In genereal the workflow of each programmer out there is different, but what about the enviroment we want to work with? If you’re either an experienced programmer or a newcomer, ready to dig in, you might have gotten into this confrontation before: Should I pick an IDE (integrated developement enviroment) to build my application or should I stick to the simpler Code Editor? And the answer to this question is pretty difficult to explain cause it changes on multiple parameters of your developing process.
Defining your project defines your workspace
In the early days of your programming experience you might have worked with a simple Text-Editor like Notepad to write down your code. And to be honest… thats all you need to learn it in the first place. But after hours and days of work you might work on bigger projects and the complexity might rise too, so you have to get some tools to hold this mess together. So here we are: IDE or Code Editor? At first, let us define, what features each of these two have to offer… or at least a small part of them. (This is based on a huge variety of programs I used in my past or still use)
Code Editor:
- Intellisense (Autocompletion)
- Snippets
- Syntax-Highlighting (coloring your code, to make it easier to read)
- Extensions (Nearly everything you hoped for could be implemented)
- Version Control (GIT and other SCM-Providers)
- Console
- Some even have Debugger
- etc.
IDE:
- All of the CE-Features
- Auto-Compiling, Running, Debugging
- Already implemented most of the extension-functions from the CE
- Project-Management
- Database-Handling
- etc.
To break it down to the very simplest way of comparing these two to each other: An IDE has way more functions and helpers than your ordinary Code Editor. So why not choose it every time over a CE? Because it’s too complex for many projects, too complex for beginners and you won’t use the majority of these functions anyways.
A CE is perfect for learning to code in a new language, because all you need is an simple intellisense, syntax-highlighting and a version control to start your journey. And if you need some extra functions, pretty much every higher CE extends their functionality with user written- and official-extensions. Nevertheless, at some point in your developing career you might switch to an IDE to make your life easier, like it made mine. If you head for a specified IDE like PHPStorm for PHP or PyCharm for Python, you won’t have any problems compiling, running or writing anything… because, let’s be honest… we’re using an IDE to have less work todo ourselfs. And if you head for an more generic IDE which is able to work with multiple languages perfecty, like Visual Studio or Netbeans, you won’t have to do much more work either. So again… why get an Code Editor then?
Learn to be a better programmer with Code Editors
Wait, didn’t I say I would choose an IDE over an Code Editor most of the time? But what’s up with that claim… It’s simple: Experience, knowledge and skills doesn’t come from anywhere. There might be people out there who can learn the best practises by theory, but many of you might head into a different direction… the pracitcal direction.
If you’ve started learning a new language, chances are high you don’t know much about the stuff going on behind your code. Many times this will stay that way until you really get into applications with complex logic and more than one framework. Building your Application with an IDE might give you many tools and an easy life afterwards, but it also takes your work away… and let me say clearly: You should invest your time in that additional work in the early days. Mastering a language isn’t that easy, especially not a more advanced language like C++ and Java.
CEs are also great for small edits and very little projects. A friend of mine works most of his time on html5-single pages for local companys. For these pages you don’t really need a complex structure:
/Style/Style.css
/Javascript/main.js
/Pictures/*
index.html
Looking at that structure, we clearly see that there is no real use for complex compiling or debuggin right here. The change you wanted to make in your file might even take less time, then loading an whole IDE for that project. In conclusion you could choose an Code Editor for that small change.
So… what have we learned?
If you’re a beginner and/or learning a new language you should experiment with some Code Editors out there. If you’re really experienced with the more complex processes in that language, give an IDE a chance and work yourself towards the perfect handling and mash up between these two ways of programming. Trust me, both of them have proven themselves to be superior in some or the other way.