<https://twitter.com/LostInTangent/status/12366728...
# thinking-together
m
https://twitter.com/LostInTangent/status/1236672803123814400 The level of experimentation around VS Code is really interesting, I haven't seen that in other IDEs like eclipse. Lowering the barrier to experimentation seems to pay off πŸ™‚
😍 3
πŸ€” 1
a
I think the fact that VSCode has less points of extensibility compared to Atom/Vim/possibly Eclipse, is actually encouraging these experiments. VSCode can virtually guarantee its high level of responsiveness regardless of all the plugins, because its points of extensibility are well-defined, and that in part allows them to sandbox extensions in a separate process, making it less risky for users to try many different extensions.
❀️ 1
m
I meant lowering the barrier in terms of how easy is to do a hello world extension, not if it has more or less points of extensibility.
r
I've done customization for Vim, Emacs, TextMate, BBEdit, and Atom, and I find VS Code to be the hardest to work with of all of those. Vim and Emacs are the easiest to customize, because there is so much shared knowledge about them online. Atom is the next easiest, because their documentation is excellent. VS Code is the most difficult, not many people write customizations, and their documentation is hard to navigate. They seem to have made extension developers the lowest priority of all of the "post-TextMate editors" (TextMate seems to have popularized the modern conception of a text editor extension). I've been mulling this over in my head for awhile now. Something I have a lot of trouble wrapping my head around is just how unpopular writing your own customizations for software is, even among programmers. E.g., what percentage of VS Code users write even a single customization? I bet it's less than 1/1000. Yet tons of extensions still get written, because the extension developers will build on the popular platforms, even if those platforms make their lives difficult. (See also iOS, macOS.) So prioritizing developer experience just doesn't seem very important for popularizing a platform, even if it's a platform for developers themselves like VS Code.
m
I was comparing it with IDEs like eclipse, VS, netbeans and friends. I think extending a text editor should be much easier than an IDE, the problem is that extensions don't interoperate well
I don't have experience with Atom, would be nice to know why VS Code won since they are similar and Atom had the mover's advantage
b
Whatever the case with VS Code, I love this as an idea for an extension. My role is shifting increasingly towards helping mentor and onboard more junior developers and this is an interesting approach to that problem.
πŸ‘ 2
r
Yeah re IDEs and Eclipse, I wasn't trying to disagree with anything, just find it interesting that VS Code didn't have to prioritize extension developers experience higher, extension developers will just figure it out. E.g., it's an area Atom put a lot of energy into that seemingly wasn't necessary.
I think VS Code winning was simply because Atom was slow. Also, the first mover advantage, while present here, seems to have been counterbalanced by Microsoft having had the Monaco editor VS Code was based on being usable in production for years before VS Code. (Also, as far as I can tell VS Code's development team is probably at least three times as large as Atom's ever was.)
☝️ 1
πŸ‘ 2
Re the plugin itself, does anyone have a guess to how the annotations are stored? JSON file contained with the project maybe? And then checked into git?
c
@robenkleene the difference with atom and vs code versus all the prior platforms is ease of installation. installing extensions is a click of a button in either of these
i never bothered writing textmate extensions because i could never figure out how to install the ones i’d already found lol, but with vs code i know if i write it that people will be able to use it
r
Oh yeah, agree 100%! Actually wrote a tweet thread about this https://twitter.com/robenkleene/status/1228353731663671297
πŸ‘€ 1
i
I actually stopped using VS Code and went back to Atom because I couldn't customize its appearance in the ways I wanted. Too bad the Atom spinoff "Xray" project never made it past the early prototype stage β€” they had some wonderfully articulated architectural goals: https://github.com/atom-archive/xray
πŸ‘ 1
d
@robenkleene yes seems like the annotations are saved as a json files https://twitter.com/LostInTangent/status/1236716501031211008?s=20 I think VS code advantage is being able to write extensions in javascript/typescript instead of needing a language that's not so common like lisp or vim script
r
Thanks for picking that up! They're at
.vscode/tours
in the project repo, which seems like a good choice to me.
The extensions in JavaScript/HTML/CSS bit is an interesting one. I don't 100% think that was necessary but I could be wrong. I.e., let me put it this way: If you took a Vim user, an Emacs user, and a Visual Studio Code user, who do you think would be most likely to have written their own customizations? I'd rank them like this
Emacs > Vim > VSCode
. But Emacs and Vim have the less widely known languages, so that leads me to believe the language of customization isn't important (but happy to hear counterarguments here!). It seems to me, that there's a certain percentage of a text editors user base that are going to customize, and no matter how hard you make it to do so, they'll figure it out and write extensions (assuming there's an audience for those extensions). (There is one thing that's I think has been proven to be important here though, and that's that your entire interface needs to be customizable. I think this is the reason that Sublime Text supplanted TextMate, Sublime Text was way more customizable than TextMate, and allowed for more sophisticated extensions that weren't possible in TextMate.)
My guess is the reason Atom and VS Code are web-based has more to do with big company culture (i.e., GitHub and Microsoft) than in inherent benefits to the languages for a text editor. Text editors went web-based when big companies started making them, and they were native when they were made by smaller companies or individuals.
s
@Ivan Reese what specific customization did you want? Just curious.
i
This is what I want my editor to look like, ideally with an easy way to toggle tabs, a project viewer, and line numbers when I need them. I can do this with Atom, couldn't figure out how to do it with VS Code.
βž• 1
❀️ 3
Yes my personal brand is "text-based languages are inferior to visual languages" and I banished all GUI from my editor ☠️
πŸ™ƒ 1
s
Haha - my side project is howl.io - a text editor, within which I've written all my blogs about the downsides of plain text files.. πŸ€”
🍰 2
πŸ‘ 1
d
@Ivan Reese Have you tried Zen mode in VS Code?
ctrl-x z
to toggle. I never use regular mode anymore, way too much info I don’t need
βž• 1
i
I appreciate the tip! Yes, I did try zen mode. That was one of the first things I tried, if memory serves (this was a little over a year ago). There were some deeper customizations I wanted to make that, according to all the docs and posts and such that I could find, were not possible. For instance β€” and again, I don't remember exactly what the limitations were, but I think this was one β€” I wanted to customize the way the text cursor is rendered, so that it's very faint, doesn't blink, etc. The only things visible in my editor, other than the code itself, are the text cursor and the current selection, if any β€” and I've made both quite subtle.
πŸ‘ 1