The decision to not change __

There are tons of new things out there, especially in tech. New things appear all the time, some are popular then forgotten. It took me a while to find out, how exactly I like to program. The tools were obvious from the beginning, that was just a lucky break. I started out with Sublime, then tried Visual studio, Visual studio code, Vim and now Neovim. The last time I changed my text editor was about four years ago. It's when I switched to Vim after I saw a wizard at work. Before then, I always wondered, how can I move around the editor faster. Tried the shortcuts way, but was not aware that there was a whole language just for moving around your text editor. As soon as I saw it, I knew this was it. So I asked the wizard about it, he shared his config file. It took me a week to get comfortable with the idea of using Vim, but after I did the :vimtutor for a couple of times, it was hard not to see the value. So I decided to delete VS Code and dive straight in. Since then, I've updated my config to only have things I need. This is what it looks like at the moment:

return require('packer').startup(function(use)
  -- Packer can manage itself
  use 'wbthomason/packer.nvim'

  use {
	  'nvim-telescope/telescope.nvim', tag = '0.1.3',
	  -- or                            , branch = '0.1.x',
	  requires = { {'nvim-lua/plenary.nvim'} }
  }

  use { "scottmckendry/cyberdream.nvim" }

  use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
  use {
    "ThePrimeagen/harpoon",
    branch = "harpoon2",
    requires = { {"nvim-lua/plenary.nvim"} }
  }
  use('tpope/vim-fugitive')
  use('tpope/vim-surround')
  use('ray-x/go.nvim')

  use {
  'VonHeikemen/lsp-zero.nvim',
  branch = 'v2.x',
  requires = {
    -- LSP Support
    {'neovim/nvim-lspconfig'},             -- Required
    {'williamboman/mason.nvim'},           -- Optional
    {'williamboman/mason-lspconfig.nvim'}, -- Optional
  }
}

end)

Every year or year and half I go through this config, look at what I am not using and get rid of it. These are the things I use on a daily basis. I'm still not as fast as I could be, but I feel very comfortable in the editor after four years. Also, excited at the fact that I could get even faster.

The operating system used to be Ubuntu with i3, but since Pop Os introduced tiling window manager. I switched over to it, and mapped workspaces to work the same as i3. One less config to think, about. I'll take that. I don't enjoy having too many configs. If the defaults work, I'm happy to stick with them. That's why after trying out, Kitty and Alacritty I switched back the default terminal. I really couldn't tell the difference between them. I use Tmux anyway and the rendering is fine on the default one. So I've been using that for about two years now.

As for the other tools that I haven't changed is my Kenesis keyboard. I recently got the Advantage 360 after using the Advantage 2 for about two years. Probably will not change this for a long long time, as I enjoy the experience of typing on it, even after all these years.

Programming in Go

Now that I've mentioned the tools, it's time to talk about the craft. Which is programming by the way, just in case you are not sure what I'm on about. I've tried a few languages over the years. The one's I've spent some time on are Go, C, JavaScript and C#. Absolutely despise C#, something about it never appealed to me. I tried to like it twice. I don't do much C, but I like to do some low-ish level stuff with it now and again. Just seems like fun. Although, I'm not very good at it. I can call the socket, listen and connect etc. Some rudimentary threading too, but nothing to write home about.

The language I absolutely love is Go. It's simple and let's me write stable code. It's something I want to get better at. There is a long way to go, and that makes me feel good. So this will be my primary programming language for the foreseeable future. How long, I don't know. At least the next few years to come. Plus, now I can focus on the programming, and solving interesting to me problems. Sure, something better might come along. But if end users really do care about the product more than process or the tools, this should not be a problem. Recently I've been working on a TUI app with wish, and it looks so good, and it was a lot of fun to create a cool almost useless but fun terminal app. Quite new to getting a SSH app to work on a server and be remotely accessible by anybody, once I figure that out I'll be sharing it. Can't wait.

What else?

  1. HTMX: won't be changing this either, HTML over the wire is fast and simple. The browser does all the work I don't like. I'll take that.
  2. AlpineJs: JavaScript is nice, but Alpine helps keep things concise. I think JavaScript is great at what it does, so why change it.
  3. Postgres: Have been my main database of choice for about three years now. Probably won't change this either. Only exception might be a lateral move to Turso. It seems promising and seems a lot more simpler to get working. Will be trying it out for one of my next projects.
  4. TailwindCss: I've been using this for about four or five years now, still seems the best way to do Css. Although I use franken ui, which is a HTML first UiKit that also uses Tailwind. The less Css I have to write, the better.

Not sure of

There are some things that I'm not completely sure of yet. It's the cloud stuff. I've used AWS, DigitalOcean, GCP but I'm not really a big fan of any of them. Just seems, like for my smaller projects they are quite unnecessary. Recently I've been trying out fly io and I am liking it quite a bit. It is super simple and the pricing is quite good too.

Finally

There might be a few other things, but for the most part I'd like to not change any of the above unless there is a really compelling reason. And master the tools above. The whole idea is to not have to think about the tools. As long as I'm writing in Go, the rest I'd like to think about as little as possible. I don't use any frameworks with Go, I like the standard stuff, except for the routing, for which I use chi. The goal for me is to program for as long as I possible can, and get as good as I possibly can.

Happy coding.

P.S. Talking about Turso made me want to try it out now. So that's what I'm going to do now :D.