How to choose an IDE
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
When it comes to choosing an IDE to install there are lots of different choices out there, each with different pros and cons. This blog post isn’t about recommending or endorsing any specific IDE, but more about what questions you might want to ask yourself before you make your own decision.
This blog post is written from the perspective of someone who uses an IDE when working on data wrangling and modelling tasks, building charts with code, and doing front-end development. However, it should also be useful even if you primarily use an IDE for something else.
What is an IDE?
I’ve mentioned the term IDE several times already, but I haven’t actually mentioned what I mean by that yet. IDE stands for Integrated Development Environment – which doesn’t necessarily clear up what it is! An IDE is essentially an application you can install on your laptop which provides a (nice) user interface when writing and developing code. Some IDEs you may have heard of are VS Code (Visual Studio Code), Jupyter Notebook, or RStudio.
Questions to ask yourself
If you’re just getting started with programming, or about to start teaching computer science next semester, or setting up a new laptop; you might be thinking about which IDE you’re going to install. These are a few questions that I think it’s important to consider before you decide what to download.
Do you really need a new IDE?
If you’re brand new to programming and have never installed an IDE before, feel free to skip ahead to the next question. But if you already have an IDE installed and set up, why are you thinking about changing to a different one? If there’s a specific feature missing in your current set up that you would really benefit from, then switching to another IDE that has that feature might make a lot of sense. But if your current set up is working well, think about why you’re really considering using something else. Are you just worried about missing out on the shiny, new thing? Or going to be working with a new team who all use a different IDE to you? Not needing a new IDE doesn’t always mean don’t switch but if ain’t broke, don’t fix it.
How easy is it to install and update?
Most IDEs can be installed by downloading an installer package from the IDE’s official website and then running it on your laptop. However, some IDEs (especially newly developed ones) may only be installed through a package manager like Homebrew on macOS or apt on Linux. If you’re new to programming, you’ll likely find it easier to download and install software using an installer from the IDEs website.
Widely used and popular IDEs are likely better (or perhaps the only) choices if you’re working in organisations where there are restrictions on the software you are able to install. And if you’re forced to use one IDE all day at work, it might become more familiar and so it’s easier to use the same set up for personal projects.
What features do you need in an IDE?
If you’re considering switching from your current IDE to something new, there’s likely something that your current set up is missing. Write down a list of features that are absolutely essential for your day-to-day work.
Some common features might include:
- Integration with git
- Syntax highlighting for your programming language of choice
- Built-in file browser
- Ability to view charts
- Live preview of HTML documents
Consider to what extent these required features are available in the new IDE you are considering. Are they always available? Are they only partially available? For example, do you need a GUI (graphical user interface) for working with git, or are you happy working from a terminal? For example, in RStudio, there’s no GUI for git unless you’re working in an R project. Although R projects are really useful, you might not want to create one every time – especially if you’re working on something simple.
The GUI for git in RStudio only appears if you are in a git repository AND in an R project.
How many features do you need?
If the IDE you are considering has all of the features you need, think about how many other features it might also have. For those involved in teaching programming, you might not just be thinking about an IDE for yourself but also for your students. An IDE that has fewer features may be less overwhelming for those who are new to programming as they’re unlikely to immediately require all of those features.
How much do you want to customise it?
Most IDEs allow you to customise simple aesthetic features like the colour scheme or font size reasonably easily. But you may want further customisation, like changing the layout or your own keyboard shortcuts. You might want to investigate how easy these customisations are to do, and how easy it is to make sure they persist across different sessions. If you don’t know how to make your customisations and are struggling to find information about how to do it in a specific IDE, but it’s something you really want to do – maybe reconsider that choice of IDE!
Customisation isn’t always about adding features, it’s also about removing features you don’t want. If you really hate clutter and not being able to remove it, then a simple text editor might actually be a good option.
How much does having a single IDE really matter to you?
There are plenty of IDEs that are designed as general IDEs for different tasks and languages, and there are others that are designed to work for a specific task or language. Any piece of software that is designed for task A, B, C, D, and E, will almost never be as good at task A as a piece of software designed specifically for task A. But the benefit is only have to install and use one thing. If having multiple IDEs isn’t an issue for you, then you broaden the scope of which ones you can choose from.
How free and open source is it?
Software that is free to download is often a more attractive choice for obvious reasons, especially if you’re just trying it out. Open source means the source code for the IDE is publicly available for anyone to view, use, modify, and share. This usually means more community support, and faster bug fixes.
But free to download doesn’t automatically mean open source. For example, VS Code is proprietary software released under the Microsoft Software License but it’s based on the MIT licensed program named Visual Studio Code – Open Source, also created by Microsoft.
Using software that is not open source means that it could cease to be available in the future which potentially has implications in terms of the reproducibility of your work.
How easy is it to find help?
Some IDEs come with instructions or tips about where to find things when you first install (or update) it. Other IDEs might require a lot of custom set up and come with no instructions. Choosing an IDE with a large user base often makes it far easier to find help – community written tutorials, old StackOverflow posts, and GitHub issues are all really helpful when debugging your set up. The bigger the community, the more of those helpful things that will exist. Highly customisable or newer IDEs might be more powerful, but they can leave you digging deeper for answers when problems arise.
How stable is it?
If the IDE you are considering is quite new and still being actively developed, it might not immediately have all the features you require, and you’re likely to have to update and re-install it more often. It’s also possible that features and how it works will change and so the learning curve might be a bit more wiggly. Using an IDE that has been in a stable state for a while, is likely to be a better option for beginners. On the other hand, if the IDE is not being actively maintained at all, it’s likely that anything that’s broken or not working the way you want it to, will stay that way.
Further resources
If you want to dive a bit more deeply into comparisons between specific IDEs, these resources are ones I’ve found really helpful:
-
Athanasia Mo Mowinckel has a really good blog post about the different IDEs she has used which includes a comparison of the features available in some of the most common choices.
-
Andrew Heiss wrote this nice Intorduction to Positron blgo post about the new IDE that’s a bit of a combination of VS Code and RStudio.
Do you have a favourite IDE? Or another reason for choosing it? Share your opinions in the comments!
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.