Skip to main content

Why I Switched to Visual Studio Code

Should You Trust Microsoft's Newly Found Love?

I am an avid GNU/Linux user. So the thought of using a Microsoft product (if any available) is of course a no no. At least that's what I would have said before Satya Nadella became the CEO. Microsoft is a changed company under Nadella. One can only imagine the effort it must have taken to convert such a technology giant. Microsoft has been releasing products that support GNU/Linux. Best of all, many of them are available under Free Software licenses. In 2016 GitHub reported that Microsoft was the top contributor on GitHub. Considering Microsoft's hostility for Free Software, this was a big feat. People have written posts about whether to trust Microsoft's intentions and whether to use its products on GNU/Linux. Microsoft boldly claims it loves GNU/Linux.

Microsoft loves Linux
Microsoft ❤ Linux

Enter Visual Studio Code!

One such product is Visual Studio Code. It was announced at //build/ 2015. This was the first product from Microsoft that supported the GNU/Linux platform. I gave it a shot back then but wasn't much impressed and I also didn't know what to think of a Microsoft product on GNU/Linux. Like many others, I was suspicious. Fast forward to today, things have changed drastically. For the last couple of months I've been Visual Studio Code at my work, albeit a Windows machine. I was blown away by its features and decided to make it the default editor on my personal machine running Ubuntu 16.04.2. In a previous post I wrote that Atom was my editor of choice. I have decided to change that. Let me tell you why.

Why Visual Studio Code?

Faster Startup Time

On an average, VS Code loads faster than Atom. Since version 1.17.0 Atom's start up time has decreased significantly. But it's still behind VS Code's start up time.

IntelliSense

The IntelliSense i.e. autocompletion in VS Code awesome. Inline documentation and parameter highlighting are just cherries on top.

Animated image showing a demo of IntelliSense in VS Code
IntelliSense on Visual Studio Code

JavaScript Support

JavaScript is one of my favourites languages and VS Code comes with excellent support for it. Even with Tern install, Atom can't match VS Code's IntelliSense. To top it all up, VS code has a built in JS debugger!

Settings

One of the neat features of VS Code is searchable settings.VS Code uses a JSON document for its settings as well as for the extensions. This is great because the settings menu doesn't have hundreds of buttons and it you don't need to go back and forth for settings of individual extensions. Another great feature is that the settings items are searchable and IntelliSense also works there.

Screenshot of VS Code's settings page
VS Code Settings

Atom Keymap and the One Dark Theme

I loved Atom's keymap and the One Dark theme. VS Code is highly customizable and there are extension that let me use the Atom keymap and the One Dark theme.

Extensible

VS Code has support for extension. There are many, many great extension available. There are some awesome extension available for static web development, Angular, project management etc. I haven't found any alternative for these extensions on Atom.

Built on Electron

The team behind Atom came up with Eletron (previously known as Atom Shell). Electron allows developer to use web technologies to build native desktop apps for GNU/Linux, Windows and macOS. Atom is built on Electron. So is VS Code. Hence it's multi-platform. This is crucial for me as I use a Windows machine at work and a GNU/Linux machine at home.

Built-in Terminal

Visual Studio Code comes with a built-in terminal that pops up from the bottom. It's really useful when you want to compile your code or run a command. You don't need to switch to a terminal to compile your code only to find out that you have a syntax error; which means you need to switch back to the editor now. I had installed an extension to get the same feature in Atom. But, as new versions of Atom came out, that plugin stopped working. There are other extension which do the same. I haven't tried them all. But in my opinion, a native feature will always get better support (in the long run) than an ad-hoc one.

Screenshot of VS Code's built-in terminal
VS Code's Built-in Terminal

These are the main reasons behind the switch. It, however, doesn't mean that I am now a VS Code fanboy. Though is does change my attitude towards Microsoft. If these features come to Atom (some of these originated from it) and Atom gains some features not available in VS Code, I'll gladly switch back. But for now, it seems VS Code has beaten Atom in its own game.

Update (15.06.2017): Today I came across a post which reiterates the reasons I mentioned above. You can read the post here.

