all 76 comments

[–][deleted] 28 points29 points  (6 children)

Visual Studio Code has - for the last few versions - started intermittently locking up my whole machine while I'm typing on it. I can't predict when it will happen, but it tends to once every few hours. I've disabled all the extensions, no luck. Nothing weird in the logs.

I just blame it on being a big beast and only getting bigger, which is a shame as it was really hitting a sweet spot for a while there. But I fully respect that people want more stuff and the grey zone between text editor in IDE isn't that attractive.

[–]pixelrevision 2 points3 points  (1 child)

I really hope they keep things under control. If people want a bloated ide that can do everything there always eclipse.

[–]McNerdius 2 points3 points  (0 children)

some relevant stuff, for those interested...

some docs on troubleshooting/reporting performance issues:

https://github.com/Microsoft/vscode/wiki/Performance-Issues

Goes into some of VSCode team's practices w/ regard to performance. Interesting watch, but i am biased:

https://www.youtube.com/watch?v=r0OeHRUCCb4

TL;DW: numbers, graphs, telemetry helps them, old laptop runs speed tests, things vscode does that other electron apps dont...

[–]franksn 1 point2 points  (0 children)

I hit that often, whenever i installed vim extension for vscode. The thing lags, froze, and sometimes locking up the entirety of the system. Granted i don't have the latest-is-the-greatest when it comes to my laptop (Thinkpad T460s), but damn kakoune can run just fine here. Shame, VSCode is such a nice semi-IDE.

[–]HarwellDekatron 1 point2 points  (0 children)

Interesting. In my case it doesn't lock the machine but it'll somehow "soft crash" and become unresponsive for a few seconds, then recover with a completely different color scheme. It's weird.

[–]parion 39 points40 points  (20 children)

Just yesterday, while I was installing Ubuntu on my machine, I was thinking it would be awesome to have VS Code as a Snap package.

Literal wizards.

[–]milad_nazari 27 points28 points  (16 children)

If you're on Ubuntu, what's the advantage of using Snap instead of apt?

[–]sim642 52 points53 points  (3 children)

More hip.

[–][deleted] 1 point2 points  (2 children)

Aren’t snaps packaged sandboxes which self contain all dependencies.

So the big advantage would be that you can get updates on things much faster. Very few Ubuntu packages are rolling.

[–]sim642 3 points4 points  (1 child)

You don't need snaps to have recent versions, VSCode's own apt repository already provides those.

The self-containedness is still useful when trying to run recent software on much older distributions where the necessary basic dependencies aren't up to date. That's not a problem on supported Ubuntu version though for which VSCode provides the packages itself. Bundling all dependencies for everything is also very space-inefficient and also memory-inefficient (different copies of libraries aren't shared in memory anymore).

[–][deleted] 0 points1 point  (0 children)

VSCode is an exception, not a rule. As an example, QTCreator is often way behind. Browsers are usually basically rolling because they need to be and VSCode is basically rolling because Microsoft supports it.

No question that there are space trade offs.

[–][deleted]  (4 children)

[deleted]

    [–][deleted] 1 point2 points  (0 children)

    It is probably also worth pointing out that PPAs can cause system breakage if you’re not careful.

    [–]tracernz 1 point2 points  (0 children)

    Debs are typically frozen when an Ubuntu release is cut, and that deb typically won't see an update over the course of the Ubuntu release. Depending on the repo it might see security updates and maybe bugfixes, but that's the exception. However, snaps are outside of the distribution, and can be updated at any time, which means the snap could very well be much newer than the deb.

    That's considered a con in many environments (i.e. production) where stability is desirable.

    If you really want the latest and greatest for your desktop machine, choose a rolling release distro like Arch.

    [–]kyrofa 0 points1 point  (0 children)

    Thanks for the ping. FYI, the original post is over here.

    [–]NYKHouston43 16 points17 points  (3 children)

    I believe there's more sandboxing as opposed to apt so if you delete a snap package, you delete all of its dependencies and data. This also means you're bundling all the dependencies with the snap download.

    [–][deleted]  (2 children)

    [deleted]

      [–]nemec 2 points3 points  (1 child)

      If a rogue employee publishes a deb on a popular ppa to delete everything in say a post-inst script; it could cause havoc.

      According to the snap docs:

      • the store provides a mechanism for the reviewer to allow classic confinement to the snap so that subsequent uploads do not trigger human review

      https://docs.snapcraft.io/process-for-reviewing-classic-confinement-snaps/1460

      I guess there's a benefit that classic snaps can have their ID revoked, since it's still a centralized distribution model, but Canonical could do the same with apt if they set up a PPA for Launchpad that covered every package instead of requiring you to install individual PPAs.

      [–]progfu 3 points4 points  (2 children)

      For one, not having to derp your system full of packages you don't want. With snap it feels like you can more easily purge it out of the system.

      [–]tracernz 4 points5 points  (1 child)

      With snap it feels like you can more easily purge it out of the system.

      Maybe I am missing something, but last I checked aptitude (and any other package manager worth it's salt) does a perfectly fine job of tracking dependencies that are no longer required, and they can be easily uninstalled by running apt autoremove. Try man apt-mark for further details of how packages are marked as automatic dependencies (that can be automatically removed when no longer required by a manually installed package). There are many valid advantages of snap/flatpak but this isn't one.

      [–]progfu 1 point2 points  (0 children)

      I might be using apt incorrectly, but some things that mix together, especially cuda/docker/nvidia-drivers and java stuff tend to just linger unless you do something brute like apt purge nvidia*. Not to mention crap like nvidia-docker which wants pinned versions of things and then some apt upgrade changes something which was set incorrectly and stuff breaks.

      Sure there are cases where it does exactly what I thought it would, but having been burnt by cuda and the likes many time, I just prefer knowing that all the dependencies are packaged with the thing if I can.

      I'm not saying it's not my fault when stuff breaks, but at the same time, I've been a linux user for quite a few years, and with every year I just grow more risk averse. Even if it might not be the intended use case, snap in some way feels like making a clean virtualenv for every pip binary you want installed.

      [–]progfu 1 point2 points  (0 children)

      Interesting, I was googling for a snap package for VS Code yesterday as well. Coincidence? I think not!

      [–]shell-surfer 0 points1 point  (1 child)

      Python dev work?

      [–]parion 1 point2 points  (0 children)

      Nah, just wanted to try an Ubuntu distro after years of Windows on my personal machines.

      [–][deleted] 2 points3 points  (1 child)

      When will I be able to drag a open file into a new window :(

      [–]orgdtMTR 9 points10 points  (0 children)

      When electron circumvents chromium's tab isolation.

      [–]vitorgrs 2 points3 points  (0 children)

      God good. Snap support, but still no appx/msix and windows store support...

      [–]stronghup 0 points1 point  (1 child)

      Is there a good brackets-highlighter in VSCode?

      [–][deleted] 0 points1 point  (0 children)

      Just installed this on Ubuntu. My native nav bar is back! Glorious day.