• MagicShel@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    3 months ago

    First I want to say this is a great comment overall. I appreciate it. But a couple notes:

    What neither of us can do is write it such that the replacement is limited to the identifier we want to rename

    \Widentifier\W - harder to navigate markdown than write the pattern. This would also catch references to the identifier in comments as well, though if the identifier isn’t a unique word it might take a little repair, but that’s rarely the case in Java where the convention is expressive identifiers.

    UNIX philosophy of "RTFM, start working like a pro from the beginning […]

    That only works for small manuals. Take Git for example, because that’s something I often use the CLI for. There are a huge number of things to learn out of the gate and you can’t just RTFM and you’re good to go. And it’s really not particularly big or complex. Something as simple as cherrypicking - well first I need to log to see the commit ids. Oh not just log but --pretty-something so I can just see the commit ids. Off to Google shit to remind me how to do another thing I only do every few weeks. Compare that to a GUI where I can just right-click cherry-pick. This absolutely kills my productivity because I do so much different shit, I can’t possibly remember everything that I barely use.

    How would you know without giving them an honest spin?

    I only have so many hours in the day to experiment. And I do, but the “cost” here is pretty high and the opportunity for return is low. We’re talking about things I might do a couple of times a month.

    Now it’s possible I’m an idiot and I’m just slower or dumber than folks who like vim. It’s also possible my roles have been really fucked up and I don’t get to focus enough to get good at stuff that ought to be its own niche. All I can say is I’ve stuck my toe into the water and it’s fucking cold. Currently I’m probably 85% GUI and 15% CLI and other keyboard-centric tools. I just use whichever is the most expedient.

    I wrote a one line bash script to start my vpn because I couldn’t remember each little keystroke but I can remember start-vpn.

    Once again, I appreciate your comment. Upvoted. I don’t know what helix is. Blender I know but isn’t really a business software writing tool so I have maybe 20 hours playing around with it total. I’ll look into LSP on my PC, but I might just forget I have it by the time I try to figure out what to do with it.

    • barsoap@lemm.ee
      link
      fedilink
      arrow-up
      2
      ·
      3 months ago

      Take Git for example,

      Git is simple in its operations, but utterly complex in the stuff you might need to do because the operations aren’t mathematically clean. Things like git rerere should plainly not exist because states which require using it should be impossible to reach. And the likes of vim, or pre-2.8 blender, kinda ended up there as they grew organically, the more you tack on the more likely it is that different things don’t work well with each other. Which is why I recommended helix: It’s a clean-slate redesign. E.g. helix’ command language is consistently <selection><action> while vim is all over the place, you end up learning things by rote instead of really exploiting the combinatorics. On the VCS side darcs is sane in principle but it’s patch theory didn’t really have efficiency in mind and there’s a very nasty complexity explosion you can run into, pijul fixes all that: It has both a vastly superior interface without surprises (such as patches not being associative) and it’s fast.

      We’re talking about things I might do a couple of times a month.

      The most striking difference between the likes of VSCode and Helix are not things that you do once a month, but stuff that you do all the times: Navigating and basic editing. Within the first couple of pages of going through the tutorial you’ll know if navigating with hjklwWbB etc. is a thing that would save you time, whether it’s worth making the interface modal, having to type i (or various other options) before actually writing text. I certainly still haven’t really gotten my head around Helix’ multiple cursors because I don’t need it that often but VSCode wouldn’t be any faster at those kind of things, either.

      I’ll look into LSP on my PC, but I might just forget I have it by the time I try to figure out what to do with it.

      Language Server Protocol. Actually started out on VSCode, it’s how language integration works: The compiler writers (or whoever) provide functionality such as “give me docs for a certain identifier”, “rename this identifier” etc. and the editor/IDE simply offers those options, display the docs in-line, etc. It quickly caught on everywhere, 20 years ago you certainly wouldn’t have seen me advocate writing Java in vim because the likes of Eclipse were just way better at wrangling the language, but the times of those language-specific functions not being available in good ole code editors are over.

      • MagicShel@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        3 months ago

        Tell you what. As I’ve just ended a contract and have some time to work on my side project while I job hunt, I’ll give it a shot for the rest of this month and report back.