That's the thing, I absolutely don't want to do a bunch of tiny tweaks. I want to write (react) code. For me personally I feel like tweaking an IDE gets in the way of that. Yet I can take a clean install of lazyvim, use mason to install the react language server, and install copilot, and then I can immediately start working.
And so that's what I actually do, and I find that to be much more pleasant (and lightweight) than other IDEs like VS code.
Can you actually explain how it's suboptimal UX, and what I could be doing better. I want a simple IDE, not suboptimal bloat. I don't need 200 keybinds to make a vue component.
Just because you have a bunch of custom quirks doesn't mean that I do.
The thing about vim and emacs is that both of them, out of the box, suck. BUT, what they both offer better than anything else, is the ability to gradually modify them to match what your brain needs.
I 100% agree with your hyperbolic "200 keybinds to make a view component" But that's ...that's not how it works unless that's what your brain wants.
With ALL editors you eventually encounter "ugh, this is frustrating" or "i wish i didn't have to do that" and then you have 30+ years of plugins and configs you can draw on to modify it to match your liking without any coding. VERY rarely, you'll want to tweak it in a way that there isn't a plugin / config for and you'll find communities of very helpful people who'll respond with "what about this solution..."
The fact is that _your_ brain is different from everyone else's. The less configurable an editor is the less it will be able to support the way your brain likes to work.
You _can_ accept pre-made defaults like those provided by VSCode OR you can gradually refine your editor to be a perfectly crafted tool for your particular and very individual way of thinking.
I choose the latter because i spend SO much time staring at my editor and trying to convince it to do things that are almost always better with automated assistance from it.
In my case, I'd prefer to do so. I'm a different use-case though, I'm a server admin so I want to be as comfortable with bare-bones defaults as possible so that I can jump on any server and just use Vim (or sometime just vi!). I can't afford the time it would take to set up a custom config on every server in every environment, so the most I need is a basic .vimrc that has `set number` and a couple netrw tweaks that I can copy with scp and get going. Most of the time I don't even copy that over and run `:set number` when I open a file.
Note that I'm still an intermediate Vim user at best, splits and markers are the most complex features I use (no macros yet). I know I can edit remote files, so maybe once I'm comfortable with that then I can set up some real customization in each environment.
Sysadm here as well, been using vi since the '80s. A year or so ago I threw away all my custom vimrc and went with (nearly) bone stock LunarVim, and have really enjoyed getting off the treadmill of maintaining a custom vim setup. Partly because of the 100s of machines issue, partly because of managing plugins and interactions between them. I program maybe 5% of the time, so the stuff I do to make it IDE-like often isn't worth maintaining for that 5% time, so I often end up with partially working plugins or whatnot.
LunarVIM has been a bit tricky, mostly related to upgrades around LunarVIM, usually neovim updates. But, the capabilities of having Language Server in vim have been so refreshing! Particularly when working with Python 2 code to bring it up to Python 3, pretty much just follow what Language Server says.
When it gets right down to it, there are only a couple little tweaks from my old setup I want to carry over, everything else I want to go back to using defaults (places where I've diverged my own functionality) and stop pushing around a poorly maintained manual config that gives me 10% of what Lunar or similar gives.
One of the things I noticed about LunarVim is that they were not very receptive about it in the official NeoVim rooms whereas people there (including NeoVim developers) were quite positive about LazyVim. The other alternative they suggested was https://github.com/echasnovski/mini.nvim
TLDR is that with the global lvim object, custom path, breakages because of unstable plugins it causes a lot of support issues where people go to the official NeoVim channel and not the LunarVim one.
I switched to LazyVim, which is developed by folke (one of the main developers of most of the plugins (trouble.nvim, tokyonight, which-key, lazy.nvim etc) https://github.com/folke?tab=repositories) the other "vim distributions" use anyway.
I'm also very happy I only maintain now "one configuration", I really disliked having "nvim" and "lvim" simultaneously on the same machine.
The method of checking out the "starter" repo https://www.lazyvim.org/installation and simply deleting the .git folder is a LOT nicer than an annoying installation script that does a gazillion things (LunarVim).
I've got a painstakingly crafted neovim config that approximately works how I want it to, most of the time, and I'm happy with it. But it's taken a while, a lot of nights inevitably spent mucking with plugins and LSP and gluing it all together instead of working on more rewarding things.
I'd be lying if I said I'd never thrown something at a wall in frustration due to vim acting in some bizarre, inexplicable way and not knowing why, although that definitely happens less nowadays with nvim.
I hadn't heard of lazyvim until the other day and I doubted I'd really need it, but now that I know it's something new from folke, I'm gonna have to give it a shot. Always quality stuff from him -- dude is a machine, when does he sleep?
Exactly. You absolutely need maximum configurability for the most important tools in your arsenal. You can pass with defaults on less used tools but everyday stuff should be as efficient as possible. In my case those tools are editor, shell, browser, OS, media player - they are customized extensivelly.
Any time somebody else creates something instead of you, it must be accepted as suboptimal. We are all unique human beeings and have different kinds of habits and disfunctions, levels of knowledge etc. so 1 setup for all is pretty much impossible and nobody else can do it but you. Any time you accept that, you are accepting suboptimal UX. If you are doing so you are admiting that you are either lazy, or you are good with your potential being maxed out at that point (if you are accepting anything less then most efficent workflow, given that time is the most precious resource).
Actually, when I look at how most of my colegues are slow using their tools of choice, even senior ones, I imagine I would rather kill myself then using such setup.
On the flip side, I've been using VIM/emacs for over a dozen years, and have gone from extensive user made configs to these starter packs (DOOM Emacs with some custom stuff on top). I mean I'm happy with a well thought out "total conversion" of emacs. I learn the UX on top (that is really nice) and I add my own. If I started from scratch it would probably be sub-optimal ( I mean I could recreate DOOM, but why?)
Or rather it's a matter of trade-offs and some things are just "good enough". It's not up to you what's good enough for him or me, especially weighed against the amount of effort I might have to invest to get something that's "optimal" for me.
Cant wait until you create your programming language to use in the company you created racking up the optimal millions while laughing at us lazy slobs!
Maybe YOU should stop calling other people lazy for something actually very productive, aka not wasting million hours tinkering with lua for marginal returns over investment, often on company time…
Just because it’s predefined doesn’t mean it’s suboptimal. On the contrary - anything I do myself likely has less about of thought and consideration from an officially published configuration.
That is just not true. Anything not customized to your specific need and context is certainly more complex and bloated. "Officially published" is a common falacy (resorting to authority)
And so that's what I actually do, and I find that to be much more pleasant (and lightweight) than other IDEs like VS code.