The Era of Visual Studio Code
September 22, 2020 11:47 PM   Subscribe

"The most important thing I look for when choosing which tools to use is longevity... I believe the era of new text editors emerging and quickly becoming popular has now ended with Visual Studio Code."
posted by geoff. (104 comments total) 26 users marked this as a favorite
 
Got me back into webdev this COVID.. I'd love to try Nova and miss BBEdit but I'm never going back to Apple...
posted by mrcircles at 12:26 AM on September 23, 2020 [1 favorite]


I enjoyed reading the article a few days ago for the nostalgic trip through text editors, but reality bats last: VSC is not that great an experience. It's UI is too complicated, finding features is hard, and it gets in the way. Also, it's not reliable. One potentially killer feature is pairing on code, which doesn't work reliably, but worse still: loses work. There are enough bugs in their setup so that you can lose code even after you've saved it. That is a disaster zone, and this is a feature built-in by Microsoft.

Also, it's not very open source. The code is available, but the downloaded binary isn't open source, it's licensed. There's a whole bunch of stuff included that is proprietary and they've added tracking telemetry. Smelly.

Jetbrains make a better proprietary package with IntelliJ, a real IDE with real IDE features designed in.

Everyone should have two or more text editors in their skills list. One for the shiny features and then something solid and universal like Neovim or Emacs. Investment in those latter tools is a good bet.
posted by bookbook at 12:47 AM on September 23, 2020 [12 favorites]


We need reliable remote pairing now, VSCode hasn't got that. (Edit window adds:) I'm okay with its prevalence but I'm a dinosaur.

But the core premise of this "learn one tool" is in antithesis to the ability of software engineers to solve problems on any platform.
posted by k3ninho at 1:09 AM on September 23, 2020


Isn't VS Code also an Electron app? If so, is there some magical reason why it isn't bloated and riddled with security holes?
posted by acb at 1:12 AM on September 23, 2020 [7 favorites]


As someone who has used emacs longer than VS Code has existed, and who has a colleague using emacs about as long as I've been alive, the longevity argument is unconvincing. The author removes emacs & vim from contention (in the footnotes) for reasons that are valid as individual choice, but which aren't really sufficient to support his thesis. The final sentence even admits that.

Between emacs and VS Code, it's really a question of feature preference and whether you want to bet on Microsoft or on GNU to both invest in the tool and keep your interests at heart for the next several decades.
posted by daveliepmann at 1:32 AM on September 23, 2020 [15 favorites]


I'm surprised to see so many critiques of VS Code's remote pair programming feature. I'd never seen a similar feature in any other editors, and my experience is that Live Share works very well (once the pairing session is actually connected).

VS Code is an Electron app. I have no idea how it doesn't feel bloated. Careful programming? Or maybe because competitors are also not that lean. Emacs famously includes its own Lisp interpreter and GUI framework. Sublime Text is based on a Python runtime, which is not the speediest thing around. Remember Eclipse (not mentioned in the article)? That was an extremely powerful IDE, but wow its Java runtime felt heavy and slow. And Visual Studio is so full of old code, it often feels clunky. So if that's your competition...

Editors that support rich extensions need some kind of runtime environment with a cross-platform interpreter. Electron is such an environment. It's a massive binary, sure, but it's probably one of the most optimized cross-platform interpreted runtime environments around, given how much money Google and friends have spent on Chromium.
posted by sixohsix at 1:38 AM on September 23, 2020 [3 favorites]


Not a coder here; I use vsc for; prose. Text manipulation (has lots of neat ways of doing multi-line edits). Writing short scripts. Writing functions for a horrible spreadsheet program I have to use that lacks drag and drop. Simple markdown especially tables, the latter also work well in HTML emails with no faffing around.

User-base is wide and a lot of non-coders are exploring ways to use it. MUCH faster than Atom, less closed than Sublime and has a much better array of plugins than either. The trick is not too overload it with plugins - a lot of functionality seems to be hidden/less documented so it's worthwhile poking around.
posted by unearthed at 1:38 AM on September 23, 2020 [3 favorites]


Sublime Text is based on a Python runtime, which is not the speediest thing around.

The difference is that Python does not handle the GUI, text manipulation and everything else, but rather serves as a macro language for writing text formatters and such; the rest of the app is (I'm guessing) in C++. With Electron, it's all JavaScript and the DOM, with orders of magnitude more CPU cycles and RAM used for the simplest operations.
posted by acb at 2:02 AM on September 23, 2020 [4 favorites]


Editors that support rich extensions need some kind of runtime environment with a cross-platform interpreter. Electron is such an environment.

You're thinking of JavaScript. Electron is not just that, but also a web browser, with the cost of (a) the entire UI being HTML DOM, with its orders of magnitude of added cost and inefficiency, and (b) a fractally large attack surface.

There would be other ways of using JavaScript for making apps cross-platform, such as, for example, React Native (where the app logic is written in JavaScript, but the GUI is all native elements from the platform, wrapped in a thin abstraction layer). This still incurs the costs of using JavaScript (which, even with aggressive JIT compilation, is going to be topheavy), though not those of everything on the screen being a HTML DOM element.

The main problem Electron solves is a resourcing one; presumably there's a glut of developers who can write JavaScript reasonably well, but have never mastered the disciplines of, say, memory management or C++'s generics system. Electron allows one to hire those, without paying the premium for C++ skills, to make a desktop app, and also simultaneously release that app for all platforms (including weird ones like Linux). The dirty secret is that it pushes the costs onto the user, who suddenly has a gigabyte or so less free RAM, a higher CPU load, and a higher risk of being pwned. It sounds like the Reaganite ideal of “personal responsibility” written into code.
posted by acb at 2:14 AM on September 23, 2020 [13 favorites]


I think the main appeal of Electron (besides portability), is that it's much easier to make visually attractive applications in Electron than with something like GTK or Qt, which always look and feel a bit like they're still in the year 2000.
posted by Pyry at 2:32 AM on September 23, 2020 [3 favorites]


Like, why did VSCode win out over Sublime, even among developers who could afford the $80 price of the latter? I think it's because VSCode is slightly nicer looking.
posted by Pyry at 2:38 AM on September 23, 2020 [2 favorites]


It's weird that this doesn't mention jetbrains at all.

I don't find emacs/vi/etc to be comparable to either jetbrains or MS IDEs
posted by flaterik at 2:50 AM on September 23, 2020 [10 favorites]


One problem is that the superficial visual attractiveness of an Electron web app is more often than not matched by UX that still feels like a web site, and is a poor fit for what is meant to be a desktop app. (Cases in point include apps like Signal, Standard Note, and Slack.)

Apple have a similar problem with their Catalyst apps (i.e., iPad apps recompiled to run on the macOS desktop). Doing cross-platform UX is hard, and making it an afterthought to an existing single-platform app doesn't make it easier.
posted by acb at 2:58 AM on September 23, 2020 [3 favorites]


I could write a book on this, and someday maybe I will. I worked on the first Electron app, Atom, which is in a sense a spiritual predecessor to Code. I like to make the analogy that Atom was Firefox and Code is Chrome - Atom had a wide-open security model and was incredibly extensible down to its bones, and Code did essentially the same thing with more resources behind it and a more narrowly defined and approachable extension framework which helped avoid a lot of inner complexity and eliminated categories of technical debt.

As to why it took off vs Sublime and other modern editors - yes other editors are extensible but the browser API gives you a LOT, and the ability to bundle node packages gives you a LOT out of the box, and... everyone knows javascript. For every emacs lisp programmer and elisp package, there are 10,000 js programmers and 100 node packages, and they are regularly maintained and updated by corporations with millions to spend on maintaining the ecosystem. It's no wonder a polished OSS project using the dominant programming language, backed by big corporate money directly and through its ecosystem indirectly took off.

Epilogue

- in 2020 large OSS projects thrive if they have corporate money behind them, with few exceptions
- tools really thrive when they have a rich 3rd party ecosystem
- even if you don't like javascript (i don't) everyone uses it and it makes corporations loads of money so it also has a rich ecosystem
- JS thriving + well-resourced JS-extendable tool = profit
posted by thedaniel at 3:00 AM on September 23, 2020 [18 favorites]


