IDE? Text Editor? What’s the difference?
And the rise of the lightweight IDE
So you decided to learn to code, awesome! Now all that’s left is to pick a tool to code. Sounds easy right? Wrong. Once upon a time, you could confidently say Sublime Text was the best tool for writing code for beginners, but that time has come and gone. 2018 is a year full of great options to choose as your first code editing tool. So good in fact, that choosing between one of these great options has become a challenging task.
Thus, I’ve decided it would be a great idea to write a blog series outlining the process on how to pick, and customize any tool of your choice to supercharge your learning process in your path to become a web developer. This is part 1 of the 3-part series, so stay tuned for me! I hope to complete each part in no more than 2 weeks time.
Series Schedule
- Part 1 — IDE? Text Editor? What’s the difference?
- Part 2 —Text Editor Showdown: An introduction of popular text editors, and picking the right one for you.
- Part 3 — The right tool for the right job: Build the text editor of your dreams with these powerful extensions.
Re-defining the Text Editor
From Wikipedia:
A text editor is a type of computer program that edits plain text. Such programs are sometimes known as “notepad” software, following the Microsoft Notepad.
Notepad….That can’t be right. You mean to tell me we have to code with THIS Notepad?
…
Just kidding! Thankfully, text editors have come a long way in recent years to become far more capable than old reliable Notepad could ever be. You see, with the rise of web development, there has been a rise for extensible, customizable, more powerful text editors like Notepad++ and Sublime Text.
Newer, modern Text Editors like Sublime Text and Notepad++ have 2 major advantages. The first one being that out of the box, they include syntax highlighting for most popular programing languages. And the second, and arguably best feature, is their immense extensibility. Meaning that while they can look simple at first glance, installing the right extensions can make them super powerful! So powerful in fact, that a well configured text editor can match quite a few features from a powerful IDE. What is an IDE? you might ask, Let’s go over that now.
What is an IDE?
For those unfamiliar to the term, an IDE (short for Integrated Development Environment) is just a Text Editor on steroids. Basically, it has all the functions a Text Editor has, while also including a plethora of extra tools and functionalities that are specialized at making large scale, professional software development easier. Some noteworthy web development IDEs are Jetbrains Webstorm and Adobe Dreamweaver.
Text Editor V.S. IDE, Pros 👍 and Cons 👎
So now you may be probably thinking: If an IDE is just a Text Editor on steroids, why would I even pick a simple Text Editor over an IDE? Well, let’s first go over their respective pros and cons.
Text Editor pros ✅
- Text editors have come a long way since the days of Notepad, and as of right now, with the right extensions, most are powerful enough to compete with IDEs on common everyday tasks.
- Are much smaller than IDEs in size. Which in turn makes them have a light footprint, consume a small amount of resources, and be lightning fast to open and close files.
- Their simple interfaces usually result in a distraction free environment which makes it easy to focus on what’s important: your code.
Text Editor cons ❌
- A lacking feature in some special areas set can make it a challenging task to work on very large codebases.
- In their effort to maintain simplicity and lightness, some text editors sacrifice having an graphical interface for settings in favor of a configuration file, which can be hard to tweak,
- Some people can find it tedious to have to configure a Text Editors with the right extensions before use.
IDE pros ✅
- Intelligent Code Analysis and Completion tools make writing code faster, and far less error prone, a huge boon for beginners and veterans alike.
- Powerful code navigation and exploration tools make it easy to find and get to anywhere in the code in seconds, even in large projects.
- Multiple ways of debugging code. Meaning you can write and debug code without leaving your editor.
- They support a multitude of programming languages natively. Which combined with code navigation and code analysis tools, makes it a breeze to work on large projects.
IDE cons ❌
- Most IDEs have an interface crammed with so many features, that learning to use them can become an overwhelming task for beginners.
- The learning curve is so steep that even veterans take days, and sometimes even weeks to get used to all it’s functionalities and be productive in it.
- Because IDEs have so many ways of doing things, sometimes even simple tasks become complicated, and cumbersome to do. (Like a Find and Replace…)
- Their extensive amount of functionalities often makes them sluggish, resource hogs that take a long time to start.
- A lot of developers consider the overwhelming amount of crammed utilities visual clutter, which can often be distracting and make it hard to concentrate on your code’s logic.
The rise of the lightweight IDE
So IDEs and Text Editors both have some serious cons, how bothersome. But what if there was some kind of middle-ground? What if there was an IDE that was as light and beginner friendly as a Text Editor? Or a Text Editor with all the features of an IDE without losing it’s light footprint? Enter the Lightweight IDE.
Disclaimer: Lightweight IDEs are actually just Text Editors that have become so feature-packed, that they now rival the likes of full-fledged IDEs. So much so, that it has now stopped making sense calling them just a Text Editor. But since they are still much lighter than standard IDEs, I decided to call them Lightweight IDEs.
Lightweight IDEs are a wonderful new option for developers which share all the pros of both Text Editors and IDEs, with few of the cons. As of right now, Atom and Visual Studio Code are the 2 most common Lightweight IDEs around. You really can’t go wrong picking either one of them.
Lightweight IDE pros ✅
- Almost as powerful as most IDEs, while being dramatically lighter in size.
- Distraction free, Simplicity driven interface makes them far more beginner friendly than an IDE.
- Huge, thriving communities are behind them. This means that every week, new and more powerful abilities are added to their arsenal in the form of extensions.
Text Editor cons ❌
- In their effort to become more powerful, they have lost some of their lightweight footprint. Meaning they can take a little more time to start up than something like Sublime Text.
Picking the right one for you
We’re nearing the end of the article. And with all said and done, we’ve still haven’t reached a conclusion as to what you should be using.
Should you opt for the all powerful IDE while sacrificing speed and ease of use? Or should you go for the lightweight, lightning fast Text Editor at the cost of lacking a lot of useful features? Or maybe just pick a lightweight IDE and be done with it? As with all things, It depends.
- If you already have some programing experience in the past, know your way around Text Editors, and are just learning web development to broaden your skillset, then an IDE is probably the one for you.
- If you are in a rush in a rush to get something done, and just want a quick, no-frills, no distraction, reliable tool to help you write some code, then a lightweight Text Editor is possibly the right choice for you.
However…if you are just entering the world of programing via Web Development (like most readers of this article!), and are still undecided about the right tool to use, then it is my firm belief you should pick a Lightweight IDE.
Why? Because a big part of the challenge of learning coding, is knowing and remembering the vast amount of syntax rules that accompany each programming language like HTML, CSS and JavaScript. And the frustration of not remembering to adhere to them can really add up to make learning a more stress-full process than it should be. A lightweight IDE completely sidesteps this issue by offering helpful tips on common programming errors as you write them, making learning programming on an IDE almost feel like you have a second pair of eyes watching your code. (Credit for this wonderful phrase goes to a fellow Thinkful mentor, Moshe Malka)
Yes, a Lightweight IDE is heavier and takes longer to load than a Text Editor making quick edits a harder process than it should be. But so what? You can just install a lightweight Text Editor as well and use a Text Editor for quick edits, and your Lightweight IDE for more serious work. (Note: This is actually a pretty common Dev setup!)
And yes, a Lightweight IDE is more limited than an IDE, but so what? Once configured with the right toolset, It’s plenty powerful for almost all but the most extreme codebases in the planet. Not to mention that as a beginner, you’ll want to be spending most of your time writing and understanding code, not fighting with a complicated IDE.
So…which should I pick? Sublime Text? Atom? Visual Studio Code?
Great question! Sadly, this is all we have time for today, but thankfully, this is something that will be covered during the next article in the series!
Until next time, arrivederci!