• stupidcasey@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    2 days ago

    Tbf, how many plants are carnivorous monsters that dissolve your flesh

    And how many animals can melt Rocks into Magic snap Rocks camouflage them and plan months in advanced

    And how many developers can

    export EDITOR=nano export VISUAL=nano

  • masterspace@lemmy.ca
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    25
    ·
    edit-2
    2 days ago

    It’s wild to me that people that people use VIM in professional software development settings (especially front end).

    Like, I get it if you’re a sysadmin who’s spending all day in command lines and ssh terminals, but when you’re working on high level, user facing software, it’s just absurd to have the mindset that a command line interface will be better than a command line interface + a graphical interface.

    GUI || command line, objectively provides you with more UX tools and ways of presenting data and interactions to the user, than just command line. Everything you can do in VIM, you can do in VSCode running VIM in a terminal, but not the other way around.

    Maybe it’s because I got my start programming 3d modelling software, but there are fundamentally things that command lines are bad at representing.

        • wuphysics87@lemmy.ml
          link
          fedilink
          arrow-up
          9
          arrow-down
          3
          ·
          2 days ago

          This is the editor wars equivalent of taking your shirt off and yelling “come at me bro!”

          • masterspace@lemmy.ca
            link
            fedilink
            English
            arrow-up
            9
            arrow-down
            5
            ·
            edit-2
            2 days ago

            It’s literally just a basic part of debating something. You say X is bad, I say ok, then what’s your alternative?

            I’m this case apparently it’s a clown emoji. So clearly they have a very valid point and definitely weren’t just making an empty pointless comment cause it sounds edgy.

        • masterspace@lemmy.ca
          link
          fedilink
          English
          arrow-up
          6
          arrow-down
          10
          ·
          edit-2
          2 days ago

          VS Code is not an IDE is the dumbest most pedantic argument.

          It is a text editor explicitly designed to have plugins that turn it into whatever IDE you want it to be.

          i.e. it’s an IDE that you get to specify yourself rather than being locked into the exact toolchain that the IDE developers think is best.

    • Shanmugha@lemmy.world
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      2 days ago

      You have overdone the pedantic part, so I will do the same: GUI has objectively way more visual noise, so exactly in professional software development setting I prefer using NeoVim with plugins, configured by me for my convenience, because I have no intention of spending any extra effort, and more importantly, thought, on whatever the IDE decided I must need. I want to think about the task at hand, not memorize the finger-twisting magical shortcuts or mouse-clicking several menu layers to do one damn simple thing

      • masterspace@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        2
        ·
        edit-2
        2 days ago

        GUI has objectively way more visual noise

        Nope. You can open up VSCode and just have it open to a terminal window if you want.

        A GUI + Terminal gives you more options than just a terminal. It’s not complicated and it’s not arguable, one is a superset of the other.

        • nonfuinoncuro@lemm.ee
          link
          fedilink
          arrow-up
          2
          ·
          2 days ago

          I am not a programmer but your line of argument begged the question, “Are more options better, more efficient/effective, etc. or otherwise desirable?” Sure, if the only criterion you are trying to fulfill is “have as many options and different ways to complete the task at hand as possible,” you are correct that you can emulate a CLI within a GUI so you can accomplish a task both by clicking or typing instead of just typing.

          However the parent you are responding to stated that having these additional choices (what he terms as “noise”) is clearly not effective for him so he disagrees with your original premise. Apparently for them “less is more” which is certainly understandable.

          • masterspace@lemmy.ca
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            2 days ago

            Sure, if the only criterion you are trying to fulfill is “have as many options and different ways to complete the task at hand as possible,”

            Except that’s not what I’m saying.

            I’m saying it’s important to have the right tool available for the job.

            If you limit yourself to VIM and command line interfaces, it will mot matter if a GUI is the right tool, it’s not in your tool chain, you can’t use it.

            i.e. I don’t use VSCode because it provides me with multiple ways of viewing git’s branching history, I use it because it provides me with the better way of doing so. And when the better way of doing something involves using the command line, it lets me do that too.

            People insisting on using the command line for everything is like a carpenter that only buys a circular saw and refuse to buy any other saws. Like yeah, you can do almost any cut with a circular saw, and it’s not a bad place to start, but theres a reason professional carpenters who need to do repeated cuts quickly, accurately, and in a way that is teachable to others, don’t limit themselves to a single type of tool for every scenario.

            • pinball_wizard@lemmy.zip
              link
              fedilink
              arrow-up
              3
              ·
              1 day ago

              People insisting on using the command line for everything is like a carpenter that only buys a circular saw and refuse to buy any other saws. Like yeah, you can do almost any cut with a circular saw, and it’s not a bad place to start, but theres a reason carpenters don’t limit themselves to a single type of tool.

              You’ve just given the usual argument for learning Vim.

              Having mastered both, my lack of patience for GUI tools is just that: impatience. I can use any tool, but I reach first for the fastest.

              • masterspace@lemmy.ca
                link
                fedilink
                English
                arrow-up
                1
                arrow-down
                1
                ·
                edit-2
                1 day ago

                Ok, cool beans bro, try and write 3d modelling software with just a command line interface and you’ll quickly see how a typewriter’s format for displaying text isn’t the fastest for every programming task.

        • Shanmugha@lemmy.world
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          1 day ago
          • that is not VSCode default, so nah. once again: I have no time for battling against software

          • and if I do not want the GUI part, how come it surprises you that I do not use that superset?

          • masterspace@lemmy.ca
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 day ago

            and if I do not want the GUI part, how come it surprises you that I do not use that superset?

            Go ahead and represent an arbitrary 3d shape using the command line, suddenly you may realize that a typewriter’s interface isn’t the fastest for accomplishing every programming task.

            Regardless, you can be happy with a limited subset of functionality and trying to cram every interaction into text, that’s not an argument that that way is better or that a new dev should go that route, just that you can get by using that method.

            • Shanmugha@lemmy.world
              link
              fedilink
              arrow-up
              1
              arrow-down
              1
              ·
              edit-2
              1 day ago

              Lol I am not making 3d shapes in the first place. Anyway, here ya go: 1,2,3

              4,5,6

              7,8,9

              10,11,12

              Do you need an explanation for that?

              • masterspace@lemmy.ca
                link
                fedilink
                English
                arrow-up
                1
                ·
                edit-2
                1 day ago

                K, now give me the longest edge and it’s displacement relative to the x axis. Then rotate the shape until that edge is roughly 33 degrees off the z axis.

                Oh wow, look, suddenly it may be helpful to have a way other than text to draw and visualize things.

                • Shanmugha@lemmy.world
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  1 day ago

                  It may be, but really it doesn’t even matter to me. I will choose the tool that can do that using command line anyway

            • Shanmugha@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              1 day ago

              It’s wild to me that people that people use VIM in professional software development settings

              Ya, sure. wild that professional software development does not begin and end with 3d shapes. Great worldvew, thanks

              • masterspace@lemmy.ca
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 day ago

                My worldview is that it’s wild to choose a dev tool chain incapable of drawing basic 2d shapes, when you have ones available that can do anything.

                • Shanmugha@lemmy.world
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  1 day ago

                  So I re-state the same n-th time over: I, and many other devs, have no need to draw anything. So I, and many other devs, will choose whatever works for us, and there is exactly nothing wild in doing so

    • sucoiri@lemmy.world
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      2 days ago

      Like, a GUI plus command line, objectively provides you with more UX tools and ways of presenting data and interactions to the user

      My long list of vim plugins and adhoc macros would like a word. I don’t doubt VSCode can do something similar, but I love that I can script vim to do basically whatever. Also, it feels much faster to not need to touch a mouse at all.

      • masterspace@lemmy.ca
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        4
        ·
        edit-2
        2 days ago

        If you open a repo / folder in VSCode, you immediately have a terminal window pointing to that folder that you can execute any of your VIM or other command line programs in. You also immediately have a graphical file browser that’s always available in a pane to the side if you want, a visualizer of your current git branch and history, tooltips and the ability to hover over things for more info, panes that can preview images, pdfs, 3d files, assets etc, tooling and plugins for things like your dev servers / kubernetes / docker so that you can immediately see what services are running in what state, rich debugging, etc.

        Fundamentally, I just don’t understand ideologically insisting on using the command line for everything. There are times when keeping it simple and text based makes sense, and it’s almost always necessary as a fallback, but if you have the option, you can represent things faster and more cleanly with modern graphical interfaces.

        Like just compare the command line version of your git history:

        With the Git Graph extension version in VS Code:

        The Git Graph extension is built on top of those git CLI commands, but it’s an actual GUI that let’s you represent your git history in a much more readable and scannable format, with quick and immediate access to related commands like viewing the files that were changed in a commit, or jumping to specific commits and branches.

        Ignoring the related workflow improvements, even just from a pure graphical standpoint, if a developer honestly cannot comprehend why the human brain more easily processes stuff like a single connected git branch like the above, compared to a bunch of disconnected pipes | and slashes \ on separate lines, then I feel like they need more design training, or perhaps they’ve just evolved into such pure text based beings that they can no longer comprehend how normal people’s brains work, but either way, it’s not going to tend them towards good frontend development. I’ve worked at MAANG companies and I’ve seen the internal research on how much of a difference a slight feeling of being overwhelmed can make towards someone’s enjoyment and usage of software, I don’t see why that’s so controversial or unexpected in some circles.

        Like at work, if a developer wants to use VIM and command line tooling to do their job and has a setup that lets them work as fast as someone using a graphical IDE, I have zero issue with it, but the default Dev Environment that we’re going to setup and document is going to use something like VS Code that can do more OOTB without a huge amount of learning CLI commands and workflows.

        • GoodEye8@lemm.ee
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          1
          ·
          2 days ago

          While I agree with your general idea that there shouldn’t be any dogmatic insistence that terminal environments are superior and everyone should use them. But the points you’re bringing up tell me that you don’t actually know how to use a terminal environment for development which makes your point equally as dogmatic as the terminal purists.

          • masterspace@lemmy.ca
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            2 days ago

            But the points you’re bringing up tell me that you don’t actually know how to use a terminal environment for development

            In what way? That you can have multiple terminal panes open to accomplish a small portion of the above?

            • GoodEye8@lemm.ee
              link
              fedilink
              English
              arrow-up
              4
              ·
              2 days ago

              Getting an automatic terminal window when you start up vs code is no different having two panes in tmux, one for VIM and once for terminal. You can get a visual project tree representation in VIM by using neotree plugin. Your git doesn’t need to look like that, you can use lazygit. The only things you can’t do within a terminal are reading the pdf or checking assets etc (but I personally wouldn’t look at those things within vs code either), everything else you can do just as easily within the terminal without it looking like the image you gave.

              I gave you the benefit of doubt by stating you don’t know how to set up a terminal environment. But if you’re going to be adamant about knowing what you’re talking about then you should also know you’re deliberately misrepresenting the alternative to make your arguments seem more valid.

              • masterspace@lemmy.ca
                link
                fedilink
                English
                arrow-up
                1
                arrow-down
                1
                ·
                edit-2
                2 days ago

                Getting an automatic terminal window when you start up vs code is no different having two panes in tmux, one for VIM and once for terminal.

                Yes it is, and I honestly cannot fathom how you cannot seem to comprehend the difference between text, and an actual pleasant to use and look at graphical interface.

                Lazygit looks exactly as trash as the OOTB command line git. How do you not understand that the human brain processes a smooth connected line more easily than a pseudo line broken up by the line space height, made out of pipes and slashes? This is like product design and UX 101.

                Again, VSCode does everything VIM does. Not vice versa, one is a superset of the other.

            • pinball_wizard@lemmy.zip
              link
              fedilink
              arrow-up
              2
              ·
              1 day ago

              That you can have multiple terminal panes open to accomplish a small portion of the above?

              Yes. Obviously. Two conclusions available to you are, either CLI developers are idiots, or they have tools you are unaware of.

              The answer to “how can anyone work this way?” is out there, if you’re really interested.

              • masterspace@lemmy.ca
                link
                fedilink
                English
                arrow-up
                1
                ·
                edit-2
                1 day ago

                No, the conclusion I’ve been saying is that CLI developers are smart people who have spent a long time memorizing commands to get fast at things that can be done quickly and intuitively through basic 2d graphical interfaces.

                They’re now either in a situation where the gains from learning the new process aren’t going to outweigh the costs (though still doesn’t mean anyone else should follow their path), or they would, but they’re just stuck in their ways because of sunk cost fallacy.

    • AlecSadler@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      2 days ago

      I agree. I hate using a mouse and generally avoid it, and still the productivity gains I get from using something like VS Code versus Vim with plugins to the max are impossible to ignore.

      When I’m juggling like 3 development contracts at once, it’s dumb of me to not use every little gain in productivity possible. I don’t have time to spend a day recreating a plugin to my liking in Vim when something already exists that gets me 99% of the way there. I don’t care about the extra RAM use because I have plenty of that.

      I think some people just like to die on this hill out of principle, and that’s whatever, more power to them.

    • pinball_wizard@lemmy.zip
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      Everything you can do in VIM, you can do in VSCode running VIM in a terminal, but not the other way around.

      You would sure think so, right?

      But the VSCode plugin ecosystem still lacks some features available in the Vim ecosystem, and (fl just for example) LazyVim has most of the features available in VSCode.

      At the end of the day, the biggest difference is speed. Even very brief unexpected delays can break my concentration. While VSCode is no slacker, it still has some delays, probably mainly because it’s still JavaScript under the hood.

      Once there’s a GoLang, Rust or C port of VSCode, I may well switch permanently.

      • masterspace@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 day ago

        But the VSCode plugin ecosystem still lacks some features available in the Vim ecosystem, and (fl just for example)

        Isn’t that basically the same as Command Shift P and / or the search feature?

        At the end of the day, the biggest difference is speed. Even very brief unexpected delays can break my concentration. While VSCode is no slacker, it still has some delays, probably mainly because it’s still JavaScript under the hood.

        Once there’s a GoLang, Rust or C port of VSCode, I may well switch permanently.

        I can 100% understand how big of a deal speed delays can be, but at the same time, not to probe too hard, but what are you experiencing delays in? In all honesty waiting for ohmyzsh to start, or waiting for a git pull to run, takes far longer than any task I can think of in VSCode. Files open faster than notepad, the file browser is fast, the shortcuts and commands are fast, I honestly haven’t experienced any slow downs with it anywhere, and I’ve used it with monorepos that are TB in size.

  • ExLisper@lemmy.curiana.net
    link
    fedilink
    arrow-up
    63
    arrow-down
    1
    ·
    2 days ago

    The best thing about Vim is that despite having all the features of a modern IDE it starts in 0.1s and you can start editing right away while the code data is loading asynchronously.

    The worst thing about Vim is that… just kidding, there’s nothing bad about it.

    • yeehaw@lemmy.ca
      link
      fedilink
      arrow-up
      23
      ·
      1 day ago

      Vscode I’m always like all right let’s code… Ah shit, the “what’s new” window has popped up again in the middle of my typing…

      • lightnsfw@reddthat.com
        link
        fedilink
        arrow-up
        3
        ·
        1 day ago

        Also had to update virtually every time I touched it and half the time those updates would break it so I had to reinstall. I didn’t use it on a daily basis or anything and it’s been a few years so maybe they fixed that but it’s why I don’t currently use it (along with the fact that it’s a microsoft product and I’m trying to stay away from all their shit as much as possible).

    • andros_rex@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      1 day ago

      People meme about “q!” but it is super helpful to have that extra step, because sometimes your fingers are moving faster than your brain is. That quick switch back-n-forth vim - gcc - ./a.out loop and my probably ADHD mean that vim saying, “hey, remember you haven’t saved this yet” is a godsend.

      You are right about the best part about vim - you can work as fast you type.

    • silverlose@lemm.ee
      link
      fedilink
      English
      arrow-up
      7
      ·
      1 day ago

      It’s a trade off for sure. I think the area editors like Vim totally win in is when you need to ssh into a server and edit something. I think it will always exist because of this use case

      • zarkanian@sh.itjust.works
        link
        fedilink
        arrow-up
        3
        ·
        1 day ago

        I can ssh in with Krusader and edit from Krusader’s GUI editor. I would probably still do it from the terminal because it’s faster, but it’s good to have more than one way to do things.

  • electric_nan@lemmy.ml
    link
    fedilink
    arrow-up
    55
    arrow-down
    1
    ·
    2 days ago

    I remapped the power button of my computer to whatever that series of keypresses is that exits vim.

    • ArbitraryValue@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      43
      ·
      edit-2
      2 days ago

      that series of keypresses is that exits vim

      One of the great mysteries of the universe. However, I can confirm that my standard power button also exits vim.

    • pinball_wizard@lemmy.zip
      link
      fedilink
      arrow-up
      10
      ·
      2 days ago

      That’s really smart. That way if I ever figure out the command to exit Vim, it’ll behave the same as my current method (powering off the PC.)

    • Peck@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      1 day ago

      So kind of off topic. Like 15 years ago emacs vs vim split in engineering was like 50-50. Now I see more like like 90-10 with vim winning. What happened? I always assumed they are equivalent more or less.

      • AnUnusualRelic@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 day ago

        Emacs has scripts that can do almost anything. If you wanted to, you could pretty much replace your graphical desktop with Emacs and still do pretty much everything you do. vi is an editor.

      • WalnutLum@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        1 day ago

        There’s been a lot more evangelism about emacs lately.

        Also the fact emacs has doom and spacemacs to ease new users in while vim drops you into : and tells you to swim means that it’s easier for emacs to get new users.

    • Tuxman@sh.itjust.works
      link
      fedilink
      arrow-up
      9
      ·
      2 days ago

      Ah! I loved using Doom EMacs for a while!

      … but alas I came back to my initial love with Neovim 😜

    • supersquirrel@sopuli.xyz
      link
      fedilink
      arrow-up
      4
      ·
      2 days ago

      Yeah, this is the best solution at the end of the day for most would be text wizards, emacs is beautiful, vim keybindings are beautiful.

  • F04118F@feddit.nl
    link
    fedilink
    arrow-up
    38
    arrow-down
    10
    ·
    2 days ago

    Do you mean Neovim?

    Surely you aren’t comparing a flat text editor to an IDE that has language server support, debuggers and refactoring tools?

  • milicent_bystandr@lemm.ee
    link
    fedilink
    arrow-up
    21
    ·
    2 days ago

    HAHAHAHA I know the secret passcode to escape!

    Incidentally, it’s ctrl+]. But I remap it to ‘kj’, and somehow have never typed ‘blackjack’ in all my years of using Vim!

  • LovableSidekick@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    1
    ·
    edit-2
    2 days ago

    I used to know a developer who wrote all his code in Notepad. This was around 2005 or 6. We had just starting to replace our legacy ASP code with ASP.Net, which he was determined to do in Notepad. I was gone before I could see how that worked out.

    • chonglibloodsport@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      2 days ago

      Yeah. A lot of people who use vim don’t know how to use the full power of vi. They’ll often install plugins to do things they could have easily done with built in features!

      The one area where regular vi sucks though is undo. If you want multiple undo then you’ll have to at least go with something like nvi.

      • baines@lemmy.cafe
        link
        fedilink
        English
        arrow-up
        5
        arrow-down
        2
        ·
        2 days ago

        imagine thinking a non user will read this and want to use vi/vim

        vim users have the same energy as latex users

        • chonglibloodsport@lemmy.world
          link
          fedilink
          arrow-up
          6
          ·
          edit-2
          2 days ago

          I don’t really recommend people learn vi/vim even though I’ve been using it for years and love it. It’s a very personal thing and the time you invest into learning it might not be worth it if you don’t use its features enough.

          I think it’s dependent on your personality and neurodivergence/neurotypical characteristics (I don’t know a word that encompasses all of this). If you’re the type of person who gets really annoyed/distracted by any sort of “friction” in the editing process then I think you may be a good candidate to learn vi. Otherwise probably not!

          Edit: by the way I’m also a LaTeX user!

          • siipale@sopuli.xyz
            link
            fedilink
            arrow-up
            1
            ·
            1 day ago

            I sometimes wonder why some programmers don’t use vim. Aren’t they lazy enough to be bothered about unnecessary work and “friction” you have to deal with when using ordinary editors. I’d rather do the interesting parts of the job and command the computer to do the rest. Of course the communication with the computer has to be as concise, as effortless, and as easy as possible.

            • Lv_InSaNe_vL@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              24 hours ago

              For me (sysadmin actually) it’s because what I’m doing is either simple enough that I can use Nano (editing simple config files) or complicated enough that I’ll want a full fledged IDE. I use VSCode and it handles remote files really really well.

              Although I have learned a little bit of Vi/Vim because sometimes thats all you have.

              Plus if you’re doing major changes (like more than editing a line or two) you shouldn’t be doing that on a production server anyways. Like if I found out an engineer or dev was primarily working directly off of the server they would probably be on their way out the door. Uptime is worth way too much for that nonsense.

    • LeninOnAPrayer@lemm.ee
      link
      fedilink
      English
      arrow-up
      6
      ·
      2 days ago

      Knowing how to actually navigate vim is worth learning. Especially if you work in embedded systems where a lot of the time you’re on setup that is running barebones and likely just has vi as a text editor.

      But I used VSCode for dev work with the VIM plugin.

  • hamsda@lemm.ee
    link
    fedilink
    arrow-up
    13
    ·
    1 day ago

    vim was such an unimaginable improvement over nano for doing stuff on linux servers. Having an in-shell-editor search-and-replace function alone is worth everything you have to do to learn vim.

    And after I was comfortable around vim because of all the “training” on servers, I just switched to vim fulltime. No more GUI editor for me!

      • hamsda@lemm.ee
        link
        fedilink
        arrow-up
        4
        ·
        21 hours ago

        Ha, that would’ve helped me a few times. Good to know!

        Still, I wouldn’t switch vim for nano ever again. nano is a good and easy start, but I think if you do more than just basic editing of a few files every now and then, learning vim is the way to go.

        vim is pretty customizable, widespread and it has been around for quite some time after all. If you think you need it, somebody most likely already made it as a vim-plugin :)