
Why I wrote 33 VSCode extensions and how I manage them - fabiospampinato
https://medium.com/@fabiospampinato/why-i-wrote-33-vscode-extensions-and-how-i-manage-them-cb61df05e154
======
hnmonkey
As someone that has used VSCode, thank you for the work and effort you've put
into this. Extension creators often don't get the thanks they deserve for the
labor they put into these things that they're passionate about and also help
lots of people.

Keep up the great work!

~~~
alwaysreading
Agreed! So cool to see people maintaining tools that make life for the rest of
us easier.

~~~
wj
I agree as well. In a talk the creator of Asana said something along the lines
of their goal is enabling others to do good and do so more effectively.
Software is pretty amazing.

------
stevebmark
I love VSCode, but the plugin system is probably its weakest feature. Opening
any new file type and VSCode will say "we have an extension for this file
type!" and then open the sidebar with 200 extensions with random vote counts,
and you have no idea which ones are good, official, supported, or even suit
your needs. And the in-editor documentation pages, and plugin hosted web
pages, reek of Microsoft. It needs a major change, maybe like separating
plugins into official ones, full IDE extensions, and simple commands.

~~~
benesch
I've had entirely the opposite experience. Have you ever tried to install a
package in Sublime? You have to use a separate tool, Package Control, whose
installation instructions are arcane:

    
    
      import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
    

And once it's installed interaction is limited to the textual omnimenu-thing,
since Sublime's extension API is extremely limited. Package Control is awesome
for what it is, but it's severely constrained by not being a first-class
feature of the UI.

In VSCode, by contrast, there's a proper UI for extension installation that's
part of the core product. Clicking on the extension brings up a full-viewport
window with the README and quick links to the reviews and GitHub. I've had a
lot of luck finding quality extensions by installing the official Microsoft
extension, if one exists, or otherwise using number of
downloads/reviews/GitHub activity as a rough proxy for quality.

JetBrains IDEs have a very similar extension installation experience to VSCode
(i.e., good), but I've anecdotally found the available JetBrains extensions to
be lower quality than their analogous VSCode extensions. For example, I
_still_ can't find a good comment-wrapping plugin for JetBrains—everything
I've tried has some weird deficiency, like not being able to wrap comments at
a different column than the code width, or sometimes butchering surrounding
code, etc.

I'll admit that the one frustration I have with VSCode is that there is no
way, at least not that I've found, to export your entire configuration, both
settings and plugins, and use that to bootstrap a new VSCode installation. I
recently set up a new computer and spent the first few weeks rediscovering all
the extensions I'd installed on my old computer.

I'm curious to know if there's an editor/IDE that you think has a far superior
plugin experience than VSCode.

~~~
coldtea
> _I 've had entirely the opposite experience. Have you ever tried to install
> a package in Sublime? You have to use a separate tool, Package Control,
> whose installation instructions are arcane:_

Not since the last 5 years or so, where it's built-in to ST.

~~~
Already__Taken
This has only officially been built-in since last year with ST3 which took an
age to come out of beta.

~~~
coldtea
I've been using ST3 for like 5 years (in beta) and it was just as stable as
the "stable" release.

There was absolutely no reason to use ST3 for the past 3 years if you already
used ST/ST2.

That was already the case for ST2, which was stable for years before it
officially announced it was "stable".

Stable/unstable for STx are just labels, they don't actually reflect the state
of stability. Plus all the real work (new plugins, etc) happened on the "beta"
ST3 side for years...

------
no_wizard
If I’m being completely honest I just see 33 reasons why I still use JetBrains
IDEs. Every single one of these features is baked in with the exception of the
templates for directory creation which isn’t user configurable most of the
time however in the few cases it isn’t baked in they also have a rich plugin
ecosystem

Still worthy the money every time. I have to say though VS Code is still one
of the best free editors you can get

None the less. Mad props! I think it’s great that they have a rich extension
ecosystem

~~~
markmark
Some would argue VSCode can be lighter because these 33 things aren't baked in
for those who don't want them.

