Choosing an IDE
Tags: beginners
Published: 2022-08-28 19:55:00

Starting out writing code in 2018, I've used a few IDEs and code editors. While the likes of emacs or vim will do the job just fine I'll be focusing attention on some of the GUI IDEs that I've had experience with.

## Getting Started

If you're just getting into coding then starting with a code editor will be the best choice. I personally started with Atom (which has lost support) as my first, and it was a good experience. At the time I was not aware of what version control was or how it was important.

### Atom

Atom, created by GitHub, has a built in Git client which connects to GitHub for ease of use for maintaining your code base. I was rather fond of the syntax highlighting that was provided which helped a lot while I was learning how to code.

Atom has the ability to have a package manager installed so put add-ons in to enable the use of a built-in terminal, prettier, and other favorite packages and one-offs to enhance the experience.

### Sublime Text

Sublime Text was an editor that I found to be quite nice as while I running an older computer at the time with minimal resources such as RAM. This editor also for the same feel as Atom regarding highlighting, but more importantly as it hardly used any RAM at all compared to Atom.

While Sublime does not have much going on, as for coding or scripting a Python Discord like I was doing, this worked for well for me for the next two years.

Sublime has the ability also to add a package manager and get third-party plug-ins, such as a *code runner*, that can help focus what kind of program you are working on.

For just starting out I would suggest Sublime due to its simplicity, ease of use, and the very low load on your computer resources.

## Getting Focused

I knew there were other IDEs and code editors out there, the one that caught my eye was Microsoft Visual Studio Code (VS Code). My first thoughts were that it did "too much" for me, as I was still learning and wanted learn as I was going rather than let the editor do all the work.

### VS Code

VS Code was suggested for the coding bootcamp I attended for a multitude of reasons:

- syntax highlighting
- built-in terminal
- cross platform
- built-in Git
- debugger
- support for many languages
- plug-ins aka extensions
- snippets
- intelligent code completion

This editor is a whole lot of everything, and I felt that this was the only one ever needed for most anything.

Support for VS Code is available to many different machines, including 32 bit Intel and the Raspberry Pi!

> While it can run on a Raspberry Pi, I would never recommend it as the Pi has very limited resources and VS Code takes up much of the reserves.

The extension that can be downloaded are plentiful. Support for different language/framework snippets, themes, fonts, previews, code runners, all from a GUI that makes it easy to see what you are getting. Installing/uninstalling is also made very easy with just a click of a button and a reload of VS Code.

## IDE

IDEs (Integrated Development Environment) are tools that I've only used a handful of times as they are more suite towards a particular type of programming. Specifically, some will only have one or two programming languages that are focused.

### Eclipse

While taking university classes, this IDE was brought up. Eclipse is primarily used for Java development. It requires a compiler which gets installed during initial installation. Recommended to leave the compiler setting alone until you have a better grasp on the settings. I made the unfortunate mistake of moving the compiler and caused Eclipse to cease working.

Fortunately, reinstalling got me going again with Java coding and later realized that I could also use this IDE for C/C++ coding as well.

### JetBrains

JetBrains is not an IDE but the company behind many IDEs that are done quite well. **IntelliJ** is their most popular service as it has been ranked the number one favorite IDE for Java development.

#### Webstorm

Webstorm is a JetBrains product for JavaScript development. I have just started using this for the free trial and so far it seems to be everything a JS developer would ever need. Perhaps installing a plug-in like a formatter would be the only I've done and configured my keymap to the VS Code keymap.

Intelli-sense works wonderfully in my experience so far and I've had little trouble with code completion, in fact the code completion for a React project will auto import a component if the suggestion matches the component you happen to be typing.

```js
// This import will get written when code completion is tabbed
import Home from "../components/Home.jsx"

function App () {
  return (
    <Home />
)
```

### Microsoft Visual Studio

Visual Studio is primarily used for C# coding, but has the ability to be used for F# as well. F# is a Microsoft created language.

All tools like other full IDEs are included and are extensively used for applications like game development.

My experience is very limited, but from what I've been able to do it does seem to interpret C/C++ code as well. I wouldn't doubt more languages are supported as well.