Meta(
    title: "Re: Migrating Neovim config to Lua",
    summary: Some("Some additional thoughts on NeoVim"),
    published: None,
    tags: ["programming", "editor"],
)
---
Schmiddi had a nice post about migrating his NeoVim config to Lua.
=> gemini://blog.schmidhuberj.de/2022/08/21/migrating-neovim-config-to-lua/

> Is it worth migrating the config? I would definitely say so. Lua is easier to handle than the old vimscript-way. Furthermore, the migration is really not hard, it maybe takes an hour to migrate..

That was largely my experience as well. But I really just want to take a post to talk about NeoVim in general, and how my workflow has evolved over time. Everyone who codes has a favorite editor or IDE, and for the most part we tend to get -very- attached to this tool. I've settled on using NeoVim with a number of plugins and language servers, but it wasn't always that way. I've used a lot of different editors and IDE's in fact. Enough to have become rather opinionated over time. And since this is my capsule, I've absolutely no qualms about expressing those opinions.

## My history with computing in brief
My first computer, like a lot of folks my age, was a TRS-80 (the Trashcan). There wasn't really a full fledged editor, but you got a Basic interpreter and a line editor built in. Documentation was in the form of the printed manual and whatever printed books you could get your hands on. I'm not advocating that anyone needs to go back to this. It was terrible in almost every way and the hardware was extremely limiting. But I do get nostalgic from time to time nonetheless. As a teenager I lost interest in computers anyway, in favor of playing guitar. By the time I came back to computers Linux was a good few years old and the early internet existed.

I ditched Windows within a few months of getting my second ever computer, an Athlon K5 my dad put together with Windows ME. For those of you who thought that Vista or even Windows 8 were bad releases, just be glad that you never had to deal with ME. The less said the better. In any event it was not at all long after getting that computer that I was looking into alternatives to Photoshop, which even at that time was already ridiculously expensive, and heard that there was this thing called Linux which ran all free software. Not realizing at the time just how important that discovery was going to be for me.

That computer followed me as a second box after upgrading to a more powerful Athlon based system around 2004, and became a test box for me. By that time I was running Fedora on the fast machine, and compiling software from ports in FreeBSD using the old K5. I was advancing in my knowledge for sure, but I wasn't really writing code yet. I was actually hosting my own website though. And, still being broke, I homebrewed the site. A lot of folks have talked about writing html using Notepad over the years. I was using Leafpad. I still like Leafpad. It was just enough editor to get the job done, while not having really any learning curve whatsoever.

Around that time I also started getting interested in shell scripting. I abused the shell quite extensively using nothing more than Leafpad. I contributed to Puppy Linux a bit along the way. It was fun, but still taking a back seat to other pursuits such as photography and music. At some point I discovered Geany, and really loved that it had an attached terminal. It also had syntax highlighting, which I had never had with Leafpad. It was cool, but it didn't always work correctly. Back then I don't think anyone really relied on such things because they just weren't reliable.

## I don't think that new programmers should start with an IDE
I imagine a lot of people will disagree with this. But I'm pretty firm on it. When you are just beginning to learn to code (and by extension learn how to compile and run your code) I think having certain things abstracted away is probably bad. If you're writing C, then you should also be learning how to find the documentation for the C standard library using the man command. You should be learning how to invoke the compiler manually. And you should be learning how to structure a source distribution rather than having an IDE do so for you from a template.

The big danger in starting with something like VSCode is that you will never learn how the rest of the tooling fits together because you IDE takes care of it for you. There are people out there in the wild being paid to write code who have no idea how to use Git on the command line. There are a number of people arguing that isn't actually a problem they should be concerning themselves with anyway. I humbly disagree. If your IDE has a button that you push to build your program then you won't have to learn the mechanics of how it gets built. You'll never write a Makefile by hand, even if the program in question is a single C file.