The 'extensions' thing reminds me a bit of the promise of the failed 1990s technology OpenDoc, where people would write little stand alone apps for focused tasks that could all act together in one workspace. Except here it actually caught on.

I'll refrain from making a joke about how superior Plan9's ACME editor is.
posted by jabah at 3:07 AM on September 23, 2020 [2 favorites]


Which assumes that Moore's Law is not going to run out of steam any time soon, and you can always add a few gigabytes of RAM and a faster CPU to run all that JavaScript, and another layer of abstraction to make things nicer.
posted by acb at 3:11 AM on September 23, 2020 [1 favorite]


Anyway, I wonder how long until Microsoft Office is an Electron app.
posted by acb at 3:11 AM on September 23, 2020 [2 favorites]


I also cannot express how much I hate that JavaScript can be reasonably described as the dominant programming language. It’s such a deeply sad state of affairs.
posted by flaterik at 3:25 AM on September 23, 2020 [26 favorites]


I work in a shop right now that is heavily reliant on .Net, both the framework version and recently (finally?) .Net Core as we start to Dockerize more items. We tend to use VS Code solely for cases where we are editing non-compiled code that still needs full reference to its project scope, which for us usually means React and Angular UIs as well as a few other Node scheduled jobs. When we need compiled code, it’s almost always done in the full Visual Studio IDE (except for one Java program that we use Eclipse for), and when it’s just simple text and configuration files, as well as most of our Python scripts (at least when they are for a simple Lambda function), we still rely on Notepad++. I simply can’t understand this one-editor-to-rule-them-all mentality...
posted by mystyk at 4:29 AM on September 23, 2020 [3 favorites]


I can't believe BBedit is 28 years old. I'm not a coder but still use it for various search and replace features when cleaning up text.
posted by mecran01 at 4:44 AM on September 23, 2020 [3 favorites]


I also cannot express how much I hate that JavaScript can be reasonably described as the dominant programming language. It’s such a deeply sad state of affairs.

Hell, I work in JavaScript and I hate JavaScript. It is a terrible language, and also it is the only way to write UI code that will run on any platform.

I switched to VS Code a few years ago from Sublime Text, primarily as a Rails developer. I found it was easier to find plugins that brought features I needed like linters, and I probably could have worked out how to do it in Sublime Text but it was far more discoverable in VS Code. I can have VS Code SSH into a remote server and let me program on it as if it was a local file system. Having a built-in terminal is nice too. I'm simply more productive, and write better code, in VS Code after a few minutes of setup than I ever was in Sublime Text.

For me, I want to invest my cognitive load on my code, as much as possible, and not on my tools. I could install plug-ins for emacs to get it to do code completion and linting and everything else, or I could use a tool that realises what kind of file I'm in and asks if I want to get the plug-ins to work in that file, and also lets me use a scroll wheel. I find that switching between languages ends up with me making dumb errors while I sort out whether the current language needs a then after the if statement and suchlike; I can't imagine how much I'd be turned around swapping between vi, which has a UX that could charitably be called "early", and literally any other program. (And vi also does not allow me to use the scroll wheel. I have a pointing device. Allow me to use it.)
posted by Merus at 4:53 AM on September 23, 2020 [5 favorites]


Also, it's not very open source. The code is available, but the downloaded binary isn't open source, it's licensed. There's a whole bunch of stuff included that is proprietary and they've added tracking telemetry. Smelly.
This prompted me to look up and find VSCodium which provides builds of the MIT-licensed vscode source. Handy.
posted by dumbland at 5:32 AM on September 23, 2020 [5 favorites]


(A bit more on VSCodium and MS telemetry here.)
posted by dumbland at 5:34 AM on September 23, 2020 [4 favorites]


I use VSCode occasionally when I have a short script outside of a project to edit but IntelliJ IDEA is my daily driver. I tried using VSCode for project work but it just seemed a little raw and unfinished, especially with regards to dealing with plugins and configuration.
posted by octothorpe at 5:41 AM on September 23, 2020 [1 favorite]


Like, why did VSCode win out over Sublime

I haven't used VSCode, but I find that plugins in Sublime don’t really integrate as seamlessly or powerfully as in either JetBrains IDEs or emacs.

Sublime always has a place in my toolkit because it’s really fast, though.
posted by atoxyl at 5:42 AM on September 23, 2020 [2 favorites]


I could install plug-ins for emacs to get it to do code completion and linting and everything else, or I could use a tool that realises what kind of file I'm in and asks if I want to get the plug-ins to work in that file, and also lets me use a scroll wheel.
This is why it's so frustrating that out-of-the-box emacs is such outdated user-hostile trash. A properly pre-configured emacs (like Spacemacs or Doom) supports scroll wheels and nearly all proglangs just fine, usually without any extra installs. With my own config I've had to search for language-specific packages maybe two times in the past several years, and only then because I was working in very particular niches.
posted by daveliepmann at 5:44 AM on September 23, 2020 [3 favorites]


proglangs

This neologism seems ungood to me.
posted by thelonius at 5:47 AM on September 23, 2020 [8 favorites]


VSCode's remote development integration and WSL2 finally made Windows a viable tool for everyday work for me, just in time to migrate back from Mac (which has been steadily moving out of my price range, especially considering the lack of value added now that it all works in windows)
posted by simmering octagon at 5:50 AM on September 23, 2020


I stopped at Emacs. I've tried some of your new-fangled Atoms and the like but they aren't an old friend.
posted by rdr at 5:57 AM on September 23, 2020 [2 favorites]


VSCode is my jam. I don't use it for Java projects, but I use it for JS, and it is amazing. It is also kind of amazing that there are still people hating on JavaScript.

VSC is not a text editor. It is an IDE. Little things, like being able to open terminal shells, make developing Node projects a breeze. The fact that it maintains project state without having to create a workspace like @%@# Eclipse is a godsend. It is fast, clearly laid out and free. I don't really care if it is open source or not, I care if it works, and it does.

I still use Eclipse for Java project but will likely move to IntelliJ since that seems to be a better option. But for Node projects, or any HTML? VSC FTW.
posted by grumpybear69 at 6:01 AM on September 23, 2020 [10 favorites]


Oh, and I also still use vim for any general text-editing needs, because it is available everywhere.
posted by grumpybear69 at 6:02 AM on September 23, 2020 [3 favorites]


The most important thing I look for when choosing which tools to use is...

... that they are not owned by a corporation which changes the entire development paradigm every 6 to 12 months, thereby denying all but their own employees the opportunity to ever become or remain an expert.
posted by Cardinal Fang at 6:11 AM on September 23, 2020 [9 favorites]


