• 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.

        • 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.

        • 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.

    • 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
        2 days 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.

    • 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
              ·
              2 days 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
                2 days 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
              ·
              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

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

                    Have you tried using VSCode / VSCodium? I’ve tried using a VIM based workflow and found myself missing many graphical dev features in VSCode.

                    And sure, there’s nothing wild about continuing to use a process that works for you, but it is a little wild to insist that your process is the best and other people should learn it, if you also know that it has inherent limitations that alternatives don’t.

            • 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.

    • 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.

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

                    Literally not, since I’m advocating for a superset of what they are.

                    I use command line tooling perfectly happy within VSCode, they don’t use graphical tooling within VIM.

                    I’m literally just advocating for a toolset that lets you use graphics or a cli, depending on what makes most sense for the task at hand, they’re advocating to only use the cli.

            • pinball_wizard@lemmy.zip
              link
              fedilink
              arrow-up
              2
              ·
              2 days 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
                2 days 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
      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.