Having been a web developer for over 20 years, I’ve gone through a lot of tools and IDEs over the years. As 2019 kicks off, I thought I would document my current development environment for anyone who’s interested in what I use. As a note, I mainly work with PHP using the Laravel framework, JavaScript writing Riot and Vue components and deploy to a WebFaction cloud server.

OS - Xubuntu 18.04.1

I’m a big fan of Linux ever since I moved to it 15 years ago after getting tired of how locked down the Mac OS was. Linux gives me an environment that mimics the kind of environment my applications run in and gives me easy ways to get those applications up and running locally.

It’s also super light weight but still completely functional. I don’t have to spend $1,000+ on a laptop when I can grab a Dell and have more than enough power to do everything that I need to do for my programming.

Since a lot of applications for developers are now written using Electron, more and more essential apps are running in Linux and I never dual boot to any other OS in a given day. Once you get used to the applications, Linux is more than enough for a programmer to work how they need to.

IDE - Visual Studio Code

My current IDE for all things that I create is Visual Studio Code. Visual Studio Code is cross platform and so are all of the great extensions. I use it for PHP/Laravel development using the extensions:

  • laravel-blade
  • PHP Intelephense

JavaScript/Vue development with:

  • Vetur
  • ESLint
  • Live Server

Java development with:

  • Java Extension Pack
  • Tomcat for Java

And general prose writing using Markdown with:

  • Code Spell Checker
  • Markdown PDF
  • WordCounter

And the following extensions to round out the environment:

  • EditorConfig for VS Code
  • Material Icon Theme
  • Rainbow Brackets
  • Todo Tree
  • VS Live Share
  • VS Live Share Audio
  • Simple Vim

These tools give me editing, code highlighting, intellisense, debugging and a full project environment for all the languages that I program in. I’ve tried some of the other tools out there, like PhpStorm and Eclipse, but I keep coming back to VS Code because of it’s simplicity and power.

You could do worse than to start here. And, in fact, the Visual Studio Code website has a number of pages that guide you through what to install in order to start programming in a certain language.

Browser - Firefox

I’m a big fan of keeping the web open and so I use Firefox. Mozilla, the organization that manages Firefox development, is not an ad company and doesn’t try to change the web to extract ever more personal information from their users.

Also, the browser is great! It has a suite of developer tools built into it, including a JavaScript debugger and some nice tooling around CSS. I also have the following extensions installed:

  • RESTED
  • Markdown Here
  • uBlock Origin
  • OneTab
  • Vue Devtools

Command Line Tools

Most of my other tools live in the command line. I’m very comfortable here, but I know not everyone is. I’ll try to point you to some windowed applications if good alternatives are available.

Git

Git is the main source control application I use to version my code and push to repositories on BitBucket or GitHub. A good alternative to the command line git is the extension that ships with VS Code (which I do use quite often for simple git operations) and GitKraken.

Node

Node is a command line JavaScript interpreter, but has a lot of responsibilities now in the world of web development. It’s used to run a lot of the tools used in major JavaScript frameworks, like Angular and React. And Vue.

Also included in Node is NPM, which is a manager for all the tools that can be installed using Node.

Vue Command Line

One Node application that I use quite a bit is the Vue CLI. The Vue command line tools allow me to very quickly start up a new Vue-based project. Since working through a Vue project can require a lot of moving parts, having a tool that can get it all set up and configured for me is invaluable.

There are many others, but this is the main toolset that I use in a day. Going through everything I have installed would be near impossible, but these are the main tools that I use, and it’s probably much different than the next developer. Everyone kind of collects their own assortment of tools, and this is mine.

I would like to talk more about tools. I think with the explosion of tools out there to use, it can be hard for a new developer to know what they need and what they should get into. Honestly, the only way that I got this specific collection of tools was from a lot of trial and error. Start here, and see where you go from there.