Having used dozens of IDEs and editors over the last 30 years for dozen of languages, just use what you are personally most productive in. Of course what you are productive in today may not be what you are productive in tomorrow. Long live vi.
I used vi when coding Java before our program approved Eclipse. I remember knowing everything about certain classes and their methods/parameters by memory. Once I got code complete I was spoiled
If you dont write a message when committing and hit the commit button, vscode will open a new tab that gives you plenty of space to write your commit message. That tab also has intellisense functionalities for git issues among other features.
@@sudo008 Many people who use the terminal just do: git add .; git commit -m "update"; git push and there will be a day where I'm going to smash their keyboards and fingers with a hammer (in minecraft don't arrest me please), so I'm really not convinced that the gui is making anything worse.
@@sid4579 It really isn't. I've not yet used a worse Python IDE than PyCharm. It was an exercise in continuous frustration. Also, PyCharm isn't open either.
and like i thought, he brings up "not open source" as a reason to not use vscode, i agree so i guess the video is not targeted at me since i use vscodium only
i find it interesting that he would list the closed source parts as negatives and then go on to describe them as "the good stuff ™" seconds later. i just find it intriguing that he would hold these beliefs simultaneously, that's all
So basically the arguments against vs code are it takes 300mb memory and it's "sometimes" (whatever that means) slower (compared to what?).. If that is the argument against vs code than I see it at 90% market share soon. It's just too good.
On my system VS Code actually takes about 5 GB and I have even seen it twice as big at least. But it depends on the number of installed extensions and programming languages that you develop in. However in the video, he only looked at the dot vscode directory wich mostly stores extensions, but there is another just as important directory with the name Code, which on Windows sits in your AppData Roaming dir and on Linux in your dot config dir in your user home. Both of these directories can be significant in size.
@@AndersJackson Yes we know that. But I think it's also fair to look at this aspect from different points of view. Just consider what VS Code actually adds when you subtract the large "Chromium layer" size from the total allocated memory and just look at the actual memory usage top of that layer. This is quite likely to be a lot smaller and is probably be much more comparable to loading simply a large webpage in a tab in your already running webbrowser. However, this excludes extensions of course, which can be really large, but which also come with complex functionality like debugging tools and a lot of code completion features. I would not be surprised if some Neovim extensions are also quite big. Maybe I will try Neovim one day though. Currently I am familiar to the regular Vim, although I don't use it for large software development.
@@jongeduard don't care that much about Neovim, I am a Emacs man. And yes, Emacs still is smaller then VS Code, and it doesn't matter that it is the Chrome layer that take most of the memory. Because that is the runtime that VS Code has made the choice to use. Until VS Code choose another run time, there are still part of the memory use running that program. Using Neovim is just extension language diffrence from Vim, so you should be able to use that. But Emacs is much more expandable, as the Emacs is self documenting, which make it a great tool for hacking, with a good language for writing those extensions.
Not saying that VSCode is always the best, but your reasons are obviously related to special cases such as using Python. And the disk space argument is totally not a thing, you are not running the IDE on your washing machine or calculator. 300Mb is nothing on today's computers.
I don't get how the memory argument was not immediately thrown out. Seriously, VSCode could use 8GB for all I care, you're not rendering 4K in a hurry while coding, you're not playing Hitman 3 while you write up an API and you're not playing Cities Skylines with 120 running mods when patching a driver build. My 6 year old PC build contains a grand total of 16GB at 2333MHz, not even _that_ much back in ye olde 2017. Unless your code editor is swallowing up most of your RAM what the hell do you care how much it uses? What could you possibly be doing on the side? And if we're talking about working in a company and saving resources over many employees, how is that worth a possibly negative UX for your paid workforce? Saving 500MB of RAM on a dev is almost certainly not paying for the reduction in productivity
I work as a data scientist/analyst and VSCode is by far the best editor to work with Jupyter Notebooks. Having Vim bindings just improves my efficiency even more.
I was Pycharm for ages because I think the debugger is top tier. But this weekend I got my Windows machine running WSL to debug a JAX Docker container using dev containers in VSCode - all on FREE software. Yeah easy use of notebooks is also very useful, personally I don't implement them but it's very useful to at least be able to run them and I have no idea why its pro only in Pycharm. Also from a Dev Ops perspective I can share all the JSON configs with my team and they can replicate all this mad workflow stuff with ease.
@@arvetemechaMemory hungry? How much ram do you have 8gb? I run multiple instances of PyCharm at the same time while also running Goland, Webstorm, and with an active OBS stream to Twitch, 0 issues
Language Server Protocols are not exclusive to VSCode, I use code autocompletion all the time in vim. And if you mean something like copilot… there’s a neovim plugin for that
There is somewhat of a reason for that. It's unsurprisong when a native tool is written in C or even C++, and it is entirely expected in fact as we know those languages have the capability to create mature, stable, and hardended tools. Newer languages for compiled programs don't have that assumption. They often fall short in some way or another, or the entire reason it works is by virtue of a supporting framework/library that eliminates whether or not you care about the library. Electron is a good example; do we even know or care what underlying language was used when it's an electron app? No; what mattered was electron. With Rust, it's different. The heavy lifting is being done through the programmer and the language itself, and it is surprising this much already useful, resource efficient, non-memory leaking, end-user software is being created this fast. That is a testament to Rust and the goal is for us to have more/better software because the langauge enables it; not to make the language more used even in suboptimal use cases.
Did I get that correctly? An argument against reliance on Vim plug-ins is, that they always "somebody's" project. Presented at a Python conference, Python which itself was once "somebody's" project.
I would imagine it was about the risks of a single point of failure. That's not true of all plugins. However, if there's just one person working on something and that person vanishes you may end up being forced to change. If more than one person is involved with something there's less of a risk of something going wrong. I've had that happen with a window manager, and was painful to deal with.
That he even judges people based on the IDE they use makes me reject his views. There’s can be legitimate arguments about what’s better, however, it’s the code they write that matters. People learn tools, and then get used to them. He also said, “It uses quite a bit of disk space as well.” However, if there are more features or better features, I’m fine with that. My primary development system has only multiple high speed SSDs that amount to 4TB of storage. I’m using a small fraction of that now. And, in the end, he argues that because what he uses is harder than VSCode, it helps him get into a flow-state. I’ve never used VSCode, however, after reading that, I want to try it. I rarely have issues getting into a flow state, so easier sounds better.
I feel like the anti-VSCode crowd is a bit like the vegans of linux, aka Arch. I get that you can customize it to hell and back, that's awesome, but you know what's awesome about VSCode? It just f*ing works, out of the box. Wanna write up massive HTML in seconds? Emmet is included. Don't know which keybinds make sense for Emmet? There's an extension that takes care of that. It's just so damn comfortable, I'm not a power user per se but when you're actually "working" on something I'd argue getting constantly annoyed and fixing things because your editor is a janky mess of DIY concoctions, that is a big minus for "flow-state". I love adding 50 HTML elements with pre-set patterned IDs and just tabbing through the content fields, or auto-wrapping multiple list elements at once *and not having to dedicate a second of thought to how I got that to work, because it just does* and my job here is to code and (almost certainly) not to make my own editor. As a big privacy guy, I still use Windows almost daily for the same reasons. I get the telemetry and whatnot is a big negative aspect, but doing common things in Linux almost always brings a major level of jank which I usually just don't want to deal with, my father actually raised me on Linux and yet I still often can't stand it. Best case scenario in Linux (if Wine doesn't work) is that there's an open source program for x task, which is great and all, but I find they are always such barebones things. GIMP existing is awesome, I'll give you that, but its user interface is undeniably meh and that's what I dislike about so many of these great initiatives, that they're often just too janky to do outside of "linux is my hobby" (exception being Blender, god I love Blender 3.x so much more)
10:47 how can you not like the commit message box It's literally a text field like any other and then you press a button, and you don't have to switch to terminal and write 10 more letters
And if you need to write an essay, you can just click Commit without entering the message: it will start committing and open COMMIT_EDITMSG file for you.
Your commit messages should be verbose and explain the issue being fixed or implemented. The git history is documentation and needs to be useful for everyone, including you a year from now. A small text field encourages useless commit messages.
Every programming language recommends q specific IDE while not closing the idea of using other also. I have different IDE for specific reasons, but 70 percent of thr time, I use Vs code.
Did this man get frozen in time for 15 years and woke up 5 months ago? I feel like everything in this talk is common knowledge and any sane developer has probably already tried it at the very least. Maybe I'm a crusty old engineer at this point, but this is like 5 minutes of searching on google's worth of info.
Having watched this completely through, not sure it is at all clear to me, why VSCode can't be used. What difference does it make to anyone that it is not truly open source, if it works free of charge? At the end of the day, we are using these editors to create new apps. I certainly don't want to be spending lots of my time configuring eMacs or a derivative just to get to my actual project.
i'd say, the problem is that they can have a gotcha in the terms and conditions, and if you use it for some serious commercial project, you might get into a deep gotcha, ending up with huge payments to microsoft. Or they just say "sorry, not free anymore, pay 9999 to continue using it".
"That commit message box is just.. stupid." Tells everything about the speaker. Seriously, i like dabbling with vim (because i don't know how to exit from it, send help!) but we're not in the 80's anymore. IDE's make coding easier and faster for most developers and VSCode is one of the best ones even tho i still think a different one is better for me.
Same thing about git. Yes, it's useful to know git commands and options so when things get messy, you can fix it, but there is no way in hell I'm gonna use commandline git and vi to merge stuff or do code review.
I have seen people name their variables a, b, t I judge a programmer by the code they write not how they wrote it. And of course how fast they write is a factor but in my opinion its secondary
If you press commit without having the commit message box filled, you will automatically get a new tab in which you can commit. No need to spin up the terminal.
As an answer to the person asking for the usage of notebooks: One can write a 2 line function to send a highlighted area to a 'main' terminal, bind that to a key, bind the functionality to set the main terminal, and then run anything as a notebook. I've been doing this for the past two years and it has all the advantages of a notebook and none of the annoying disadvantages (e.g. Having to use a browser or vscode to view them, can't have them as vim buffers and in general clumsy interface) One can also use this notebook like functionality for arbitrary languages and in debug mode to send full blocks of code to the terminal instead of clunkily copying stuff like many vscode users I have seen.
Thanks. But it doesn't work when you need to share the file and everyone else is using jupiter notebook. I use jupyter ascending and paired notebook for that.
@@tomemcd Hi, I am only now seeing this, sorry. I will paste this below. Feel free to edit to your liking: `custom_functions.lua` ``` function M.set_main_terminal() vim.g.main_terminal_job_id = vim.b.terminal_job_id print("Main terminal job id set to " .. vim.g.main_terminal_job_id) end function M.paste_to_terminal() vim.api.nvim_chan_send(vim.g.main_terminal_job_id, vim.fn.getreg('+') .. ' ') end ``` `keybindings.lua` ``` vim.keymap.set('n', 'pt', '"+Y:lua require("custom_functions").paste_to_terminal()', {desc = 'Paste line in main terminal'}) vim.keymap.set('n', '', require('custom_functions').set_main_terminal, {desc = 'Set main terminal buffer'}) ``` Of course, you can just put both of these in your `init.lua`.
It's one of the least bloated 'IDEs', and is a borderline flexible text editor more than an IDE. Tons of extensions, Vim compat settings, etc. I'd argue it's closer to Vim and Emacs in some ways than typical special-purpose IDEs, but when it comes to ease-of-use versus customizability tradeoffs, sets itself apart by leaning more heavily towards the former.
I recently heard someone complain about customizability of VS Code and I couldn't relate at all. The thought that something is missing never occured to me in the 4-5 years I have been using it. And I have like only a handful of the default settings adjusted. So I guess I match the target audience perfectly.
@@TheDuckPox Yes, like I said, it's a tradeoff. Even with Emacs, for example, you have popular presets like Spacemacs and Doom. The reason is that people tend to like a reasonable set of shared defaults, that other people use and know how to teach them about quickly. I actually found it easier to use vanilla Emacs with the *straight.el* pkg manager, since it's similar to my system manager (Nix for NixOS), and there's less 3rd party boilerplate that could cause bugs or unclear behaviour that causes you to waste more time debugging than just adding an extra bit of ELisp config code yourself. At a certain point, before I got into coding as a job, I had probably written more ELisp config code than actual code lol The problem with all of this is, when you tend to work a lot with other people, it's easier to use something less configurable, so you can debug each other's crap easier, and because it's easier to convince them to use it in the first place. It's probably why, in terms of popularity, Python beat Ruby, Windows & macOS beat Unix derivatives like FreeBSD and Linux for many home users (at least at first), and the C family of languages in general beat the Lisp family. I think the 'straitjacket' is a feature, not a bug in many tools. Does it handicap people who could work better without all the sometimes arbitrary and sometimes needless rules and limitations? Of course. But it also helps everyone else know what to expect in a way. Like I said, tradeoffs. Also, I had developed a ricing addiction with Emacs, and had to give it up entirely for my sanity lol
VSCode is awesome. I tried Vim and I actually enjoyed it also but small things got me angry like configuring a lot of language servers for example to have a decent experience when writing code in a particular language made me tiresome, I guess I don't have the patience. One thing I took from Vim though is the keybindings, I can't live without them, I am more faster & efficient when I'm not writing and moving my mouse to do mundane things like changing / renaming a function
right but after importing the bindings into another IDE what is the advantage of vim exactly. Its so weird and limiting to use a terminal to edit files. In any IDE you can look up parent classes, read method definitions, easily run and debug your code or get AI suggestions now, plus the seemless integration to git...anyone who uses vim to code honestly that's pretty weird
What's a more seamless integration to git than working in the terminal? XD I don't know why I've just been using a terminal editor forever and I like using a web browser for looking at docs. I have the co-pilot plugin as well, what more do I need? Maybe I'll give vscode a try with the vim plugin. I don't like touching the mouse when I'm coding.
@@radscorpion8 You don't know what you are talking about. You can see "parent classes" with treesitter, "method definition" can be done with treesitter or LSP, debugging can be done with e.g. nvim-dap or gdb. Git can be done with e.g. lazygit which btw is much faster than the VS code git integration. If you don't know these things, that's ok, but please stop spreading misinformation about vim or neovim.
If you use something like neovim which is kinda successor of vim imo then you can use plugins to help you with that. Something like lspconfig and mason helps you config all the lsp with just few lines of code. Of course there is some learning curve but for me it’s worth it. I feel like I know what’s going on behind the rather than seeing vscode magically doing everything for me. For most of the user it might not matter but for me it does.
Micro is great, I can't think how my life would be like without it. I am using also neovim, but I am still a little rough with it, can't get clipboard, switching buffers, and some motions right. So to run quickly my python code I often use Kate with pylsp plugin and vim motions, it uses Konsole as terminal, and I can launch my scripts with an easy keybinding.
If you add "set clipboard=unnamedplus" to the vimrc it will automatically use the system clipboard for all operations that copy, cut, delete and paste text. Aside from that custom keybindings can be helpful for making some features more convenient to use.
"I don't remember how to invoke it now" kinda says it all. Not here to start a war but I generally think that if you need a manual to use something it's not user friendly and intuitive enough. My first what is he saying in this video was the "350MB is a lot". The second "look you can see it all here too" which I did not lol. The mayor one was indeed "I use it since if it's too easy my brain doesn't get that I'm supposed to work" = I do it because I'm used to it and have a hard time switching, not since it's better. And then the first mentioned icing on the cake lol. I was seriously interested in alternatives and started using vs code about a year ago. I guess I should look at using more of vs codes features instead... but I'll definitely keep doing git from vs codes command line. It is great to see which files have been changed though!
Hi, I used to be a vim guy. But now I am using vscode because I need the lsp "pylance" for Python. You can't use "pylance" everywhere other than vscode. Does anyone have good suggestion for pylance alternative which should work as good as paylance?
@@deleuzeetguattari Since you can use "pylance" with vim, the only choice would be "pyright". But the "pyright" often shows some red highlights to alert me some issues which are false alarm. I think my question would be: is there any vim lsp server for Python that can work perfectly like "pylance" does?
This was pretty unconvincing. The fact that VSCode uses a couple of hundred MB of disk space and RAM by default is not going to matter to 80%+ of developers. The fact that certain parts of VSCode are closed source are matters of preference and/or ideology. I also don't think they matter to most developers. I don't use VSCode because I find it's too slow and unresponsive for my liking, and I find the scrolling UX to be uncomfortable and unnatural compared to native apps. I also find its multi-cursor support to be far inferior to other editors. There are some reasons to use VSCode, for example it's the only supported editor for certain new languages and features like GitHub Copilot, but it's just not for me. At the end of the day these are personal preference issues.
I found The Good to be spot on and The Bad to be trivial nitpicking. Resources are cheap and just a few hours of time saved more than covers the cost of adding resources. VsCode uses a teeny fraction of my 2Tb disk space and 32Gb memory. Convenience is time and time is money. As for monoculture being bad and criticism merely because it is ubiquitous, I wonder if he advises not to use Git for the same reasons?
When you do extensive debugging and want to use things like language server with syntax highlight and code actions and more... Configure vim or emacs can be REALY hard. I'm novice here in selfmade ide world and spend more than a 3 to 4 weeks of trying configure emacs.... It's just.... unbelievably hard. When you don't like default config and want to configure it - it one story. But when you have nothing to configure and download package manager for download all of what I mentioned with ZERO configurations and have to build up it from nothing and remember all new hotkeys AND make new ones when you don't even know what default one is... It's just too much. I wrote NOTHING with my emacs configuration because all new hotkeys and demand to make new ones is too disturbing. If you just write some files - vscode and fancy ide is useless. But if you NEED an full ide workspace making a new one should be your new hobby for next 5 or so years and you will use real ides before you can use new selfmade emacs one. VS code is bad, microsoft is bad, all things in this world is actually bad in our it world but making own OS with own ide with own browser is not an option for most of us.
He shouldn't have complained about 300 MB... It sounds funny even saying it. Yes, it's ridiculous that a fricken *text editor* (not a real IDE) uses so much space. But that's because it comes with a whole-ass browser. VSCode is basically a website.
I'm sorry but there were more arguments for vscode (except the horrible framework they are using) then against it. The framework is still good enough, but this will change as soon as they are implementing too much stuff in the core. As for now it's a good choice for starters and pros as well. If you got something more clever for free, feel free to share....but u won't, because u know, money and stuff....
A great editor in my opinion is Helix. It is a modal editor similar to Vim, but it comes with much more batteries included. So if you have set up the language server for your preferred language you don't have do set up anything in Helix. And the "select first" order is much better than the "command first" in Vim. And I never heard of Lapce. Sounds interesting.
Brave talk. I can enumerate a few other topics he might have chosen: "Tabs vs Spaces", "Curly Braces: Same Line vs New Line?", and, of course, "GNU vs Linux."
No dude, thanks really but I am so going to continue to use vscode and codium (the opensource alternative) and no one is going to stop me. Really, with the git client builtin and countless extensions and debuggers for java, spring, python, javascript, c, c++ etc it is so pleasant to use. It even has reverse engineering... you can literally decompile an apk by installing an extension in vscode and do a single click and it will literally use the dec tools to decompile bytecode or compile into bytecode for you.
Jupiter notebook is not for programmers! It is for data engineers, who are coders, not programmers. For real programmers it is a distraction, you may use it for experiments, but the main focus is the real program that needs lots of documentation, a test apparatus and workflows on various levels, and Jupiter notebook doesn't really fit there. It's purpose is to document how you produced a certain data analysis/synthesis, and that is solely a data engineering task.
I would say that notebooks are by data scientist or analyst. imho data engineers should be system and database admins with a good knowledge of the underlying system, so they can support scientist and analyst in implementing the matured analysis into a data pipeline. Many times I see data engineers end up doing analysis, and usually they are very good optimizing a SQL query, but don't know s***t about basic statistics or actual ML and the results show. I also see data scientist that are made to set up a data infrastructure, and the results are laughable. It is pedantic but it is necessary to make the distinction. The same way a programmer is not software engineer or architect.
Wait, you think the learning curve for vi and emacs is good because you personally find it hard to focus when using an electron app? That is a personal problem; most everyone else, including my ADHD brain, doesn't need to avoid electron because it's distracting. Heck, the learning curve is a thing that's only a problem at the start, so the learning curve isn't even the thing helping you not get distracted! Isn't there a way to customize the GUI to make VScode not look like Reddit?
Reading the comments tells me everything I need to know about this video I’m skipping. Anywho I should never listen to someone whose opinion is to never use vscode. I have used it for 4 years for C, Python, Java, assembly, html, php, xml, JSON, C++, Dart, Swift, JS, MySQL, Latex, LISP, and even verilog. Never failed me once. It does everything, and does it well.
16:56 - This is the crux. If you need an expensive, modern computer to load _TEXT_ files, something is wrong. And yes, there _is_ something wrong with modern software (since after the '90s, actually).
With all due respect, I think most of us have brains that CAN be in 'real-work mode' with a prettier, more information dense IDE *AND* while we have philosophical beliefs as regards OSS, these DO NOT extend to a moral obligation to avoid VSCode. So to push back: sure you should think about your values, but not every value is extreme: if 95% VSCode users choose our own productivity over these non-extreme values (when there is no full OSS solution), then this is morally permissible and only a religious zealot will try and argue the point (not that you are doing so).
I've been working on an editor called Lilly, it's basically Helix but follows the VIM philosophy and modal system rather than something esotric like Kakune's.
When I use VSC, there is some Vim guy who tries to convince me his editor setup is better than my editor setup. When I use VSC, there is some Jetbrains guy who tries to convice me his editor lack of setup (as I've never seen Jetbrains user who at least switched a color scheme) is better than my editor setup. Just let me use whatever I'm productive in >:(
What? First of all create docker support or other way to navigate within separate environment to support toolchain code navigation. After that we will continue to talk. On other hand vscode is damn way stupid by default. Haven't seen ideal solution yet.
The ssh/tmux/vim demo at the end of how to replicate VS Code functionality in the terminal is interesting - it's at this timestamp: ua-cam.com/video/GUovhZYNO-M/v-deo.html
More like how linux programmers work(ed) even before VS Code, with its baked in components. The order is reversed, VS Code replicates a terminal/tmux/ssh/editor workflow...
If I am not wrong, tmux can't just restore sessions after machine restart. You need to have another VM which is kept running all the time (thats why he is using ssh). If you are doing development in local machine then VS code restores all opened tabs between restarts. I think the same thing is not available by default in vim, I think you have to get some extension/script to acheive this as it is really bare bones by default.
This didn't really age well. 300MB or disk per user. I know it's still M$, but have you seen active directory? Apple / iTunes have similar space wasting features. But multi-TB SSDs are pretty common.
Using a 'proper' IDE does *seem* a lot better, at least to me.. but then I started thinking.. am I actually more productive using vscode than I used to be with emacs (or vim)? Probably not in fairness.
The snark about JavaScript needs to die. Like C, it was written by engineers who wanted to use it to get stuff done. If they'd kept working on it until everybody was happy with it we'd still be waiting.
I mostly write JS , C , and Bash . If a C++ programmer says they use a subset of C++ so its basically "C with namespaces and classes" people will node their head and say "reasonable" . If you write a subset of JS that is just C-Style code , people think you are insane .
It is a memory hog == I'd just go and buy more RAM..? why ? developer time is waay, waay more expensive than a ram stick..come on.. economics also apply here. You can write a replacement for pylance right ? That will solve the opensource problem. Sorry, those arguments are unconvicing to me. it more looks like Python stuff is half baked than a problem with vscode.
Moreover, most workstations will have at the very least 16GB (that's what I have, and VSC works just fine). What the f* could you possibly be doing to use up 16GB with VSCode? The most you can really argue there is that you're doing something else at the same time, but what could that possibly be? Do you have to render a feature-length film from raw 4K and it's due in half an hour, along with your coding assignment? Are you running 3 simultaneous instances of a recent AAA game on there for your friends while you work? I just don't get it, from a guy about the "flow-state" I wouldn't exactly expect a complaint about not being able to do many things at the same time as coding
vim over ssh is exactly what I've been using for nearly 15 years, its lightweight, effective, and does not require a lot of set up. I pretty much remember what my .vimrc looks like (just about 4 lines), and that's enough to get me set up to do serious work. I think like others have mentioned, whenever I am in VSCode, I get totally distracted exploring the random extensions, and its just counterproductive.
Yeah but... if you've been using it for 15 years of course you're gonna like it more than vscode...? Not to be mean but isn't "getting distracted on features" basically normal for software you haven't gotten 100% used to? My .bashrc also doesn't look that intimidating and it's only like 30 lines long but much of that took ages to actually come up with / get used to.
when i was learning sys admin'ing, i remember asking my mentor "should i just always use vi in case a new computer doesn't have the software i'm used to installed? and she said "should you just drink dirty water all the time in case you find yourself cut off from civilization?"
With Linux, I often use VI. Say I'm using a headless server. I'd suggest learning VI is a valuable skill that will always help you in a pinch. Normally I use VSCode to edit files on my Pi4 through Samba but, fairly often, I'm logged into the console on the PI4 and need to edit and compile something. That's when the VI skills kick in.
All due respect for your mentor, but I am cut off from civilization far less often than I find myself at a computer without my preferred software (And if you really worry about not having clean water, bring along some iodine tablets or whatever it is as part of your everyday carry. You can already drink dirty water if you just suck it up, the trick is not dying from it)
at work i only do work with vscode. At home i do projects in vs code and sometimes spacemacs. The problem with emacs is the time to get things running. oftentimes packages are out of date, not running anymore and you sink 20 hours to setup your project into it. Performance of VSCode has never been an issue, only the telemetry thing is annoying. Your talk reminds me of using emacs more frequently again. And I am totally in with your focus argument. In vscode you always have to use keyboard and then mouse etc. so i am oftentimes never getting into a flow. With emacs i can perform all actions extremely convienently solely with key strokes.
@@theelmonk who is going to have a trustworthy opinion on the merits of a program they didn't even bother trying to learn? VSCode is a breeze for so many things, it has a marketplace packed with nifty extensions and so much more. Why would I care about its efficiency? Let it be inefficient, it cannot possibly lag on my PC and it's far from new, because it's a damn text editor, I'll accept that tradeoff for it, you know, just working without fuss and the usual open source jank (FTR I love open source, but most "big" FOSS programs are too janky to use as replacements for the industry standards, a notable exception being recent blender builds)
I hate it when simple apps like time trackers or todo lists use Electron. But using it in an IDE is pretty powerful. Now you have a way to easily create beautiful, fast and scalable UIs and display anything you want (like extension readmes including multimedia) directly inside the IDE. And it's way easier to create extensions for it. I love that. I'm sure it's also a great speedup for the development process of the IDE itself. Terminal interfaces are just objectively worse in terms of usability (stuff like self-descriptiveness, discoverability, learnability). As a junior programmer, seeing the terminal IDE in the presentation, I would never want to use that. It's hard to read and looks like it doesn't recognize any mouse input. Why would you give up all the progress made in the field of human computer interaction unless you are already used to these interfaces?
well, coming from a senior engineer, you have a lot of learning in front of you. The servers the cloud runs on never have ui. The most common editor will be something like vim running in a console. So when your app infrastructure is crashing and your boss is calling you to fix it asap, you better are comfortable with system console and only working on text based UIs.
@@jekker1000 It's definitely the case that you are sometimes forced to use a terminal based editor on a server. But if you control the server, chances are you can simply connect to it with VS Code. Thats what I always do. If I can't I will first try to connect with the SSH-FS extension or use Filezilla with VS Code as Editor. Personally I don't recall the last time I was forced to use a terminal editor.
@@RealFlicke well if you have like 400 servers, you also have to manage the credentials (and your team needs access in case of vacation, illness etc.). I do not know if vscode has the abilities for that but at work we are using a tool for that and it opens the ssh automatically. But then you are forced on console based editors again. I mean, i get that you can get around using console based editors by using vscode plugins but learning sth. elementary is never in vain.
@@jekker1000 You can store SSH keys in a 1Password team vault and use it's native client as a SSH agent in VS Code. But you still need to somehow share the rest of the server config with the team. I guess there is a way to do that, but I have not needed it yet.
@@RealFlicke ahh ok, good to know. But i think the solution @ my work seems more streamlined and also integrates rdp for the few windows machines there are
I write Rust and PHP and I do it using Emacs. I will never touch stuff that has Microsoft as the principal sponsor. There's apparently no limit to the amount of flak you can get with that combo.
Having used dozens of IDEs and editors over the last 30 years for dozen of languages, just use what you are personally most productive in. Of course what you are productive in today may not be what you are productive in tomorrow. Long live vi.
Long live stone tablets and chisels!
I used vi when coding Java before our program approved Eclipse. I remember knowing everything about certain classes and their methods/parameters by memory. Once I got code complete I was spoiled
Emacs any day in the week.
@@AndersJackson ~
Still waiting for vii
If you dont write a message when committing and hit the commit button, vscode will open a new tab that gives you plenty of space to write your commit message. That tab also has intellisense functionalities for git issues among other features.
I do this and walk away, come back 15 minutes later to check my pipeline in gitlab and I haven't committed anything :')
@@chrisgascoyne2958that's because you didn't push xDDDD
@@chrisgascoyne2958 Apt punishment for trying to commit without a commit message 🙂
Even better, follow deliberate git principles by using the terminal to make the commits. The GUI is frankly terrible at deliberateness.
@@sudo008 Many people who use the terminal just do:
git add .; git commit -m "update"; git push
and there will be a day where I'm going to smash their keyboards and fingers with a hammer (in minecraft don't arrest me please), so I'm really not convinced that the gui is making anything worse.
>VSCode bad because it's not truly open
>recommends PyCharm
Ok, yeah, I'm going to disregard.
PyCharm is just better. I use it for web development and it saves me a lot of time (=money)
But PyCharm is very OP especially with large projects not some basic apps
@@sid4579 It really isn't. I've not yet used a worse Python IDE than PyCharm. It was an exercise in continuous frustration. Also, PyCharm isn't open either.
At least the Community Edition is open sourced 😂
Pycharm is awesome
21:50 "my title was a little bit click-baity" yeah agree with that
right this should be USE VS CODE!
i use --user-data-dir to change my vscodium folder to a large hard drive so that it does not consume home folder space
and like i thought, he brings up "not open source" as a reason to not use vscode, i agree so i guess the video is not targeted at me since i use vscodium only
i find it interesting that he would list the closed source parts as negatives and then go on to describe them as "the good stuff ™" seconds later. i just find it intriguing that he would hold these beliefs simultaneously, that's all
he said that in the first 45 seconds. stop skipping ahead.
So basically the arguments against vs code are it takes 300mb memory and it's "sometimes" (whatever that means) slower (compared to what?)..
If that is the argument against vs code than I see it at 90% market share soon. It's just too good.
Yeah, you are right. Another pycharm ad. Pycharm not optimized, use 6 gb ram in idle, cant open big files, code completion use bad tips
On my system VS Code actually takes about 5 GB and I have even seen it twice as big at least.
But it depends on the number of installed extensions and programming languages that you develop in.
However in the video, he only looked at the dot vscode directory wich mostly stores extensions, but there is another just as important directory with the name Code, which on Windows sits in your AppData Roaming dir and on Linux in your dot config dir in your user home. Both of these directories can be significant in size.
@@jongeduard yes, and everything that VSCode can do, Emacs (and mostly vim) can do with way less space on RAM and disc, and thus much more efficient.
@@AndersJackson Yes we know that. But I think it's also fair to look at this aspect from different points of view.
Just consider what VS Code actually adds when you subtract the large "Chromium layer" size from the total allocated memory and just look at the actual memory usage top of that layer.
This is quite likely to be a lot smaller and is probably be much more comparable to loading simply a large webpage in a tab in your already running webbrowser.
However, this excludes extensions of course, which can be really large, but which also come with complex functionality like debugging tools and a lot of code completion features.
I would not be surprised if some Neovim extensions are also quite big.
Maybe I will try Neovim one day though. Currently I am familiar to the regular Vim, although I don't use it for large software development.
@@jongeduard don't care that much about Neovim, I am a Emacs man.
And yes, Emacs still is smaller then VS Code, and it doesn't matter that it is the Chrome layer that take most of the memory. Because that is the runtime that VS Code has made the choice to use. Until VS Code choose another run time, there are still part of the memory use running that program.
Using Neovim is just extension language diffrence from Vim, so you should be able to use that. But Emacs is much more expandable, as the Emacs is self documenting, which make it a great tool for hacking, with a good language for writing those extensions.
Not saying that VSCode is always the best, but your reasons are obviously related to special cases such as using Python. And the disk space argument is totally not a thing, you are not running the IDE on your washing machine or calculator. 300Mb is nothing on today's computers.
I don't get how the memory argument was not immediately thrown out. Seriously, VSCode could use 8GB for all I care, you're not rendering 4K in a hurry while coding, you're not playing Hitman 3 while you write up an API and you're not playing Cities Skylines with 120 running mods when patching a driver build. My 6 year old PC build contains a grand total of 16GB at 2333MHz, not even _that_ much back in ye olde 2017. Unless your code editor is swallowing up most of your RAM what the hell do you care how much it uses? What could you possibly be doing on the side? And if we're talking about working in a company and saving resources over many employees, how is that worth a possibly negative UX for your paid workforce? Saving 500MB of RAM on a dev is almost certainly not paying for the reduction in productivity
I work as a data scientist/analyst and VSCode is by far the best editor to work with Jupyter Notebooks. Having Vim bindings just improves my efficiency even more.
Yeah for some use cases like ML and Data where external tools are used all the time VSCode is definitely more efficient
You haven’t used PyCharm or Datalore
I was Pycharm for ages because I think the debugger is top tier. But this weekend I got my Windows machine running WSL to debug a JAX Docker container using dev containers in VSCode - all on FREE software. Yeah easy use of notebooks is also very useful, personally I don't implement them but it's very useful to at least be able to run them and I have no idea why its pro only in Pycharm. Also from a Dev Ops perspective I can share all the JSON configs with my team and they can replicate all this mad workflow stuff with ease.
This message brought to you by JetBrains
as a pycharm user, I have to admit it is quite memory hungry.
@@arvetemechaMemory hungry? How much ram do you have 8gb? I run multiple instances of PyCharm at the same time while also running Goland, Webstorm, and with an active OBS stream to Twitch, 0 issues
Not having auto-completion is not a minor inconvenience.
Quit coding and get a typist job.
Im sure he did cause you said so ;)
Language Server Protocols are not exclusive to VSCode, I use code autocompletion all the time in vim. And if you mean something like copilot… there’s a neovim plugin for that
"If its written in Rust you MUST tell everyone its written in Rust"! 🤣🤣🤣
It's like Arch/Linux. "I use arch btw."
There is somewhat of a reason for that. It's unsurprisong when a native tool is written in C or even C++, and it is entirely expected in fact as we know those languages have the capability to create mature, stable, and hardended tools. Newer languages for compiled programs don't have that assumption. They often fall short in some way or another, or the entire reason it works is by virtue of a supporting framework/library that eliminates whether or not you care about the library. Electron is a good example; do we even know or care what underlying language was used when it's an electron app? No; what mattered was electron. With Rust, it's different. The heavy lifting is being done through the programmer and the language itself, and it is surprising this much already useful, resource efficient, non-memory leaking, end-user software is being created this fast. That is a testament to Rust and the goal is for us to have more/better software because the langauge enables it; not to make the language more used even in suboptimal use cases.
it is something to proud
Did I get that correctly? An argument against reliance on Vim plug-ins is, that they always "somebody's" project. Presented at a Python conference, Python which itself was once "somebody's" project.
I would imagine it was about the risks of a single point of failure. That's not true of all plugins. However, if there's just one person working on something and that person vanishes you may end up being forced to change. If more than one person is involved with something there's less of a risk of something going wrong. I've had that happen with a window manager, and was painful to deal with.
Which one? Tab Manager Plus? @@jocketf3083
Your point being?
@@user-yw5me7pb2xAs in, I think the bus factor is a valid thing to consider when picking tools.
That he even judges people based on the IDE they use makes me reject his views.
There’s can be legitimate arguments about what’s better, however, it’s the code they write that matters.
People learn tools, and then get used to them.
He also said, “It uses quite a bit of disk space as well.” However, if there are more features or better features, I’m fine with that. My primary development system has only multiple high speed SSDs that amount to 4TB of storage. I’m using a small fraction of that now.
And, in the end, he argues that because what he uses is harder than VSCode, it helps him get into a flow-state. I’ve never used VSCode, however, after reading that, I want to try it. I rarely have issues getting into a flow state, so easier sounds better.
I feel like the anti-VSCode crowd is a bit like the vegans of linux, aka Arch. I get that you can customize it to hell and back, that's awesome, but you know what's awesome about VSCode? It just f*ing works, out of the box. Wanna write up massive HTML in seconds? Emmet is included. Don't know which keybinds make sense for Emmet? There's an extension that takes care of that.
It's just so damn comfortable, I'm not a power user per se but when you're actually "working" on something I'd argue getting constantly annoyed and fixing things because your editor is a janky mess of DIY concoctions, that is a big minus for "flow-state". I love adding 50 HTML elements with pre-set patterned IDs and just tabbing through the content fields, or auto-wrapping multiple list elements at once *and not having to dedicate a second of thought to how I got that to work, because it just does* and my job here is to code and (almost certainly) not to make my own editor.
As a big privacy guy, I still use Windows almost daily for the same reasons. I get the telemetry and whatnot is a big negative aspect, but doing common things in Linux almost always brings a major level of jank which I usually just don't want to deal with, my father actually raised me on Linux and yet I still often can't stand it. Best case scenario in Linux (if Wine doesn't work) is that there's an open source program for x task, which is great and all, but I find they are always such barebones things. GIMP existing is awesome, I'll give you that, but its user interface is undeniably meh and that's what I dislike about so many of these great initiatives, that they're often just too janky to do outside of "linux is my hobby" (exception being Blender, god I love Blender 3.x so much more)
10:47 how can you not like the commit message box
It's literally a text field like any other and then you press a button,
and you don't have to switch to terminal and write 10 more letters
Didn't get that either. I just write a few words and send it off. Are there any special features we are missing?
@@RealFlicke The issue is probably the size of it
@@kimono8413 But it resizes if you press shift+enter. I thought it was made this way because commit messages are supposed to be very short anyway.
And if you need to write an essay, you can just click Commit without entering the message: it will start committing and open COMMIT_EDITMSG file for you.
Your commit messages should be verbose and explain the issue being fixed or implemented. The git history is documentation and needs to be useful for everyone, including you a year from now.
A small text field encourages useless commit messages.
One of the least things I worry about is what IDE should I use.
Then you are really missing some cool stuff that can reduce your work
If you are a developer, then you should.
Every programming language recommends q specific IDE while not closing the idea of using other also.
I have different IDE for specific reasons, but 70 percent of thr time, I use Vs code.
Not really. I do too
@@sergioengineer only pencil neck dorks really obsess and worry about something like an IDE
Did this man get frozen in time for 15 years and woke up 5 months ago? I feel like everything in this talk is common knowledge and any sane developer has probably already tried it at the very least. Maybe I'm a crusty old engineer at this point, but this is like 5 minutes of searching on google's worth of info.
Use vscode you are not a worse programmer. Discussing about IDEs is wasting time.
Then you never will see a better IDE/Editor or what is good in others and what you want to do in the one you are comfortable with.
@@AndersJackson I don't see Carmack discussing about IDEs
@@LuixHe’s used Visual Studio for decades.
Exactly who cares.
@@Luixyou missed the point of the talk
Having watched this completely through, not sure it is at all clear to me, why VSCode can't be used. What difference does it make to anyone that it is not truly open source, if it works free of charge? At the end of the day, we are using these editors to create new apps. I certainly don't want to be spending lots of my time configuring eMacs or a derivative just to get to my actual project.
"muh privacy" moment. there are these people, just ignore it and use whatever gives you the most pleasent experience
i'd say, the problem is that they can have a gotcha in the terms and conditions, and if you use it for some serious commercial project, you might get into a deep gotcha, ending up with huge payments to microsoft. Or they just say "sorry, not free anymore, pay 9999 to continue using it".
"That commit message box is just.. stupid."
Tells everything about the speaker. Seriously, i like dabbling with vim (because i don't know how to exit from it, send help!) but we're not in the 80's anymore. IDE's make coding easier and faster for most developers and VSCode is one of the best ones even tho i still think a different one is better for me.
But VSCode is not IDE. This is text editor on steroids with plugins.
Same thing about git. Yes, it's useful to know git commands and options so when things get messy, you can fix it, but there is no way in hell I'm gonna use commandline git and vi to merge stuff or do code review.
I have seen people name their variables a, b, t
I judge a programmer by the code they write not how they wrote it. And of course how fast they write is a factor but in my opinion its secondary
Agreed, monopolies are NEVER a good idea especially for OSS.
Microsoft already kinda owns OSS with Github + VSCode. 😂Weird times...
I agree
@@dyto2287 That's why we avoid github too. Everyone here avoids github, right?
@@dyto2287 + Copilot. It means thay own your OSS code.
@@dyto2287 ???
Github/VSCode != OSS
(not even remotely)
23:00 every editor worth speaking of has code completion so how is that a disadvantage?
If you press commit without having the commit message box filled, you will automatically get a new tab in which you can commit. No need to spin up the terminal.
What a dumb clickbait title. Is that the quality of decisions we should expect from this channel?
As an answer to the person asking for the usage of notebooks:
One can write a 2 line function to send a highlighted area to a 'main' terminal, bind that to a key, bind the functionality to set the main terminal, and then run anything as a notebook.
I've been doing this for the past two years and it has all the advantages of a notebook and none of the annoying disadvantages (e.g. Having to use a browser or vscode to view them, can't have them as vim buffers and in general clumsy interface)
One can also use this notebook like functionality for arbitrary languages and in debug mode to send full blocks of code to the terminal instead of clunkily copying stuff like many vscode users I have seen.
Thanks. But it doesn't work when you need to share the file and everyone else is using jupiter notebook. I use jupyter ascending and paired notebook for that.
Fair point! I didn't know about "jupyter ascending", thanks for pointing it out :) @@sbdaule
Hi, can you give an example or reference for this 2 line function and how to bind?
@@tomemcd Hi, I am only now seeing this, sorry. I will paste this below. Feel free to edit to your liking:
`custom_functions.lua`
```
function M.set_main_terminal()
vim.g.main_terminal_job_id = vim.b.terminal_job_id
print("Main terminal job id set to " .. vim.g.main_terminal_job_id)
end
function M.paste_to_terminal()
vim.api.nvim_chan_send(vim.g.main_terminal_job_id, vim.fn.getreg('+') .. '
')
end
```
`keybindings.lua`
```
vim.keymap.set('n', 'pt', '"+Y:lua require("custom_functions").paste_to_terminal()', {desc = 'Paste line in main terminal'})
vim.keymap.set('n', '', require('custom_functions').set_main_terminal, {desc = 'Set main terminal buffer'})
```
Of course, you can just put both of these in your `init.lua`.
Thank you@@StanislavStratiev
It's one of the least bloated 'IDEs', and is a borderline flexible text editor more than an IDE.
Tons of extensions, Vim compat settings, etc.
I'd argue it's closer to Vim and Emacs in some ways than typical special-purpose IDEs, but when it comes to ease-of-use versus customizability tradeoffs, sets itself apart by leaning more heavily towards the former.
I recently heard someone complain about customizability of VS Code and I couldn't relate at all. The thought that something is missing never occured to me in the 4-5 years I have been using it. And I have like only a handful of the default settings adjusted. So I guess I match the target audience perfectly.
sure it has a lot of extensions, but its extensibility is laughable if you try to compare it to (neo)vim/emacs.
@@TheDuckPox Yes, like I said, it's a tradeoff.
Even with Emacs, for example, you have popular presets like Spacemacs and Doom.
The reason is that people tend to like a reasonable set of shared defaults, that other people use and know how to teach them about quickly.
I actually found it easier to use vanilla Emacs with the *straight.el* pkg manager, since it's similar to my system manager (Nix for NixOS), and there's less 3rd party boilerplate that could cause bugs or unclear behaviour that causes you to waste more time debugging than just adding an extra bit of ELisp config code yourself.
At a certain point, before I got into coding as a job, I had probably written more ELisp config code than actual code lol
The problem with all of this is, when you tend to work a lot with other people, it's easier to use something less configurable, so you can debug each other's crap easier, and because it's easier to convince them to use it in the first place.
It's probably why, in terms of popularity, Python beat Ruby, Windows & macOS beat Unix derivatives like FreeBSD and Linux for many home users (at least at first), and the C family of languages in general beat the Lisp family.
I think the 'straitjacket' is a feature, not a bug in many tools.
Does it handicap people who could work better without all the sometimes arbitrary and sometimes needless rules and limitations?
Of course.
But it also helps everyone else know what to expect in a way.
Like I said, tradeoffs.
Also, I had developed a ricing addiction with Emacs, and had to give it up entirely for my sanity lol
IMO with extensions one can make it fully featured IDE.
I get exactly what he's saying about vim, and any terminal editor in general, that it is much easier to feel that you're doing work and stay focused.
Maybe a basic question - how does one configure vim to work like the presenter does at 27:43 ?
plugins
With substantial quantity of headache
VSCode is awesome. I tried Vim and I actually enjoyed it also but small things got me angry like configuring a lot of language servers for example to have a decent experience when writing code in a particular language made me tiresome, I guess I don't have the patience. One thing I took from Vim though is the keybindings, I can't live without them, I am more faster & efficient when I'm not writing and moving my mouse to do mundane things like changing / renaming a function
Lunarvim has a nice out of the box experience closer to what you expect with any modern IDE.
right but after importing the bindings into another IDE what is the advantage of vim exactly. Its so weird and limiting to use a terminal to edit files. In any IDE you can look up parent classes, read method definitions, easily run and debug your code or get AI suggestions now, plus the seemless integration to git...anyone who uses vim to code honestly that's pretty weird
What's a more seamless integration to git than working in the terminal? XD
I don't know why I've just been using a terminal editor forever and I like using a web browser for looking at docs. I have the co-pilot plugin as well, what more do I need?
Maybe I'll give vscode a try with the vim plugin. I don't like touching the mouse when I'm coding.
@@radscorpion8 You don't know what you are talking about. You can see "parent classes" with treesitter, "method definition" can be done with treesitter or LSP, debugging can be done with e.g. nvim-dap or gdb. Git can be done with e.g. lazygit which btw is much faster than the VS code git integration. If you don't know these things, that's ok, but please stop spreading misinformation about vim or neovim.
If you use something like neovim which is kinda successor of vim imo then you can use plugins to help you with that. Something like lspconfig and mason helps you config all the lsp with just few lines of code. Of course there is some learning curve but for me it’s worth it. I feel like I know what’s going on behind the rather than seeing vscode magically doing everything for me. For most of the user it might not matter but for me it does.
Micro is great, I can't think how my life would be like without it. I am using also neovim, but I am still a little rough with it, can't get clipboard, switching buffers, and some motions right. So to run quickly my python code I often use Kate with pylsp plugin and vim motions, it uses Konsole as terminal, and I can launch my scripts with an easy keybinding.
If you add "set clipboard=unnamedplus" to the vimrc it will automatically use the system clipboard for all operations that copy, cut, delete and paste text. Aside from that custom keybindings can be helpful for making some features more convenient to use.
micro is my
The IDE that best addresses the privacy issues but keeps functionality is VSCodium
My IDE is the chatgpt window
"I don't remember how to invoke it now" kinda says it all. Not here to start a war but I generally think that if you need a manual to use something it's not user friendly and intuitive enough.
My first what is he saying in this video was the "350MB is a lot".
The second "look you can see it all here too" which I did not lol.
The mayor one was indeed "I use it since if it's too easy my brain doesn't get that I'm supposed to work" = I do it because I'm used to it and have a hard time switching, not since it's better.
And then the first mentioned icing on the cake lol.
I was seriously interested in alternatives and started using vs code about a year ago. I guess I should look at using more of vs codes features instead... but I'll definitely keep doing git from vs codes command line. It is great to see which files have been changed though!
no mention of sublime text?
VSCode is fine. Don't use Python.
this is the realest comment under this video
Agreed 😂
why not
Dont cry
VSCode is fine and so is Python.
so use an IDE with less features for absolutely no reason other than this guy not liking VSCode? what?
Why would I not use Neovim, which is much faster than VS Code and has all the features I need?
Pycharm more non-free, than vscode. What he talking about? Pycharm cant open big file (3 or more mb), its using 6+ RAM in idle. Its crazy!!
At least it doesn't pretend to be OSS
@@benuscore8780kek no one care take your chet IDE
>complains that vscode eats a lot of memory and disk space
>recommends pycharm
🤭
Still don't know the point of this talk.
Don't forget that "vim -d file1 file2" is great for pulling up two files for a side-by-side comparison
You can do that with VS Code too using code --diff
I'll do what i want.
I want to write my code without a phd in editors like vim, emacs, word, etc.
WORD?
@@Cobalt985 ua-cam.com/video/X34ZmkeZDos/v-deo.html
Hi,
I used to be a vim guy.
But now I am using vscode because I need the lsp "pylance" for Python.
You can't use "pylance" everywhere other than vscode.
Does anyone have good suggestion for pylance alternative which should work as good as paylance?
What's wrong with the lsp servers available on vim as plugins?
@@deleuzeetguattari
Since you can use "pylance" with vim, the only choice would be "pyright".
But the "pyright" often shows some red highlights to alert me some issues which are false alarm.
I think my question would be: is there any vim lsp server for Python that can work perfectly like "pylance" does?
Pyright
what does pylance do better than whatever you used to use?
@@ashikurrahman2247 Pyright just spams you with false alarms.
This was pretty unconvincing. The fact that VSCode uses a couple of hundred MB of disk space and RAM by default is not going to matter to 80%+ of developers. The fact that certain parts of VSCode are closed source are matters of preference and/or ideology. I also don't think they matter to most developers.
I don't use VSCode because I find it's too slow and unresponsive for my liking, and I find the scrolling UX to be uncomfortable and unnatural compared to native apps. I also find its multi-cursor support to be far inferior to other editors. There are some reasons to use VSCode, for example it's the only supported editor for certain new languages and features like GitHub Copilot, but it's just not for me. At the end of the day these are personal preference issues.
I found The Good to be spot on and The Bad to be trivial nitpicking. Resources are cheap and just a few hours of time saved more than covers the cost of adding resources. VsCode uses a teeny fraction of my 2Tb disk space and 32Gb memory. Convenience is time and time is money. As for monoculture being bad and criticism merely because it is ubiquitous, I wonder if he advises not to use Git for the same reasons?
When you do extensive debugging and want to use things like language server with syntax highlight and code actions and more... Configure vim or emacs can be REALY hard. I'm novice here in selfmade ide world and spend more than a 3 to 4 weeks of trying configure emacs.... It's just.... unbelievably hard. When you don't like default config and want to configure it - it one story. But when you have nothing to configure and download package manager for download all of what I mentioned with ZERO configurations and have to build up it from nothing and remember all new hotkeys AND make new ones when you don't even know what default one is... It's just too much. I wrote NOTHING with my emacs configuration because all new hotkeys and demand to make new ones is too disturbing.
If you just write some files - vscode and fancy ide is useless. But if you NEED an full ide workspace making a new one should be your new hobby for next 5 or so years and you will use real ides before you can use new selfmade emacs one. VS code is bad, microsoft is bad, all things in this world is actually bad in our it world but making own OS with own ide with own browser is not an option for most of us.
I suppose he'd argue that you'd use the debugger directly from the command-line (gdb, lldb, etc)
He shouldn't have complained about 300 MB... It sounds funny even saying it.
Yes, it's ridiculous that a fricken *text editor* (not a real IDE) uses so much space. But that's because it comes with a whole-ass browser. VSCode is basically a website.
I'm sorry but there were more arguments for vscode (except the horrible framework they are using) then against it. The framework is still good enough, but this will change as soon as they are implementing too much stuff in the core. As for now it's a good choice for starters and pros as well. If you got something more clever for free, feel free to share....but u won't, because u know, money and stuff....
A great editor in my opinion is Helix. It is a modal editor similar to Vim, but it comes with much more batteries included. So if you have set up the language server for your preferred language you don't have do set up anything in Helix. And the "select first" order is much better than the "command first" in Vim.
And I never heard of Lapce. Sounds interesting.
@tauraamui below talked about lilly a helix based editor
Brave talk. I can enumerate a few other topics he might have chosen: "Tabs vs Spaces", "Curly Braces: Same Line vs New Line?", and, of course, "GNU vs Linux."
No dude, thanks really but I am so going to continue to use vscode and codium (the opensource alternative) and no one is going to stop me. Really, with the git client builtin and countless extensions and debuggers for java, spring, python, javascript, c, c++ etc it is so pleasant to use. It even has reverse engineering... you can literally decompile an apk by installing an extension in vscode and do a single click and it will literally use the dec tools to decompile bytecode or compile into bytecode for you.
Tell me that you didn't watch the talk without telling me that you didn't watch the talk.
@@JivanPal Yeah, pretty much I didn't want to waste my time on someone trying to sell me another tool.
@@__BLOOD__ Yes you opted to waste it on verbosely telling said guy "no thanks"?
Problem with the "sensor" and lack of Intellisense suggestions was likely that sensor wasn't typed close enough.
Use what ever edit you like and are comfortable with.
Jupiter notebook is not for programmers! It is for data engineers, who are coders, not programmers. For real programmers it is a distraction, you may use it for experiments, but the main focus is the real program that needs lots of documentation, a test apparatus and workflows on various levels, and Jupiter notebook doesn't really fit there. It's purpose is to document how you produced a certain data analysis/synthesis, and that is solely a data engineering task.
I would say that notebooks are by data scientist or analyst. imho data engineers should be system and database admins with a good knowledge of the underlying system, so they can support scientist and analyst in implementing the matured analysis into a data pipeline. Many times I see data engineers end up doing analysis, and usually they are very good optimizing a SQL query, but don't know s***t about basic statistics or actual ML and the results show. I also see data scientist that are made to set up a data infrastructure, and the results are laughable. It is pedantic but it is necessary to make the distinction. The same way a programmer is not software engineer or architect.
You got the video title wrong. You didn't mention any real downsides
"it's not hard enough so I no likey"
i actually really like micro! used it for a really long time, hope it can achieve a neovim level of polish on the extensibility side soon
Wait, you think the learning curve for vi and emacs is good because you personally find it hard to focus when using an electron app? That is a personal problem; most everyone else, including my ADHD brain, doesn't need to avoid electron because it's distracting. Heck, the learning curve is a thing that's only a problem at the start, so the learning curve isn't even the thing helping you not get distracted! Isn't there a way to customize the GUI to make VScode not look like Reddit?
I think VSCode doesn't have that level of customization, but it does have a Zen mode 🙂
Reading the comments tells me everything I need to know about this video I’m skipping. Anywho I should never listen to someone whose opinion is to never use vscode. I have used it for 4 years for C, Python, Java, assembly, html, php, xml, JSON, C++, Dart, Swift, JS, MySQL, Latex, LISP, and even verilog. Never failed me once. It does everything, and does it well.
The presenter clarifies two minutes into the show that he actually thinks VS Code is great :) don’t judge a book by the cover
22:35 I only use vscodium only to rename symbol in javascript, kate for editing text, meld for nice diffs, git and gittyup for git stuff
i cant watch this video but i've read description. saying vs code is good for strong computers on a channel about python seems a bit ironic to me
16:56 - This is the crux. If you need an expensive, modern computer to load _TEXT_ files, something is wrong. And yes, there _is_ something wrong with modern software (since after the '90s, actually).
Which of them have bazel and cmake plugins?
I code mainly in JS and use FAR Manager.
"I consider [the learning curve] to be a feature rather than a bug" -- yeah, of course you do.
kind of guy to introduce himself on a date with "I use gentoo"
With all due respect, I think most of us have brains that CAN be in 'real-work mode' with a prettier, more information dense IDE *AND* while we have philosophical beliefs as regards OSS, these DO NOT extend to a moral obligation to avoid VSCode. So to push back: sure you should think about your values, but not every value is extreme: if 95% VSCode users choose our own productivity over these non-extreme values (when there is no full OSS solution), then this is morally permissible and only a religious zealot will try and argue the point (not that you are doing so).
Ah but why not just use an abacus?
"Memory is not as expensive as it once was". Tell that to Apple.
I've been working on an editor called Lilly, it's basically Helix but follows the VIM philosophy and modal system rather than something esotric like Kakune's.
question: Which is the dominant IDE?
Exactly.. surely 73.7% of 25+ million software devs can't be wrong can we?
Recommending a closed source commercial software over a free one because the free one is only partially open source is a crazy conclusion.
When I use VSC, there is some Vim guy who tries to convince me his editor setup is better than my editor setup.
When I use VSC, there is some Jetbrains guy who tries to convice me his editor lack of setup (as I've never seen Jetbrains user who at least switched a color scheme) is better than my editor setup.
Just let me use whatever I'm productive in >:(
When someone higher than I am makes a video suggesting ridiculous shit.
No multiple windows and doesn't integrate with explorer - this is wy I don't use it. It's a shame because otherwise it's great.
If you promote a competing product of vscode, don't you think there is a conflict of interest?
for c++ qtcreator has much more superior support for cmake than vscode with extensions. VScode is nice for preparing git commits on mac os.
What? First of all create docker support or other way to navigate within separate environment to support toolchain code navigation. After that we will continue to talk.
On other hand vscode is damn way stupid by default. Haven't seen ideal solution yet.
The ssh/tmux/vim demo at the end of how to replicate VS Code functionality in the terminal is interesting - it's at this timestamp: ua-cam.com/video/GUovhZYNO-M/v-deo.html
More like how linux programmers work(ed) even before VS Code, with its baked in components.
The order is reversed, VS Code replicates a terminal/tmux/ssh/editor workflow...
If I am not wrong, tmux can't just restore sessions after machine restart. You need to have another VM which is kept running all the time (thats why he is using ssh). If you are doing development in local machine then VS code restores all opened tabs between restarts. I think the same thing is not available by default in vim, I think you have to get some extension/script to acheive this as it is really bare bones by default.
This didn't really age well. 300MB or disk per user. I know it's still M$, but have you seen active directory? Apple / iTunes have similar space wasting features. But multi-TB SSDs are pretty common.
If you're so worried about VS Code not being as open source as your mom, you should know about VS Codium. If you don't, look it up.
Using a 'proper' IDE does *seem* a lot better, at least to me.. but then I started thinking.. am I actually more productive using vscode than I used to be with emacs (or vim)? Probably not in fairness.
The snark about JavaScript needs to die. Like C, it was written by engineers who wanted to use it to get stuff done. If they'd kept working on it until everybody was happy with it we'd still be waiting.
JavaScript was written by a single guy in like a week, it used to be so broken it took decades to bring it to an usable state, unlike C
I mostly write JS , C , and Bash . If a C++ programmer says they use a subset of C++ so its basically "C with namespaces and classes" people will node their head and say "reasonable" .
If you write a subset of JS that is just C-Style code , people think you are insane .
I would recommend Rider as the top alternative to VSC.
It is a memory hog == I'd just go and buy more RAM..? why ? developer time is waay, waay more expensive than a ram stick..come on.. economics also apply here.
You can write a replacement for pylance right ? That will solve the opensource problem.
Sorry, those arguments are unconvicing to me. it more looks like Python stuff is half baked than a problem with vscode.
Moreover, most workstations will have at the very least 16GB (that's what I have, and VSC works just fine). What the f* could you possibly be doing to use up 16GB with VSCode? The most you can really argue there is that you're doing something else at the same time, but what could that possibly be? Do you have to render a feature-length film from raw 4K and it's due in half an hour, along with your coding assignment? Are you running 3 simultaneous instances of a recent AAA game on there for your friends while you work? I just don't get it, from a guy about the "flow-state" I wouldn't exactly expect a complaint about not being able to do many things at the same time as coding
Yeah I dunno, "it's difficult and miserable and that's why I love it" isn't the sales pitch I need
Drag and drop nocoders be like:
vim over ssh is exactly what I've been using for nearly 15 years, its lightweight, effective, and does not require a lot of set up. I pretty much remember what my .vimrc looks like (just about 4 lines), and that's enough to get me set up to do serious work. I think like others have mentioned, whenever I am in VSCode, I get totally distracted exploring the random extensions, and its just counterproductive.
Yeah but... if you've been using it for 15 years of course you're gonna like it more than vscode...? Not to be mean but isn't "getting distracted on features" basically normal for software you haven't gotten 100% used to? My .bashrc also doesn't look that intimidating and it's only like 30 lines long but much of that took ages to actually come up with / get used to.
Oh come on dude, every anti VSCode person gives the lamest reasons... xD When you already know your extensions/features, VSCode is ultra productive.
VSCode has the best Vim emulation of any editor or IDE I've used aside from Emacs.
nothing wrong with the commit message input box lol.
type something and hit ctrl+enter, done.
Thanks for this video. I know there were a myriad of you could have reviewed but curious why you left out sublime?
proprietary
when i was learning sys admin'ing, i remember asking my mentor "should i just always use vi in case a new computer doesn't have the software i'm used to installed? and she said "should you just drink dirty water all the time in case you find yourself cut off from civilization?"
With Linux, I often use VI. Say I'm using a headless server. I'd suggest learning VI is a valuable skill that will always help you in a pinch. Normally I use VSCode to edit files on my Pi4 through Samba but, fairly often, I'm logged into the console on the PI4 and need to edit and compile something. That's when the VI skills kick in.
In vscode, I just simply enable Vim bindings. Works just fine as if editing a file from a terminal emulator
All due respect for your mentor, but I am cut off from civilization far less often than I find myself at a computer without my preferred software
(And if you really worry about not having clean water, bring along some iodine tablets or whatever it is as part of your everyday carry. You can already drink dirty water if you just suck it up, the trick is not dying from it)
and now Zed is also seems good alternative (if they finish to bring it to all platforms)
at work i only do work with vscode. At home i do projects in vs code and sometimes spacemacs. The problem with emacs is the time to get things running. oftentimes packages are out of date, not running anymore and you sink 20 hours to setup your project into it. Performance of VSCode has never been an issue, only the telemetry thing is annoying. Your talk reminds me of using emacs more frequently again. And I am totally in with your focus argument. In vscode you always have to use keyboard and then mouse etc. so i am oftentimes never getting into a flow. With emacs i can perform all actions extremely convienently solely with key strokes.
Why do people argue about git functionality instead proprietary engines?
Super curious to know but can anybody tell me in 3 minutes?
Do not waste your time, it's clickbait to sell you VSCode
the fact that he seems to not know how to use it well is alarming when hearing an argument against it xD
Who is going to learn to use something well when they don't like it ?
@@theelmonk who is going to have a trustworthy opinion on the merits of a program they didn't even bother trying to learn? VSCode is a breeze for so many things, it has a marketplace packed with nifty extensions and so much more. Why would I care about its efficiency? Let it be inefficient, it cannot possibly lag on my PC and it's far from new, because it's a damn text editor, I'll accept that tradeoff for it, you know, just working without fuss and the usual open source jank (FTR I love open source, but most "big" FOSS programs are too janky to use as replacements for the industry standards, a notable exception being recent blender builds)
If lost was a person.
So "the bad" is ram and storage usage? Common... give me a break!
I hate it when simple apps like time trackers or todo lists use Electron. But using it in an IDE is pretty powerful. Now you have a way to easily create beautiful, fast and scalable UIs and display anything you want (like extension readmes including multimedia) directly inside the IDE. And it's way easier to create extensions for it. I love that. I'm sure it's also a great speedup for the development process of the IDE itself. Terminal interfaces are just objectively worse in terms of usability (stuff like self-descriptiveness, discoverability, learnability). As a junior programmer, seeing the terminal IDE in the presentation, I would never want to use that. It's hard to read and looks like it doesn't recognize any mouse input. Why would you give up all the progress made in the field of human computer interaction unless you are already used to these interfaces?
well, coming from a senior engineer, you have a lot of learning in front of you. The servers the cloud runs on never have ui. The most common editor will be something like vim running in a console. So when your app infrastructure is crashing and your boss is calling you to fix it asap, you better are comfortable with system console and only working on text based UIs.
@@jekker1000 It's definitely the case that you are sometimes forced to use a terminal based editor on a server. But if you control the server, chances are you can simply connect to it with VS Code. Thats what I always do. If I can't I will first try to connect with the SSH-FS extension or use Filezilla with VS Code as Editor. Personally I don't recall the last time I was forced to use a terminal editor.
@@RealFlicke well if you have like 400 servers, you also have to manage the credentials (and your team needs access in case of vacation, illness etc.). I do not know if vscode has the abilities for that but at work we are using a tool for that and it opens the ssh automatically. But then you are forced on console based editors again. I mean, i get that you can get around using console based editors by using vscode plugins but learning sth. elementary is never in vain.
@@jekker1000 You can store SSH keys in a 1Password team vault and use it's native client as a SSH agent in VS Code. But you still need to somehow share the rest of the server config with the team. I guess there is a way to do that, but I have not needed it yet.
@@RealFlicke ahh ok, good to know. But i think the solution @ my work seems more streamlined and also integrates rdp for the few windows machines there are
I write Rust and PHP and I do it using Emacs. I will never touch stuff that has Microsoft as the principal sponsor. There's apparently no limit to the amount of flak you can get with that combo.
VS code is amazing, it's open source and multiplatform, web based version available, it has the best extensions for anything.
I can't understand why people concerns about which editor to use when they should concern on writing code in best way possible
I knew, there must be Tmux in the end😂
Don't use that. Don't use this. I use what I am productive with.