~~~
Bishonen88
You can disable most of the plugins in the jetbrain suite, too.

~~~
SmellyGeekBoy
Also not being Electron apps they're probably more lightweight anyway despite
the extra features.

~~~
mariusmg
>they're probably more lightweight anyway

Jetbrains IDEs and lightweight in the same sentence. Notepad++ and Sublime
Text are lightweight, Jetbrains IDEs are not...

------
commandlinefan
My problem with adding plugins or extending my environment much past the
default is that eventually I have to deal with a co-workers non-extended
default installation. I end up relying too much on the add-ins.

~~~
tokyodude
so in other words you always just use notepad or nano or some editor with
almost no features so that you'll never miss missing features ?

~~~
jsmeaton
Despite the tone, I totally agree with you. I strongly dislike the reasoning
that suggests you should hamstring yourself 100% of the time to accomodate a
potential situation that may affect you 5% of the time.

“I don’t use multiple monitors because sometimes I’m just with a laptop”.

“I don’t customise my shell because sometimes I have to ssh to a server”

“I don’t customise my editor because sometimes I have to use a coworkers
editor”.

Optimise for the 90%+ of time.

~~~
nickjj
About 7 or 8 years ago I used to optimize for the 5%.

I remember thinking exactly what you wrote about customizing your shell. Back
then I wouldn't even use aliases because "what if the server I'm on doesn't
have it". Such a silly way of thinking but it made so much sense back then.

Now I have tons of customizations in the environment I spend 95% of my time
and it's way better.

------
azhenley
My students next semester are going to each create a VS Code or Atom plug-in
as their course project. I’ll definitely be showing them this!

~~~
snek
what if they prefer ecmacs or vim or sublime or etc, they all have plugin
ecosystems as well

~~~
ncallaway
Then it sounds like a great opportunity for self-learning.

One class can't teach everything. If people have preferences in their tooling,
then that's a great opportunity to generalize the lessons they are taught
about VS Code.

~~~
philliphaydon
I actually enjoy digging through plugin code. I was using brackets for a while
and found some minor bug where the git plugin wasn't hiding folders correctly.
Raised a bug, then downloaded the code and dug through it for a while and
figure out a way to fix it, got merged. Made me feel super happy.

[https://github.com/brackets-userland/brackets-
git/pull/1039](https://github.com/brackets-userland/brackets-git/pull/1039)

If people are wanting to contribute to OSS i highly recommend finding plugins
in your favourite editor to contribute to.

------
Insanity
Really nice of him to spend time on OSS tools for VSCode. On the other hand, I
feel like the IDEs lugins can do most of these things for me without plugins.

I feel less need to install plugins for their products. And the one plugin
that I use in IntelliJ is something I wrote for fun and which doesn't help at
all with development. (It shows a random XKCD comic each time I open a new
project.)

But it's nice that there is a free IDE available with a rich ecosystem! As a
student, I had to deal with Eclipse / Netbeans which seems to me to have been
a worse experience than VSCode is these days.

EDIT: fixed some typos.

~~~
fabiospampinato
The flip side of this is that an editor that relies on plugins for many
features is kind of forced to have good APIs, or plugins authors
wouldn't/couldn't make those plugins.

~~~
Insanity
That's a good side-effect indeed!

I found it quite easy for IntelliJ as well though. (At work we develop some
in-house ones as well though they are for specific use cases).

------
tutuca
So, you basically gamed the reputation system of the vscode marketplace having
autocomits and autoupdates because any update counts as a download?

~~~
fabiospampinato
I'm just pointing at a problem, not exploiting it. I made a program for
repeating my commits across repositories for being more productive, but those
commits have a purpose, I'm not making them for the sake of it. Should I
update my extensions once a year because the Marketplace is stupid?

------
atljen
This is awesome, great job!

~~~
fabiospampinato
Thank you!

------
the_other_guy
great job! Moz :D

~~~
fabiospampinato
Thank you fellow AirMash player ;)

~~~
tumblen
So happy to know I'm not the only one playing Airmash who isn't in high
school!