Also, it's not very open source. The code is available, but the downloaded binary isn't open source, it's licensed. There's a whole bunch of stuff included that is proprietary and they've added tracking telemetry. Smelly.

Yeah, just came here to also recommend VSCodium like dumbland did for folks for whom this is a concern.
posted by lazaruslong at 6:18 AM on September 23, 2020 [1 favorite]


You know, one thing that really bothers me about the whole "javascript being the dominant language is a sad state of affairs" business is that Javascript is, by far, the most accessible language there is. What I mean by that is: everyone has a JavaScript runtime environment (their browser) and there are umpteen online resources like JSFiddle where you can go just write some code and see what it does. It kind of harks back to the days of the C64, where you booted directly into a BASIC development environment. For many sites you can also just view source and see how it works - even edit it if you know what you're doing.

It used to be that the problems with JS were technical - cross-browser compatibility, a weak feature set, etc. - but now the only "problem" is that everyone is writing in it. You can even take a more traditional, synchronous, strongly-typed approach with TypeScript and async/await. So the objections really boil down to gatekeeping, which, well, fuck that. Not to mention that JS has long been associated with UI/UX and front-end work, which is adjacent to design, which tends to be a female-dominated space, so you have misogyny thrown into the mix, too. All of it awful.

So, in conclusion, JavaScript is beautiful and amazing because of what it offers people.
posted by grumpybear69 at 6:24 AM on September 23, 2020 [25 favorites]


People's advocacy of particular text editors always makes me think of an imaginary world where there is no real Lingua Franca - but instead a number of people claiming that only a fool would fail to communicate in Basque or Kxʼa or Nahuatl - according to taste.
posted by rongorongo at 6:29 AM on September 23, 2020 [1 favorite]


It used to be that the problems with JS were technical - cross-browser compatibility, a weak feature set, etc. - but now the only "problem" is that everyone is writing in it. You can even take a more traditional, synchronous, strongly-typed approach with TypeScript and async/await. So the objections really boil down to gatekeeping, which, well, fuck that.

Mmm. I don't know a single developer who would agree with the statement that the only problem with JS is that everyone is writing in it. Sure, folks are working on cleaning it up, but the language still has some major problems, imo.
posted by lazaruslong at 6:30 AM on September 23, 2020 [9 favorites]


the objections really boil down to gatekeeping [and] misogyny

This is, to put it lightly, a most extraordinary straw man. I'm perfectly capable of being amazed and happy with JavaScript's reach while lamenting its technical failings. Those failings are not imagined.
posted by daveliepmann at 6:30 AM on September 23, 2020 [26 favorites]


BBEdit for life. I can settle for Notepad++ when on Windows but BBEdit goes on every Mac I use, including my wife and kid's computers, because if I am helping them with anything on those computers I want my text editor handy.

Shell scripts, web editing, and some Perl stuff for text file manipulation at work are basically the gamut of what I do, and the product works for me. I don't trust Microsoft to make a product that doesn't annoy the shit out of me.*