Comments

Popular Posts

Why I Started Blogging

It's been almost 5 years since I started blogging. This is the 30th post being published. That means over the course of 5 years, I've written 6 posts per year. Although 30 is much less than I would have liked, this is one of those pet projects I have continued even after the honeymoon phase. Today I want take some time and discuss why I started this blog in the first place. I was in my 3rd year of engineering studies when I started out. I had already developed a keen interest towards programming and tech in general by then. Having a blog seemed liked a cool idea. There were couple of more reasons to go ahead with this idea. That's what we are here to discuss today. Setting up a blog seemed like a technically challenging task. I wanted to know how to setup a blog with comments, advertisements and with a custom domain. It sounded like a great way to acquire new skills and learn new things along the way. Back then I didn't know anyone who shared my enthusiasm for tech

Notifications, Not Ads

Notifications on our smartphones are pretty common these days. Notifications are designed to provide the user with helpful information and alerts. For example, a reminder notification, an email notification, a download-in-progress notification. According to Google, Notifications provide short, timely, and relevant information about your app when it’s not in use. Source: Material Design | Notifications It's a useful feature offered by modern mobile operating systems. An average smartphone user gets many, many notifications each day. Some of 'em are useful, some of 'em are less so. Many are intruding in nature. The issue is that developers have started to abuse the notification framework. They are using notifications to serve ads and promotions which gets pretty annoying pretty quickly. These notifications are neither timely nor helpful. And almost none of apps allow you to opt out from this crap. The only thing you can do is block all notificat

The State of Video Streaming Services in India [Part 2: The Aftermath]

It's been a year since I published my post about the state of video streaming services in India (which can be found  here ). I wrote how media companies were trying to get a piece of that market. A lot has changed in a year. For starters, Hotstar has received a revamp and it works on my Kubuntu system now. Prime Video remains the best option for most people. Many more services have launched. Ozee has rebranded itself as Zee5. But a few things have stood the test of time. Netflix's pricing is as expensive as it was a year ago. Yes, that was sarcastic. Now there are lot of streaming services to choose from. Here's a list of some of the popular ones. Amazon Prime Video Hotstar Netflix YouTube Zee5 Eros Now Spuul Voot Hoichoi ALTBalaji Hooq JioCinema / JioTV Sony LIV YuppTV BIGFlix The list goes on and on. It is said that competition is good for the consumer. More the competition, more the aggressive pricing, more the benefit for the consumer. Just lo

Dear edX!

Dear edX, I was in my 2nd year of college when you came to life. And I was ecstatic! No, not to be in college (LOL) but to have finally found my calling. Computer programming. I was browsing through all the resources I could find. Codecademy courses mainly. And right at that moment, you arrived. Your parents hail from the Harvard University and from the MIT. So of course you received my attention. Also, you had an unique selling point: free certificates. This was huge! No one else was doing it. It seemed you were actually trying to help students learn new skills and show off to the world. I was stoked to enroll into the course developed world's top professors. The free certificates were a big motivator to complete the courses. The first course I enrolled into was developed by The Linux Foundation. I have taken several courses since then. Some were on computer programming, some were about a country's history and some provided advice on career growth and personal finance. 2

It's Time India Gets Cashless Payment

India just had a mobile network revolution yesterday; thanks to Reliance Jio. It's time India gets another long-due technology i.e. mobile payment. There are many advantages of using mobile payment over cash or ATM cards. You are less likely to lose your phone - assuming you fiddle with your phone as much as I do. Even if you lose your phone, you can at least try to track it down using GPS. Your phone doesn't physically deteriorate over time. No need for mints. No wastage of paper. It's environment friendly. No maintenance needed unlike ATMs. More secure than ATM PIN codes. Mobile payment uses your fingerprints for verification. Mobile payment is much more convenient. Your employer transfers your salary to the bank and you can directly pay from your bank account. No need to withdraw the cash and hand it over to the merchant, who eventually does the reverse process after they received the money. Such waste of time. Instead just bring your phone or watch close to the