14 ms·
VSCode is one of the greatest pieces of engineering of our time. It's really only when you compare it with Atom that you realize how great it is. Atom was built
by p-e-w 4y ago
VSCode is one of the greatest pieces of engineering of our time. It's really only when you compare it with Atom that you realize how great it is. Atom was built by incredibly smart people, who had full control over the platform and several years of head start, and they were still out-engineered by the VSCode team at every turn.
VSCode did almost everything right: The choice of TypeScript as the base language (with which VSCode has a symbiotic relationship), the limited, slowly expanding extension API, LSP, the monorepo, the monthly release cadence, the built-in terminal, and the list goes on and on. They turned Electron's strengths into super-strengths, and deftly engineered around Electron's weaknesses. VSCode is the greatest productivity tool in the history of software engineering, and it fully deserves the dominant status it has today.
- JonathonW 4y ago"VSCode is the greatest productivity tool in the history of software engineering" in a world where vi and emacs exist seems like a bit of an exaggeration, and I'm not even a fan of either (VS Code is my daily driver; I like my GUI editors and I like them to behave like normal apps on the platform I'm running).
- thallada 4y agoYou can run vim and emacs in a gui app. I run neovim in neovide which imo is the best experience for vim these days. Vim's builtin terminal is good enough now that you can ditch running it inside tmux/terminal.
- JonathonW 4y agoVim and emacs do not adhere to platform conventions anywhere, unless your platform happens to be "emacs".
- satvikpendem 4y agoThey're all terminal apps so I'm not sure why platform conventions would matter. Sure some people use GUI wrappers but most people primarily use them in terminals which have the same conventions everywhere, generally speaking.
- p-e-w 4y agoPlatform conventions matter because uniformity matters. It's a mystery to me why people just accept that in their (terminal) text editor, copying text uses a different shortcut than it does in their web browser. That is terrible usability, consumes brain cycles for no good reason, and is above all else completely unnecessary because modern alternatives exist that actually blend in with the system they're a part of.
- satvikpendem 4y agoYou mean like yy versus ctrl+c? You can definitely use a Vim browser/OS extension but Vim does it that way because the creator, I suppose, perceived that his user interface is better than what's already there. And I tend to agree. I don't need uniformity if it'll be inefficient.
- zopa 4y agovi and emacs don’t follow desktop conventions because they predate desktop conventions (and vim of course follows vi)
- deleted 4y ago[deleted]
- nocman 4y ago> Platform conventions matter because uniformity matters. There are tradeoffs to using software that has different shortcuts for similar things you might do in other software. Uniformity is nice, but I don't find it to be so essential that there is no room for any different ways of working. > It's a mystery to me why people just accept that in their (terminal) text editor, copying text uses a different shortcut than it does in their web browser. I don't think they "just accept" it. In the case of emacs (and I believe vim also), you can enable a CUA mode if you wish, and have keybindings that are more like the system. However, in my experience, users of both of those text editors (and indeed, I use both) often choose to use the normal keybindings of those editors intentionally. In my opinion, it doesn't "consume brain cycles for no good reason". There are two very different approaches between those two editors, both are perfectly reasonable and valid. The fact that "modern alternatives exist..." is not necessarily relevant. People have been using both of those editors for years, and they are well versed in how they work and can be very efficient using them. Suggesting that they should just switch to a modern alternative makes some broad assumptions. 1) That they would be happier using some "modern alternative". 2) That whatever value they get from using those editors with different keybindings pales in comparison to what they would gain from switching to an editor with bindings more consistent with the system. I don't believe you can assume either of those things for most of the people who choose to continue to use either of those editors after working in them for a significant amount of time. Don't get me wrong, I understand your viewpoint. It's just that not everyone finds that uniformity to be as important as you do. I also think it is important to point out that both vim and emacs are in active development, so it is not as if either of them has been "mothballed". So while their user interface conventions are very different from much "modern" software, it is not as if they are abandoned -- both are still being developed. They obviously both have significant value to a lot of people.
- noufalibrahim 4y agoThere was a running joke about this on the Emacs irc channels. "I use Linux. One of the libraries that Emacs can use to communicate with the hardware."
- jen20 4y agoNor does VS Code, thanks to being a web page inside a native frame.
- prmoustache 4y agoAnything running on electron, such as vscode, do not adhere to platform conventions either.
- Kamq 4y agoDo you know any platforms that adhere to vim/emacs conventions? Because that sounds way better than any of the options I'm aware of.
- fastball 4y agoHow many daily users do vim and emacs have? How many daily users does VSCode have?
- mosselman 4y agoHow many people believed the earth was flat at one point? To be clear, I don’t care either way about vim or vscode. I use vim mode in vscode right now, but I might use something else later. All I care about is being able to work pleasantly. What I meant is that numbers of people doing something is not proof for something being better. For instance: How many people listen to Justin Bieber and how many listen to The Doors?
- fastball 4y agoThe claim was not that VSCode is a better editor than vim or emacs, but rather that "VSCode is the greatest productivity tool in the history of software engineering". To me, the tool that matches that description is the one which most increases the productivity level for the most people. Emacs or Vim might be better at increasing the productivity of a single individual (super huge might here – I personally found VSCode improved my productivity much more than vim ever did), but once you multiply that out by the number of people impacted, I doubt there is much contest.
- meindnoch 4y agoThankfully neither emacs nor vim have built-in tracking, so we may never know.
- NateEag 4y agoThe closest thing I know to an actual source for this is the StackOverflow developer survey. 2022 edition says 74% of respondents use VSCode regularly, 23% use Vim regularly, and 4% use Emacs regularly. https://survey.stackoverflow.co/2022/#section-most-popular-technologies-integrated-development-environment https://survey.stackoverflow.co/2022/#section-most-popular-t...
- p-e-w 4y agoVim and Emacs cannot compare to VSCode when it comes to productivity. With VSCode, you type the name of any programming language in the extension search, click "Install", and you have a world-class development environment for that language ready to go. This is light years ahead of the traditional editors, and saves many hours of time. Not to mention that VSCode has countless other productivity boosters built in which would require plugin hunting or fiddling with configuration files for Vim and Emacs.
- kuratkull 4y agoIf we're talking about professional tools i'm not sure if setting it up as fast as possible is the best productivity comparison. All good tools need getting to know them, and setting things up yourself (eg. in vim) means you also know how to fix any issues that pop up in the future. Installing a vscode plugin for playing around is great, but it doesn't automatically make you a professional and stable production environment.
- p-e-w 4y ago> All good tools need getting to know them Wrong. Good tools don't require that. Imagine someone showed you a complicated mechanical contraption and told you "it's a type of hammer, much better than the 'non-professional' hammer, but you need to 'get to know it' first". That product would be dead on arrival. Great tools are obvious in their base functionality and have optional additional layers that can be discovered if necessary. When you have to search the web to find out how to close the editor you just opened, because it works differently than every other program running on your system, you know you're using a bad tool.
- zopa 4y agoStep inside a woodworking- or machine shop sometime and see how many of tools there you can instantly use with proficiency, with no instruction. (Please stand back from the table saws while trying this experiment.) It’s wonderful and beautiful that we can get real work done with a heavy thing on a stick, but pretending every tool can be as simple as a hammer is not really arguing in good faith.
- rtpg 4y agoOf course a lot goes on but pre-LSP and post-LSP are day and night. There is now a huge amount of serious language tooling that _isn't_ locked up into one or several editors. Now some might point out that LSP-based stuff is, like, bloat. Sure, OK. But there's a lot of motivation to do work that can pay off across the board. So much language stuff was based off of random regexes! It's hard to overstate how much better of an editor situation we are in than 10 years ago. This isn't even getting into VS Code offering a way for you to put... one? two? files into a git repo and have that mean that opening the editor will spawn a container, _install itself in the container_, and run there while still having a native GUI for the actual usage of the tool. So much incidental complexity, gone! One might point out that containers are a "big ball of mud" solution, but I vastly prefer that to big setup scripts that only half work. Here's to hoping we can shrink the ball of mud.
- Beltalowda 4y agoLSP is nice, but it's not an engineering marvel. It's just a text protocol. It's not even a great text protocol; it's okay, but not great. There's been lots of "LSP-like" protocols over the years, even decades, it's just that none of them really became a standard (partly because no one actually invested the time in writing one, and it just used an "ad-hoc protocol"). And of course the general concept of "process A communicates with process B over a text protocol" is all around us. Like I said, I like LSP, but a great exceptional feat of engineering it is not. This applies to most of VSCode as near as I can tell.
- squokko 4y agovi and emacs have certainly had more impact to date, but at the current moment VSCode far outcompetes it on every front. That doesn't mean that there aren't people who still prefer vi or emacs, the same way that some people still ride horses despite the fact that cars exist.
- tincholio 4y agoYou seem to be implying that VSCode is "better" than Emacs or Vim, as cars are better than horses, but other than having wider adoption atm, I'm not sure it's "better" in any meaningful way.
- zeveb 4y agoI think it’s more like how some people still wear wool and linen despite the fact that polyester and rayon exist. Popularity does not equal quality.
- jonnycomputer 4y agoI appreciate you saying Emacs, and vi, but I don't think we even have to reach out of the Microsoft ecosystem to find an even great achievement of engineering for a productivity app; namely Excel.
- pjmlp 4y agoVSCode is built by one of Visual Age and Eclipse architects, so they have some experience in IDEs.
- fragmede 4y agoI'd say compilers are the greatest productivity tool. Have you tried to program in assembly? it's doable, but there's a reason we work in higher languages most of the time.
- steve1977 4y ago> VSCode is one of the greatest pieces of engineering of our time. That must be one of the saddest things I read this month.
- mnd999 4y ago
- wokwokwok 4y agoYes, it’s not. It’s just free. What people mean when they say “I can’t believe how good this is” is: “I can’t believe how good this is for something I got for free” That’s not engineering excellence. It’s just engineering; being given away as a loss leader. Vscode is good and well maintained, but that’s because a lot of money is being spent making it so. Enjoy it; there’s no harm in taking money people are giving away. …just don’t presume they’re either a) doing it for love, or b) going to keep doing it indefinitely.
- deleted 4y ago[deleted]
- aspectmin 4y agoI worked around some of the vscode folk, there are a lot of them there who do it out of love for the product and the betterment of developer tooling. Someone should write up the story of how it started, and how it got to where it is. The backstory is fascinating.
- citizenkeen 4y agoThey may be making it out of love, but they’re not the ones giving it away. The ones who are giving it away are not doing it out of love.
- steve1977 4y agoOut of love for long term profits maybe ;)
- jgilias 4y ago> VSCode is one of the greatest pieces of engineering of our time. I don’t know… things like vertically landing rockets, the Large Hadron Collider, inflating space stations, CRISPR, mRNA vaccines come to mind among many other things that surely surpass VS Code when it comes to engineering marvels.
- smaudet 4y agoGreat point. I think the OP would be amazed if you showed them how a car works...
- forgotpwd16 4y agoBased on last sentence, software engineering is probably implied. edit: Seems it was not.
- p-e-w 4y agoI hold VSCode to be at least equal to those achievements. Having used dozens of text editors and IDEs in the course of my programming career, I can appreciate how non-obvious it is for a piece of software this complex to work so fucking well all the time. And considering how many people are empowered by the productivity gains VSCode brings, I'd say that the real-world impact of VSCode is also much greater than that of most of the projects you listed. VSCode has probably saved hundreds of millions of hours for programmers over the past few years. It's almost impossible to come up with an appropriate comparison for how important it is.
- 4y ago
- smaudet 4y agoMeh it's a second rate copycat in a shifty runtime. There is nothing they've done with it that is notable or new, typical micro$oft nonsense.
- lastdong 4y agoVS Code built on top of Atom’s team great work, which was open source (something that Microsoft was still grasping at the time). Not saying VS Code isn’t great, but they definitely learned from past projects mistakes and wins. Atom was one of the pioneers.
- NoGravitas 4y agoI feel like VS Code was a "learn from the mistakes of Atom" project in very much the same way C# was a "learn from the mistakes of Java" project.
- hnlmorg 4y agoVSCode is good but as someone who’s been writing software for nearly 40 years, I really feel you’ve over doing the compliments by a long long way. Compilers, operating systems, browser engines (unfortunately) and reverse engineering proprietary hardware/firmware are all significantly harder challenges than writing an IDE. in fact there have been excellent IDEs around for decades before VSCode came along. Yes the industry lacked an LSP but that doesn’t mean that languages severs didn’t exist before then, there just wasn’t a standard before so everyone did their own thing. Having built in terminals isn’t a new innovation either. That is and always has been the norm. And most of the other accomplishments aren’t any more unique either (eg lots of software projects have monorepos). It’s ironic that you say VSCode is the greatest productivity tool in the history of software engineering when VSCode is dependent on so many pre-existing technology’s like Electron, web standards, GUI frameworks, compilers, operating systems, device drivers, etc. in the grand scope of the engineering, VSCode occupies a very small fraction of engineering effort and in a niche that was already crowded before it even entered. Is it the best IDE on the market? some might think so. JetBrains certainly have their fans too. But even if it’s the “best”, it’s extremely hard to argue that it is that far ahead of the competition and that innovative to deserve the accolades you’re describing.
- blackoil 4y agoVSCode isn't the most complex of projects or most widespread etc. But from perspective of engineering a large project is about making 100s of small and large choices. In hindsight, lot of them are wrong. Take any software WinNT, Linux, Atom, IntelliJ, Adobe* you can now with all the extra information available today can find some decisions that were wrong. With VSCode these wrong decisions are very few and minor compared to the brilliant choices made by the team. That's why it is right to cite it as an engineering excellence project.
- menzoic 4y agoThe software you mentioned were pioneers in their category. On the other hand, VSCode had the benefit of learning from the many IDES in the saturated market that came before it. If VSCode was one of the first IDE it would not look anywhere near the same because it wouldn't be able to lean on the lessons of past IDEs like it does today.
- adiabatty 4y agoI've mostly switched over to VS Code from both vim and BBEdit, although I still use both somewhat regularly. It seems to me that VS Code is the 21st-century equivalent of Eight Megabytes And Constantly Swapping — that is, an editor that does a lot at the cost of quite a few CPU cycles and more than a bit of RAM. While Emacs isn't quite as heavyweight as it was 25 years ago (hooray for Moore's Law), it still makes me grin to see Emacs fans sneer at the resource usage of a modern Electron-based editor.
- Xelbair 4y ago>VSCode is one of the greatest pieces of engineering of our time. It's really only when you compare it with Atom that you realize how great it is. Atom was built by incredibly smart people, who had full control over the platform and several years of head start, and they were still out-engineered by the VSCode team at every turn. Its good, but not that good. There are still some pretty basic features that full fledged IDEs have - like multi window/display setup. And before someone suggests opening another instance - no, that is not enough and creates some synchronization issues that are no-go. It also handles huge files very badly - try opening up 1-2gb XML files. It will either ask for more RAM, and crash. Or open it and disable all formatting options. Mind you that other editors can handle such files. Or try to do a complex multiline regex find and replace - it will just sometimes crash outright on bigger files.
- dgf49 4y agoI disagree, even I use it myself, for those reasons: - plugins are a mess - when working with tech x how do I know from that huge list which plugins to use - keyboard shortcuts don`t work out of the box in my Ubuntu system - The ui feels non intuitive and overbloated to me - even IntelliJ Idea feels more clean and easy to use - I would love if VSCode could detect the technologies my project uses and just install/use the proper plugins for me. And maybe even without asking me so I could be happily writing code, building, running tests and doing debugging right from the start wether it`s Rust, Kotlin + Spring Boot, Node + Typescipt whatever... sadly its not working like this...
- brozaman 4y ago> - I would love if VSCode could detect the technologies my project uses and just install/use the proper plugins for me VSCode does this already, if it detects a new language it suggests installing a new plugin. I don't know the criteria it follows to recommend a plugin, perhaps it only does it with some official plugins, but it has showed me this a few times.
- wongarsu 4y ago> VSCode is the greatest productivity tool in the history of software engineering Surely that honor goes to compilers, right (take your pick which one is the greatest)? Sure, VSCode starts faster than Visual Studio, and has better IDE features than (pre-lsp) Emacs, but all of that dwarfs compared to the productivity increase of not writing assembly.
- otabdeveloper4 4y ago> VSCode is the greatest productivity tool in the history of software engineering Really?
- digitaltrees 4y agoMay be true but I feel joy when using atom and annoyance when using vscode. There is a subtle aesthetic to atom that feels so much better. I also feel a perceptible lag with vscode at times. If it is better engineered it sometimes seems noticeably less performant.
- Maken 4y agoYou are definitely over-hyping VS Code, but it definitely has a killer feature: being the only modern IDE (Sublime Text aside) that doesn't slow to a crawl when opening any file larger than a few hundred lines of code.
- LorenDB 4y agoQt Creator has been just fine for me. Granted, it may take a few seconds to generate syntax highlighting, but it seems very usable to me.
- rahen 4y agoQt Creator is what advise to newcomers who aren't yet familiar with the terminal. Unlike VSCode, its C/C++ debugger is first class, and it's a native binary developed in a high efficiency language.
- ar_lan 4y agoPoe's Law in action. I can imagine this being a reality for any developer that doesn't need to spend a majority of time in the terminal, or is more comfortable using a mouse than a keyboard (which _is_ a productivity drawback). What are you typically developing? How often do you spend in the terminal? Are you at all familiar with modal editing? Have you tried alternative editors, like Neovim, Emacs, or any of their related distributions? I went the trajectory from Goland -> VSCode -> Neovim. Goland -> VSCode, was a downgrade, personally. Goland/VSCode -> Neovim was surprisingly drastic upgrade.
- zppln 4y agoI seriously don't understand the hype around VS Code. I find it atrocious. The UI is complete trash.
- dw-im-here 4y agolol lmao
- Chazprime 4y ago> VSCode is one of the greatest pieces of engineering of our time I feel this is a slight overestimation of VSCode’s design.
- mnd999 4y ago> VSCode is one of the greatest pieces of engineering of our time. It's not. It's not even the greatest piece of engineering to come out of Microsoft - that's probably Windows NT. But here are just a few examples of things I think are better: * Millau Viaduct * The Linux Kernel * The Bugatti Veyron * Pretty much any NASA Mars mission That's not to say VSCode is a bad editior, it certainly isn't. But lets have some perspective.
- soulofmischief 4y ago> VSCode is the greatest productivity tool in the history of software engineering According to whom? Personally, I find Jetbrains products a far superior experience.
- npigrounet 4y agoIt's great software but really far from being the greatest of all time.
- craigkilgo 4y agoIs TypeScript responsible for how performant VSCode is relative to other Electron apps? I always wondered how they figured it out and all other Electron apps struggle.
- gregors 4y agoI remember when I couldn't fly across the country without running out of power due the terrible power usage of VSCode. One such example was the cursor blinking causing hight cpu usage - https://github.com/Microsoft/vscode/issues/22900 https://github.com/Microsoft/vscode/issues/22900 I'm assuming they've fixed it? Electron in general continues to be a bloated memory hog and inefficient. I think the real interesting thing is how good it is despite the runtimes/frameworks they are using, not because of them. It's more an example of there's no such thing as the "right tool".
- NoGravitas 4y ago> VSCode is the greatest productivity tool in the history of software engineering, Emacs would like a word with you.
- Maelcum 4y agoThat's an overstatement of the century. Even if it would be running natively, the statement'd be still highly debatable. But it's Electron based and using TypeScript, which means it uses a lot more electricity than a native solution would (about 20 times [1]), wasting precious resources. Now consider the fact that this is a product of a company that states "to ensure that technology is inclusive, trusted, and increases sustainability." The only amazing thing here is the level of hypocrisy, IMHO. [1] https://thenewstack.io/which-programming-languages-use-the-least-electricity/ https://thenewstack.io/which-programming-languages-use-the-l...
- irrational 4y ago> VSCode is the greatest productivity tool in the history of software engineering LOL. Do you work for MS? This is a bit thick, even for hyperbole. Personally I find IntelliJ to be superior to VS Code.
- crispyambulance 4y agoThere is one thing that I will always remember ATOM for, and I don't mean this as a joke, it _really_ was awesome: The ATOM 1.0 Launch video (https://youtu.be/Y7aEiVwBAdk https://youtu.be/Y7aEiVwBAdk)
- deleted 4y ago[deleted]
- jcdentonunatco 4y agoVS Code is massively inferior to Visual Studio. It’s a gloried text editor. Nobody writes large software projects on VSCode
- ar_lan 4y agoI'm not a big fan of VSCode, but this is objectively untrue.
- jcdentonunatco 4y agoNo it’s not. Visual Studio is a proper IDE. VSCode is not. VSCode has a very small subset of the features Visual Studio has
- ar_lan 4y ago> Nobody writes large software projects on VSCode Sorry, this was the bit I was responding to. I should have quoted it in the original. This statement is false.
- lofaszvanitt 4y agoFrom a company which hindered web development efforts and made devs life misearable with IE because why not. If you are doing web development with VSCode then congratulations, why not spit yourself in the face? Plus it's freeeee... because as a software behemoth with 1 trill marketcap you have to ruin smaller companies, because why not.
- todd8 4y agoVSCode is impressive, but to keep it in perspective, consider that an editor with a bug might corrupt a file, an OS with a bug might corrupt an entire file system and at worst a bad OS could actually damage hardware. Windows, MacOS, and Linux or BSDs are incredibly impressive software. Emacs has around 6000 packages available from the most common repositories. Nine years ago Emacs had over 1.6 Million lines of code. It would be much larger now. How many lines of code in VSCode? I don't know. However, consider really large projects in lines of code (see [1]): Average iPhone app: .... 40,000 Space Shuttle: ........ 400,000 Windows 3.1: ........ 2,300,000 World of Warcraft: .. 5,250,000 Android OS: ........ 11,800,000 F35: ............... 24,700,000 Windows 7: ......... 39,300,000 Facebook: .......... 61,000,000 Google: ......... 2,000,000,000 Where does VSCode fit in this list. [1] https://thenextweb.com/news/google-requires-5000-times-code-original-space-shuttle https://thenextweb.com/news/google-requires-5000-times-code-...
- camgunz 4y ago> VSCode is one of the greatest pieces of engineering of our time. > VSCode is the greatest productivity tool in the history of software engineering VSCode just seems like an IDE to me. Here's some things that are either better feats of engineering or better for software productivity: - moving from line-based editing to screen-based editing - any mainstream database - any mainstream browser - compilers - linters - any mainstream OS - continuous integration - headphones - big monitors - stack overflow - any graphics driver - any mainstream 3D platform (Unity, Unreal) - version control (edit: added, how could I have left it out??) I'm team Vim so I'm obviously salty, but even so I think you're going a little overboard here haha. I don't even think this about Vim!
- AtlasBarfed 4y agoWhere's the love for Borland Turbo Pascal DOS?