*(They make stuff that I use daily, but it annoys the shit out of me daily. Why is searching my corporate mail in Outlook so terrible, to the point that it is easier to search by VISUALLY SCROLLING THROUGH YEARS OF SAVED MAIL than it is to use the Find function? Why the hell does Word on Windows not allow Ctrl+Shift+S for "Save As", but the same key combo on a Mac works just fine? Why does Powerpoint only have a fractional subset of the formatting tools that Word does - don't they use the same rendering engine? Why does Mac Excel still warn me EVERY SINGLE TIME I save a file as .csv, even though the program prefs explicitly are set not to warn me of data loss?)
posted by caution live frogs at 6:32 AM on September 23, 2020 [7 favorites]


oh no, there's still technical problems with JavaScript

TypeScript does help, and it's great that VSCode supports it right out of the box and it's a progressive upgrade so you can start using as little as you like, but there's a lot of ways to accidentally shoot yourself in the foot

on top of that, you have the reliance on Silicon Valley techbros upending the ecosystem every six months when they realise they've painted themselves into a corner working around JavaScript's design flaws. That's not "it's accessible, therefore it's bad", it's "goddammit my career is relying on a VC douchebag's attention span"
posted by Merus at 6:34 AM on September 23, 2020 [4 favorites]


VS: Code on Mac doesn't work with screen readers. I'm told it's a little better on Windows, but MS should be fully supporting their cross-platform library now that they own Electron by way of GitHub. Basically the only programming text editor that works fully with VoiceOver is still TextMate. Sad state of affairs, and getting worse, and Electron is sucking the air out of native apps and it sucks.
posted by Space Coyote at 6:38 AM on September 23, 2020 [7 favorites]


They make stuff that I use daily, but it annoys the shit out of me daily. Why is searching my corporate mail in Outlook so terrible, to the point that it is easier to search by VISUALLY SCROLLING THROUGH YEARS OF SAVED MAIL than it is to use the Find function? Why the hell does Word on Windows not allow Ctrl+Shift+S for "Save As", but the same key combo on a Mac works just fine? Why does Powerpoint only have a fractional subset of the formatting tools that Word does - don't they use the same rendering engine? Why does Mac Excel still warn me EVERY SINGLE TIME I save a file as .csv, even though the program prefs explicitly are set not to warn me of data loss?

Oh boy, I know the answer to all these questions!
  • Outlook search is terrible for different reasons depending on platform, because Outlook search uses the underlying platform's search. On Windows, this search is garbage. On Mac, this search is great but Spotlight for some reason gives up on indexing the Outlook folder, and it needs to be forced to try again by removing and re-adding it. At one point Microsoft had a tool for generating the Spotlight index itself if the Mac couldn't do it, and I guess Apple found out because they pulled it a couple of years ago.
  • Word, Powerpoint, Excel and Outlook are different codebases on Mac, and they've been trying to preserve the old interfaces on Mac even if it means cutting features. Word on Mac still can't edit colour themes. There has been an effort to unify the codebases with Office 365 but it's... slow going.
  • Excel is trying to force you to not use CSVs for some goddamn reason I guess. I'm pretty sure this is a choice someone made.
posted by Merus at 6:42 AM on September 23, 2020 [5 favorites]


Modern JS is fine, it's basically like a slightly-worse Lua with C syntax. But I think JS is far less "accessible" than often claimed: sure, if you want to use a sandbox-within-a-sandbox like Glitch or JS Fiddle it's "accessible" (though by the same standard of 'having a web REPL' many languages are equally accessible), but I think I could get a beginner working with a native install of Python (and Jupyter) in a tenth of the time it would take to get a modern JS dev environment going and explain how to use it ("What's Babel? What's grunt**? Why do I need to run a web server? Wait why do I need to compile my JS? How would I actually make a new project from scratch?" etc.).

**[Here I am sure somebody is going to say that nobody uses grunt anymore]
posted by Pyry at 6:44 AM on September 23, 2020 [4 favorites]


Like, why did VSCode win out over Sublime, even among developers who could afford the $80 price of the latter? I think it's because VSCode is slightly nicer looking.
I wouldn’t be so quick to assume it’s not cost. Developer psychology is fascinating for how people will make six figures but strenuously avoid paying 15 minutes of their pay rate on something they’ll use 8 hours a day.

Sublime Text had two problems: it wasn’t as slow as Atom but coming from something like TextMate it was always noticeably sluggish and back when I tried it a few times the UI wasn’t initially pleasant. That’s a tough spot for commercial software since people know they’re going to use it heavily and with the prospect of needing to pay shortly you need an initial reassurance that you won’t be kicking yourself for having done so.
posted by adamsc at 6:46 AM on September 23, 2020 [2 favorites]


I think I could get a beginner working with a native install of Python (and Jupyter) in a tenth of the time it would take to get a modern JS dev environment going and explain how to use it

That's unfair. You need some of the things you mention if you want to distribute your code as a web app or library but the basics are "install node, run node yourscript.js"
posted by simmering octagon at 6:56 AM on September 23, 2020 [2 favorites]


I think I could get a beginner working with a native install of Python (and Jupyter) in a tenth of the time it would take to get a modern JS dev environment going and explain how to use it ("What's Babel? What's grunt**? Why do I need to run a web server? Wait why do I need to compile my JS? How would I actually make a new project from scratch?" etc

You don't need Babel, or grunt, or a webserver, or to compile your JS. Those are all either optimizations or nice-to-haves. To do basic JS, you don't need anything but your browser.

You can write JS in a text file and load it into your browser directly to test it. You can even just go to your browser console and start writing stuff. And everyone has a browser. It doesn't get more accessible than that. Just as important is the fact that you can also make cool shit, quickly, with rich visual feedback. Best of luck, as a beginner, making circles bounce around your screen in Python or Java.

Yes, there are aggravating parts of JS, but there are aggravating parts of every language. I've just been around long enough to know from whence the roots of JS hatred spring.
posted by grumpybear69 at 6:57 AM on September 23, 2020 [10 favorites]


I felt like this article did an excellent job of explaining why VS Code has become so dominant (it took the best features of existing editors and is being continuously improved at breakneck speed), and it also mirrored my experience almost exactly (BBEdit->TextMate->Sublime->VS Code) The main reason I switched was I had some long standing issues (some nitpicky and some serious) and had to wait ages for new releases. With VS Code, I've had the experience several times already where I've been annoyed at the lack of a feature or a bug and within a few weeks, there's a new version that addresses it.

But it's funny talking about "committing to an editor" because it seems that moving to a new editor lately hasn't been that big a deal? BBEdit to TextMate was a bit of a paradigm shift, but Sublime to VS Code? They offered Sublime keybindings out of the box and I was off to the races. It was just nbd.

I think with productivity software you get two kinds of shifts: The first is a true paradigm change, meaning some brand new thinking about the space which requires new cognitive training but results in a big productivity boost or the ability to do things past software just wasn't able to do. The second is when the existing dominant players aren't able to keep up and a new entrant simply has more energy and resources to produce a similar but superior product, which is what I see VS Code as now.
posted by gwint at 7:16 AM on September 23, 2020 [3 favorites]


It’s so weird to me that the author is breathlessly declaring the end of history because one metric showed a program was popular for a couple of years. Am I missing some amazing insight here?

I switched from vim to Doom Emacs a few months ago, mainly because of ESS and org-mode. I do like it, more or less, I think? I wish it were easier to get running on a server so I could use the same mental map for editing files remotely.

A more general problem with these new Emacs layers (I’ve also tried Spacemacs) is that they’re great and beginner-friendly when they work, but if anything breaks (practically guaranteed when the number of dependencies is so high), then you really have to be an expert both in Emacs and in the nitty gritty of how Doom or Spacemacs does things in order to fix them. I think it’s also not totally clear to new users how using Doom or Spacemacs means that you totally sacrifice the ability to get any support from the Emacs community at large, which is normally one of the big advantages to using one of the Big Two text editors.

Also to be honest I’m getting old and my job now involves a lot more administrative and supervisory work than it used to, so my patience for building new skills that are only peripherally related to coding and writing is pretty limited, compared to say, when I was in grad school. If I have a block of six hours where I get to do some programming uninterrupted, I can no longer really afford to spend it figuring out which package update broke tab completion in R or whatever.
posted by en forme de poire at 7:20 AM on September 23, 2020 [7 favorites]


Best of luck, as a beginner, making circles bounce around your screen in Python or Java.

I think if time-to-drawing-circles is your metric, Processing (Java) and Love2d (Lua) are going to handily beat doing it in JS. I think you're underestimating how much beginner-hostile weird boilerplate doing anything in frontend JS involves.
posted by Pyry at 7:23 AM on September 23, 2020 [3 favorites]


Processing is also available with Python syntax (which is implemented using Jython, the Java Python implementation), almost out of the box. Some brave souls have used it with other JVM languages (I think someone got it running with Scala, though without using the IDE).
posted by acb at 7:34 AM on September 23, 2020 [1 favorite]


"javascript draw a circle", second search result

"java draw a circle", first search result

One of these can be copy-and-pasted into a browser, one cannot.

Processing is great for developing prototype applications but you have to know Processing exists first.
posted by grumpybear69 at 7:44 AM on September 23, 2020 [2 favorites]


I'm a long time Emacs user. I had a project in TypeScript and tried VScode. It was clear from be beginning that it was going to be a serious contender based on being in written JS, corporate backing and it's extension ecosystem.

VScode doesn't demand much from it's users so picking it up isn't like picking up vim or Emacs. It's the emacs keybindings you can get for VScode are not going to work well unless you are a very basic emacs user.

If you haven't programmed a GUI outside of the web you should know that they are all built with a tree of nodes. To say that DOM is going to be a problem is not convincing. What do you think is more performant, well documented and has fewer bugs? Sublime's custom C++ toolkit or Chrome's document?

JS and it's ecosystem are great. It's really pleasant to use in a project and it's really pleasant to use in a casual way. It's 2020 and this stuff is better than ever.
posted by bdc34 at 8:26 AM on September 23, 2020 [5 favorites]


I've been sticking with vim mostly because it's everywhere, and because my partner uses it and I don't want to have to explain to my kids why mommy and daddy can't use the same editor.
posted by phooky at 8:36 AM on September 23, 2020 [17 favorites]


It's weird that this doesn't mention jetbrains at all.

JetBrains is great (I even pay for my own $250/year Toolbox license so I can use RubyMine/PyCharm on personal projects), but the costs are significantly higher. WebStorm is like $50/year, and VSCode is free.

Personally, I think $50 a year for something that makes your life easier is practically nothing, but the HackerNews Bros who brag, for whatever reason, about how many milliseconds it takes for their fav editor to start up do not. WebStorm never makes these lists.
posted by sideshow at 8:38 AM on September 23, 2020


> Like, why did VSCode win out over Sublime, even among developers who could afford the $80 price of the latter?

Personally, as someone who had paid for Sublime (twice, even!), it came down to Live Share & the extensions marketplace. I was addicted to ScreenHero, and after Slack bought and murdered them I needed a new solution for that. Enter Live Share, enter actual functional screensharing, exit Sublime. The mass uptake of VS Code around the same time and the resulting explosion in extensions made the decision easy - everything I wanted an editor to do, I could do in VS Code. Almost everyone on our team switched to VS Code (minus one Vim ninja, natch) so we could reap the Live Share benefits.

Regarding JetBrains, it is a little strange that this doesn't mention dedicated IDEs, but I kinda get it. If I were just churning out Java, then sure, Eclipse or IntelliJ make a lot of sense. But I feel like most development jobs have moved away from "I write code in this one language with this one tool", and while I know that most IDEs have plug-ins that can get you functional in other languages, they're designed for a programming paradigm that most devs have moved away from.
posted by protocoach at 9:18 AM on September 23, 2020


I used to get way into the holy wars between vi and emacs, my university actually taught us emacs for some reason and it wasn't until I got into the workforce that I accepted vi into my life :)

But I don't really write code anymore so I am miles from this argument. But I will say that as a consultant I run into notepad++ far more often than anything else. I think this is a war that will likely and should likely never really have a winner.
posted by cirhosis at 9:19 AM on September 23, 2020 [1 favorite]


What do you think is more performant, well documented and has fewer bugs? Sublime's custom C++ toolkit or Chrome's document?

When it comes to support and documentation and maintenance you have a point. Performance... I don’t know from VSCode but Sublime beat the pants off of Atom.

Regarding JetBrains, it is a little strange that this doesn't mention dedicated IDEs, but I kinda get it. If I were just churning out Java, then sure, Eclipse or IntelliJ make a lot of sense. But I feel like most development jobs have moved away from "I write code in this one language with this one tool", and while I know that most IDEs have plug-ins that can get you functional in other languages, they're designed for a programming paradigm that most devs have moved away from.

IMO it’s actually a strong point of JetBrains IDEs that they are good at handling different levels of the web stack seamlessly. Now if you’re trying to switch off projects in two different backend languages... yeah they might want you to buy two different licenses for that.
posted by atoxyl at 9:23 AM on September 23, 2020


but for whatever the HackerNews Bros who brag, for whatever reason, about how many milliseconds it takes for their fav editor to start up do not. WebStorm never makes these lists.

I use JetBrains software as I came from a Visual Studio + Resharper background and knew all the shorcuts of Resharper so transitioning to PyCharm and the other suite of products had a low transactional cost.

Keep in mind that for front-end development you traditionally did not need an IDE and a lot of the static code completion and refactoring simply did not translate well to a weakly-typed dynamic language. I couldn't spam the alt-enter key to satisfyingly go from a for loop to a lambda function. Also JS projects didn't have the enterprise or large-scale complexity of a Java or C# project which is good or bad depending on your viewpoint.

Not to mention that JS has long been associated with UI/UX and front-end work, which is adjacent to design, which tends to be a female-dominated space, so you have misogyny thrown into the mix, too. All of it awful.

I'm not arguing against misogyny in development but I think any side-eye thrown at front-end development largely stem from the fact that frontend was glorified XML transforms for a longtime. You could, and often were, forced to hack say an image carousel with ugly code to get it to work across multiple browsers. It wasn't regarded as an intellectual challenge in the same vein as something like Kubernetes is. This same lack of academic discipline in the field allowed non-traditional developers without a CS background. I love working with them personally as the scrappy quality means they don't obsess with what a closure is, they know how to use it. I keep using the story of from Feynman or Teller during the Manhattan Project where the scientists were trying to purify uranium or something and had to keep a set of controls between two points. The scientists on the projects would obsess if the dial went too far right too often and the locals they hired (overwhelmingly women) who had no idea the science behind what they were doing just knew they need to keep the dials from going too far left or right far outperformed the scientists.

In any case my biggest complaint is the Microsoft-ism in VSCode. For example Docker itself is already a giant abstraction over spinning up a virtual machine. VSCode's Docker feature will write the Dockerfile and do all the work for you but make a complete giant mess of it to where you can't understand what it is doing. A lot of it is setting up a volume to attach to whatever process is running and I understand why the complexity is there, they're attaching the debugger and VSCode to the docker instance, but in reality if someone has no experience with Docker and presses play for Docker in VSCode they've now created an environment where you need VSCode. This means across language and platforms I can quickly get up and running but I lose arguably the portability that got me to Docker in the first place. It commit other sins a well I'm ignoring, such as elevating everything to root and killing some key functionality as to why you're using Docker in the first place.

Intentionally or not Microsoft's nominally open-source commitment to VSCode has created another Microsoft monster. They created a product that's good enough and has enough flexibility that for free it beat the other products by a long-shot. After achieving vendor lock-in they tackled harder problems by making it a Microsoft exclusive feature.
posted by geoff. at 9:35 AM on September 23, 2020 [3 favorites]


I don't care what replaces it, I'm just glad to finally see a definitive shift way from tty-based editors like emacs or vim. Yes, I know they have GUI support now, but they still have a tty as their core UI model. Computer user interfaces have come a long, long way since the 1970s and our editors should too. I think it's particularly telling that the new crop of editors (Sublime, Atom, VS.Code, etc) all adopted the whole "editor as programmable platform" thing like emacs.
posted by Nelson at 9:35 AM on September 23, 2020 [3 favorites]


I love working with them personally as the scrappy quality means they don't obsess with what a closure is, they know how to use it.

Wow.
posted by simmering octagon at 9:40 AM on September 23, 2020 [2 favorites]


I find it unfortunate that some of the coolest parts of VS Code, the live share and remote/container development tools, aren't open-source. The live share has never worked well for me, but I was forced to use Windows for a client's project a while back, and remote development in a Docker container was a live saver. It would be great if those things could be open-sourced and be used from other editors - although in the case of Docker development, since my primary editor is Vim, I suppose I could just open a terminal into the container anyways.
posted by avery42 at 9:46 AM on September 23, 2020 [1 favorite]



I love working with them personally as the scrappy quality means they don't obsess with what a closure is, they know how to use it.

Wow.


I don't know if that came off wrong but if someone without a strong traditional background doesn't know what a closure is, but knows broadly the use cases for it why does it matter? Especially in such a closed sandboxed environment of running inside a browser. There's a lot of things that running Javascript in a runtime in a browser, on-top of a modern operating system abstracts away from you.
posted by geoff. at 10:07 AM on September 23, 2020 [3 favorites]


In any case my biggest complaint is the Microsoft-ism in VSCode. For example Docker itself is already a giant abstraction over spinning up a virtual machine. VSCode's Docker feature will write the Dockerfile and do all the work for you but make a complete giant mess of it to where you can't understand what it is doing. A lot of it is setting up a volume to attach to whatever process is running and I understand why the complexity is there, they're attaching the debugger and VSCode to the docker instance, but in reality if someone has no experience with Docker and presses play for Docker in VSCode they've now created an environment where you need VSCode

This feels like an unfair complaint to me. If a software product provides an abstraction over another product, like VSCode having an abstraction around Docker, you don't *need* VSCode, you need to learn how to natively work with Docker. Like you said, Docker is complicated, so it's nice to using tooling that removes some of that complexity. But you are in no way locked in to VSCode as a vendor, there are lots of tools that offer Docker integration.

I think if time-to-drawing-circles is your metric, Processing (Java) and Love2d (Lua) are going to handily beat doing it in JS

Processing has had a native JavaScript implementation, P5.js, for a while now. I'd argue it's simpler than the Java one, but it probably depends on your background.
posted by Fidel Cashflow at 10:21 AM on September 23, 2020 [1 favorite]


At my last job we were basically split between Atom coders and Sublime Text coders. At my current job, we have a lot more tooling and so we're probably 60% VS Code and 20% IntelliJ. Then a smattering of folks using RubyMine.

Sublime Text is still my go-to for dealing with ridiculously large files, and Sublime Merge is a delightful git application. I still use Atom's shortcuts for selecting all due to muscle memory and it bites me every time—because VS Code is an Electron app, its keyboard commands always feel wrong.

VS Code will be the main one until some other New Hotness comes along. Probably with "Machine Learning" as that is still an exciting buzzword.
posted by fifteen schnitzengruben is my limit at 10:29 AM on September 23, 2020


I saw “visual,” “studio,” and “code,” and assumed this was going to be about the Motion Picture Production Code.
posted by The Underpants Monster at 10:30 AM on September 23, 2020


So, my tendency with code editors has always been to use the simplest thing with syntax highlighting (hi, gedit!) and a terminal window.

I was on a team for a few years that did a bunch of android development, which meant having to break out Android Studio (a slight specialization of IntelliJ as I understand it) and absolutely HATING it. Hours spent reindexing the codebase, random crashes (each one prompting another re-indexing), endless semi-functional 'features.' Gimme a break. I want low latency and reliability first and foremost. The terminal window gives instant access to lots of dedicated tools that actually work; macros are a few letters you type after hitting 'ctrl-r'.

These days I almost exclusively use BigCorp's internal web-based editor... and a terminal window. The editor has a few nice tie-ins to our source code management system, but nothing over the top. And it's lovely! It's low-latency, and in those cases where the web fails, auto saves mean I haven't lost more than a couple minutes of work, and usually not more than a line or two of code. The other GREAT thing about it is that it runs in a web browser; it doesn't matter what machine I'm using at all.

So hearing that VSCode is an electron app doesn't really matter; it's a web app that happens to have a way to pretend to be a desktop app. Who cares? If it's fast and reliable and highlights my code, I'll be happy.

(ok, so, the other feature that actually makes my life better is import suggestions, coz aint nobody got time for that.)
posted by kaibutsu at 10:35 AM on September 23, 2020 [3 favorites]


I rolled my eyes at the "VSCode is great because it has so many extensions!" bit.

The only reason I switched from Sublime was because I had just gotten a new computer, and I didn't want to spend hours trying to install and configure all the extensions in Sublime that VSCode did right out of the box.

I've dealt with enough broken CPAN and NPM libs to know that just because something can be built, does not mean that it's going to maintained.
posted by meowzilla at 10:42 AM on September 23, 2020 [2 favorites]


I don't know if that came off wrong but if someone without a strong traditional background doesn't know what a closure is, but knows broadly the use cases for it why does it matter?

It was more about the "scrappy quality" comment which felt like you were dumping on all non-traditional developers. But maybe I just read it wrong.
posted by simmering octagon at 10:50 AM on September 23, 2020


But you are in no way locked in to VSCode as a vendor, there are lots of tools that offer Docker integration.

I agree 100%, but maybe I'm doing this wrong. I did the containers quick-start tutorial. You end up with a folder called ".devcontainer" and a Dockerfile that doesn't actually have any declarations to add the code to the container, it just spins up a Docker instance. There's a spattering of non-standard js config files that also seem to do more or less startup the code but again, if you didn't have VS Code someone without it wouldn't be able to use it at all. I'm okay with VS Code putting its own stuff in there, even making non-standard JS files necessary but as someone with extensive Docker experience I do not even know what to do here if I did not have VS Code.

Now, looking under the hood they're attaching a volume in some manner and you're remoting into your code. I'm guessing this is to mimic hot-reloading functionality. It is not clear to me if this is in addition to using your Docker workflow or supplants it. At the very least if I was a lead on the project I'd have to have another Dockerfile to maintain for those who don't use VS Code. I don't see a way around it and maybe there's another answer. I don't code that much anymore but I asked a friend in a complex Docker/Kubernetes production environment and he admitted that locally most developers don't actually even use Docker even though higher environments have workflows that end up creating Docker/K8s environments. This is a large enterprise product across teams and across companies so you're guaranteed there's every toolkit imaginable on the project.

VS Code will be the main one until some other New Hotness comes along. Probably with "Machine Learning" as that is still an exciting buzzword.

Funny I found this when I was looking at Ross and other legal products which among other things allow auto-complete functionality for lawyers writing briefs or doing research. I was surprised that machine learning worked and worked so well I thought I bet there's a product out there that does the same for programming that works kind of well for a wow factor but annoyingly fails when you need it. I never found any machine learning IDEs but I bet most programming is boilerplate enough it'd benefit from it.

It was more about the "scrappy quality" comment which felt like you were dumping on all non-traditional developers. But maybe I just read it wrong.

On the contrary! I respect them a lot and I'm a non-traditional developer who ended up going back and taking computer science courses thinking I was missing something. I find the same level of snobbery oddly working in the nebulous field of "deep learning" or "AI" when talking to research scientist vs even traditional top-5 school CS developers. The only thing I learned is that there's always someone snobbier and thinking they know better.
posted by geoff. at 10:50 AM on September 23, 2020 [3 favorites]


Sublime Text is the Friendster to VSCode's Facebook: did ST3 actually ever get released? There was so much overlap between v2 and v3 for so long that plugins had to be dual-maintained because of course the entire plugin architecture has to be changed for the new version, and frankly it became a hassle even for this ascetic low-plugin code typist.

For editors in general, my criteria boil down to whether I have to use a mouse or not. I've been a functional vi/m user for decades now in a sysadmin context, but it's becoming more and more attracftive to dive into becoming more of a power user and IDE-ifying it a little for the Ruby writing I do now. But all I really need is a fuzzy file finder and syntax highlighting and I can hum along all day. It would be nice to learn buffers and tab-type stuff in vim, though.

And VSCode is fine. I know at companies and with various users there are very integrated workflows where using a mouse is not so much of a context switch as it is while typing in multiple parts of a single file, and where using a mouse is not as necessary as when the development process is more automated and piped together, which are generally things I have traditionally handled via GNU Screen terminals. Time marches on.

And hey, JavaScript is VHS and that's just the way the world works. Once upon a time, Netscape giveth and Netscape taketh away.

I'm okay with VS Code putting its own stuff in there, even making non-standard JS files necessary but as someone with extensive Docker experience I do not even know what to do here if I did not have VS Code.

That story is exactly why I remain spare in my tooling. Even though my age may prevent it anyway, if I got a job at a company that did depend on complex development rituals I fear it would be a miserable learning curve with very little "thank GOD I don't have to do that by hand anymore," and a lot of "git commit is like sending my code into a CI/CD black box that may result in departmental opprobrium."

It was more about the "scrappy quality" comment which felt like you were dumping on all non-traditional developers.

As a non-CS developer, I read it as praise for shallow understanding. Which is extremely rare. And I realize this might appear to conflict with my aversion to black boxes above, but I feel it's more akin to using words without knowing their etymology. Which is perfectly cromulent.
posted by rhizome at 11:04 AM on September 23, 2020


> he admitted that locally most developers don't actually even use Docker even though higher environments have workflows that end up creating Docker/K8s environments

This is really weird to me - Docker has been a life-saver for web dev work for us, especially as teams I've been on have added more people or experienced dev churn. Having your whole local environment in a compose file cut our new dev startup time down from a day and a half to a morning.

> I bet there's a product out there that does the same for programming that works kind of well for a wow factor but annoyingly fails when you need it.

For Python, it's called Kite! (This may be unfair; last time I tried it was a year or two ago.)
posted by protocoach at 11:06 AM on September 23, 2020 [1 favorite]


VSCode has a nice add-on for handling fish shell scripts, but JetBrains doesn’t because making one would be too much work and no one’s thought about it. I think of that as a testament to the former’s relative ease-of-use, even if JetBrains is my fave and more fun to use.

I don't care what replaces it, I'm just glad to finally see a definitive shift way from tty-based editors like emacs or vim.

Hilariously, the quarantine and my increased SSH'ing and small laptop screen size have really driven me into the arms of vim more than anything else. I had largely given up on it as a pain, but suddenly it's become my go-to for most routine small things.
posted by Going To Maine at 11:30 AM on September 23, 2020 [2 favorites]


Without the browser ubiquity... and because of all of the other better languages that transpile to JavaScript... JavaScript would not be what it is. It's flaws are so numerous that there have been many attempts to rectify them while still transpiling down to JavaScript because it can run in the browser. It has few other merits. Sketched out on the back of a napkin for a quick and dirty way to give browsers some sort of scripting. A poorly designed Self like Prototype based OO model full of quirks. It's only saving grace is ubiquity and getting good devs from the past to apply their VM/JIT skills to make it reasonably fast. JavaScript itself is rather bland and awkward. Lipstick on a pig.

If JavaScript was good, there wouldn't be so many attempts to create better languages that transpile to JavaScript for the sole purpose of being able to run in the ubiquitous browser and the now optimized VM/JIT. JavaScript itself is nothing to write home about.
posted by zengargoyle at 12:15 PM on September 23, 2020 [3 favorites]


JetBrains + vim plugin is pretty much my ideal right now. Still use vim for my personal projects but I don't do anything majorly complex there.
posted by kmz at 12:23 PM on September 23, 2020 [1 favorite]


I can be happy programming is easily accessible and wish it was via something other than javascript. I can wish front end development wasn't completely dominated by javascript and the endless parade of frameworks and layers that are required to make it usable without being misogynist (wtf?).

The problem with javascript being so universally available is that then people think they should do everything in javascript. There are other, better suited languages for many tasks. And many people just end up completely unaware of this and try to use the worst language to do everything.
posted by flaterik at 12:24 PM on September 23, 2020 [5 favorites]


I mean, more more power my coworkers who just seem to love slamming themselves upon the rocks in order to try to get their JS apps to scale up enough to handle our customer base, but being "too cool for Java" seems to add 60% to 70% more work to their projects.
posted by sideshow at 12:26 PM on September 23, 2020 [3 favorites]


Any other embedded developers here?

VSC + GCC is a fucking godsend compared to some of the crap compiler-integrated-IDEs we've had to endure over the last 20-30 years. And then, just to screw with us even more, came Eclipse. UGH.

But Rowley CrossWorks is still pretty great.
posted by JoeZydeco at 12:45 PM on September 23, 2020 [1 favorite]


Without the browser ubiquity... and because of all of the other better languages that transpile to JavaScript... JavaScript would not be what it is. It's flaws are so numerous that there have been many attempts to rectify them while still transpiling down to JavaScript because it can run in the browser. It has few other merits.

The entire reason JavaScript is as popular as it is today is due to Node.JS and the Node ecosystem, which allowed developers to build production quality frontend and backend applications in JavaScript in a first class, asynchronous, event-driven environment. Event-driven I/O libraries like libuv, which backs Node.js, have changed how people approach writing scalable web applications.

Sketched out on the back of a napkin for a quick and dirty way to give browsers some sort of scripting. A poorly designed Self like Prototype based OO model full of quirks. It's only saving grace is ubiquity and getting good devs from the past to apply their VM/JIT skills to make it reasonably fast. JavaScript itself is rather bland and awkward. Lipstick on a pig.

The original JavaScript lanauge was famously developed in 10 days and had a lot of the issues you're speaking about in the past, but modern JavaScript is extensively spec'ed and documented, and while it may have it's quirks and learning headaches, is a lot different than it was in the early days.
posted by Fidel Cashflow at 1:09 PM on September 23, 2020 [4 favorites]


So, my tendency with code editors has always been to use the simplest thing with syntax highlighting (hi, gedit!) and a terminal window.

I am quite far away from being a hardcore coder, but I agree with this greatly. For me it's Notepad++.
posted by JHarris at 2:37 PM on September 23, 2020 [2 favorites]


I've been a vi user since before there was vim, some of the keybindings are as deep in my muscle memory as my native language is, for some of the same reasons. And schooled partly in the Unix way at the same time, I prefer tooling exposed via command line over exposed via menu/dialog; it saves on overhead when the need for automation of varying degrees comes up.

But... Vim is feeling frayed around the edges for me. Just today I'm trying to do a quick removal of whitespace across a range of lines and I didn't have the regex quite right. I've written both old school extended regexes and PCREs over time but I've written a LOT more PCREs because JS, PHP, and even arguably Perl are (or were) more popular than grep, so I tend to remember PCREs, which I can't reach for in Vim. And of course, vimscript is its own unique thing, kindof like vim-specific regexes... and that means it's a niche tool that demands its own investments rather than piggybacking off the larger ecosystem.

And every time I go to install something with vim I confront the fact that half of everyone apparently doesn't know how to manually place anything because we would no more do that these days than, I don't know, choose ./configure; make; make install over brew, which means that what you have to learn isn't directly how things are installed but how to choose and operate a bunder and which one is good this year and which one is not, and StackOverflow help you if for some reason the more automated version doesn't work for you.

I'm extremely unlikely to give up the vi keybindings and some pieces of the editing pipeline concept, but I'm starting to feel like the fiddly side isn't quite the right tradeoff. If I stay here I might have to try emacs.

But also maybe there really is something to the Sublime and VSCode model. Pick a hugely popular language, expose APIs for extending the editor, and let ten thousand flowers bloom. And if you need to hack something up yourself, you don't have to question the value in investing in JavaScript or Python even if dislike the language.
posted by wildblueyonder at 4:13 PM on September 23, 2020 [1 favorite]


Contrary to the author's claims, it seems that longevity isn't really the key consideration here, but rather popularity.

Fashion drives so much in software these days. The anxiety over "investment" in learning a new thing seems to be a common trope in articles like this. Maybe it's a just a lazy writer's hook, but I wonder if the interesting conversation here is how being on the wrong side of what's in vs. what's out affects one's career as a developer, rather than any particular editor's capabilities.
posted by 4CFCFF at 6:42 PM on September 23, 2020 [3 favorites]


I'm a long time emacs user and I have no interest in bothering with any other editor. I agree with the vi/vim users who are so used to the key bindings that they don't have to think about editing, it goes from intent to the screen with no mental effort.

When I had to use VS for C++ it was a nightmare. Those pop up boxes with tiny text for setting parameters were cruel and unusual punishment. I've been away from that for a long time now and I find it bizarre that VS is popular for anything.

As for JavaScript, it's changed and become a lot easier to use. It now has a lot of code idioms that match the style of Python, and that's really good. Using map methods and arrow functions means I need to write very few loops. The code is shorter, more explicit and easier to debug. For what I do now I can even ignore the wacky object implementation. I use it in the browser and I use node for some batch stuff. If I need heavy lifting I switch to Python.

It's not quite as nice as when I was using LISP/Scheme, but it's not bad. And all my editing is done in emacs just like the old days.
posted by Metacircular at 12:53 AM on September 24, 2020 [2 favorites]


Metacircular, visual studio (for c++, with the horrid property boxes) and visual studio code (electron app) are two different things.

(I found this confusing myself)
posted by Cozybee at 2:56 AM on September 24, 2020 [2 favorites]


kmz: "JetBrains + vim plugin is pretty much my ideal right now. Still use vim for my personal projects but I don't do anything majorly complex there."

That's my setup too. My fingers only know how to use vim keybindings but I got tired of the vim plugin ecosystem and confusing configuration.
posted by octothorpe at 5:37 AM on September 24, 2020 [2 favorites]


Metacircular, visual studio (for c++, with the horrid property boxes) and visual studio code (electron app) are two different things.

(I found this confusing myself)
This is why I and others call it Code - which is TOTALLY not confusing ;)
posted by thedaniel at 6:24 AM on September 24, 2020


I get why people use JavaScript for some things. What I don't get is the drive some people have to use it for everything they can. If, for example, you want a cross platform GUI, Qt is pretty nice, has been around for ages, and has bindings for an awful lot of languages, to pick one example.

It took me no more than a couple of hours to whip up a nice looking frontend for my pinball machine using Python and Qt when HyperSpin proved to require far too much configuration for my liking, coming from zero experience with Qt.
posted by wierdo at 8:35 AM on September 24, 2020 [2 favorites]


I've been using Qt for a long time, but in my experience the licensing freaks a lot of people out and they just walk away after that. The Qt developers have been trying to woo the JS/CSS crowd for a long time but you're still a slave to their terms...and they're locking it down a bit harder now to get more cash.

(and tell me more about that pinball machine!)
posted by mookoz at 10:00 AM on September 24, 2020 [1 favorite]


I wouldn’t be so quick to assume it’s not cost. Developer psychology is fascinating for how people will make six figures but strenuously avoid paying 15 minutes of their pay rate on something they’ll use 8 hours a day.

I don't know about Sublime Text specifically, but as to the "psychology" in general:

It's not the price. It's the paywall. Anti-availability is an undesirable quality in a tool.
posted by swr at 11:17 AM on September 24, 2020 [1 favorite]


Personally, I consider paying people to make nice things which I find useful to be reasonable. Especially when it is a tool I rely upon to make money myself.

It's been some years since I was paid to program, but when I did JetBrains' pricing was quite reasonable, especially considering the discount for students and zero cost option for people writing open source software.
posted by wierdo at 12:32 PM on September 24, 2020


I'd consider trying out Sublime Text, but don't even want to give it a trial because I wouldn't have the money to register if I really like it.
posted by JHarris at 12:39 PM on September 24, 2020


I don't know about Sublime Text specifically, but as to the "psychology" in general:

It's not the price. It's the paywall. Anti-availability is an undesirable quality in a tool.


Sublime is one of the more notable current examples of pay-but-not-wall - i.e. nagware. There are no feature limitations whatsoever on the unregistered version.

I'd consider trying out Sublime Text, but don't even want to give it a trial because I wouldn't have the money to register if I really like it.

Are you unaware of the above or are you such a good guy that you don't even want to be tempted to become a Sublime Scofflaw?
posted by atoxyl at 2:01 PM on September 24, 2020


JetBrains IDEs are regular 30-day-trial-then-paywall. They cost as much for a year subscription as Sublime does forever but I believe technically you get a perpetual fallback license for the version that was out at the time that you paid (if you pay for a year at once or keep a monthly subscription up for a year).

(also, they are IDEs and not "just" text editors, though obviously the distinction has gotten blurry)
posted by atoxyl at 2:08 PM on September 24, 2020


JetBrains IDEs are regular 30-day-trial-then-paywall. They cost as much for a year subscription as Sublime does forever but I believe technically you get a perpetual fallback license for the version that was out at the time that you paid (if you pay for a year at once or keep a monthly subscription up for a year).

At least for PyCharm (can’t speak to the other JetBrains product), the vast majority of features are available for free in the community edition.
posted by Going To Maine at 2:41 PM on September 24, 2020


Are you unaware of the above or are you such a good guy that you don't even want to be tempted to become a Sublime Scofflaw?

Partly that, and partly because I hate nagging.
posted by JHarris at 2:44 PM on September 24, 2020


Python and Qt

Distributing Py/Qt apps is a nightmare. I maintain a project like this and I plan to move to Electron as soon as possible.

Also, once you get below the surface of PyQt the C++ roots of Qt come to the fore, and building anything beyond vanilla interactions is ... unhappy.

JavaScript has lots of issues, but having an application stack whose layers all fit together in a clean (or at least somewhat reliable) way is really nice.
posted by bjrubble at 5:26 PM on September 24, 2020


I'm just glad I left professional programming before all this JavaScript/frameworks/new-fangled "web programming" came into being. Delphi(2010)4Lyfe!
posted by Windopaene at 9:49 PM on September 24, 2020 [2 favorites]


@Windopaene

It's a complete car crash but hopefully WebAssembly, Blazor and the like will eventually restore sanity and banish Javascript back to the hell from whence it came.
posted by GallonOfAlan at 12:40 AM on September 25, 2020 [2 favorites]


I remain a heavy user of TextMate. I think I tried Sublime once but I bounced off of it. I like my platfrom-native software. But... there's clearly not much of a community for it anymore. The python plugin still doesn't provide proper syntax highlighting for f-strings, a language feature there's both very popular and several years old. I've looked into it, but the syntax highlighting is defined entirely in XML. That's not surprising for software of that age, but oof.

I'll probably try BBEdit again if it eventually becomes unworkable.
posted by vibratory manner of working at 1:24 AM on September 25, 2020 [1 favorite]


The possibilities one has with JavaScript are awe inspiring. The ecosystem being created by that community is tremendous — nothing else comes close.

Your favorite language is OKAY too and does many other things very well.
posted by romanb at 2:44 AM on September 25, 2020 [1 favorite]


Distributing Py/Qt apps is a nightmare.

How's Google Flutter for cross-platform development these days? Because it sounds like a potentially less problematic alternative to Electron, PyQt, and probably React Native as well.
posted by acb at 4:58 AM on September 25, 2020


JetBrains IDEs are regular 30-day-trial-then-paywall. They cost as much for a year subscription as Sublime does forever but I believe technically you get a perpetual fallback license for the version that was out at the time that you paid (if you pay for a year at once or keep a monthly subscription up for a year).

The trick is getting someone else to pay for it.
posted by octothorpe at 6:05 AM on September 25, 2020


I'm just glad I left professional programming before all this JavaScript/frameworks/new-fangled "web programming" came into being. Delphi(2010)4Lyfe!

I was just going to say that we might not be going back and forth in this thread so much if Turbo Pascal (and its IDE) had won out!
posted by rhizome at 10:06 AM on September 25, 2020 [3 favorites]


How's Google Flutter for cross-platform development these days? Because it sounds like a potentially less problematic alternative to Electron, PyQt, and probably React Native as well.


Do you trust a framework developed by Google that uses a language developed by Google that no one else uses?
posted by simmering octagon at 10:22 AM on September 25, 2020 [1 favorite]


Do you trust a framework developed by Google that uses a language developed by Google that no one else uses?

Valid point. Though it's open-source, and some people have started using it, at least in the mobile space (Dart being compiled, it's supposedly closer to native performance than React Native). If Google were to Reader it, chances are someone would fork it.
posted by acb at 9:09 AM on September 26, 2020


I was an UltraEdit man for 20 years, but I made the switch to VS Code a few years back when I started working in node and Angular and needed better Github integration. UE will always have a place in my heart though. I keep it installed on my work machine.
posted by ob1quixote at 9:33 AM on September 26, 2020


« Older The Humbling of Dane Cook   |   I said, 'I'm afraid that I need men' / You said... Newer »


This thread has been archived and is closed to new comments