--- layout: post title: I'll take a look at Go date: 2023-11-23 20:45 +0100 lang: en categories: tech description: Due to too much free time I take a look at the programming language Go --- The company I work for reduced working hours due to the economic situation. That means I have more time on my hands than usual. For some reason a voice inside my head suggested to take a look at the programming language Go. I mean, I don't know why exactly. I spend most of my work day coding either in C (embedded / firmware) or in C# (desktop application), with the occasional Python, Bash or PowerShell for scripting stuff. I have to say, the idea of being able to compile a standalone binary - even cross-platform because the cross-compiler is "already included" in the toolchain - is kind of charming. No separate runtime required because it's already being compiled into the binary. No more discussions about which coding style to use ;). Compile-time type checks are nice, too. But yeah, I only wrote a few lines and didn't dive into the programming language too deep yet, so I can't say much about it. So, thanks to the excellent library of the local university[1] I got myself a book from Rheinwerk Computing Verlag, "Microservices in Go". Even if I don't intend to code microservices myself, it was one of the few Go books available there. And it gives me something new to think about. Yeah, I mean, there are probably lots of online tutorials as well. But I get easily distracted somehow, so having an offline medium is nice. (Don't get me started on video tutorials). Also, it's free. My current development environment is VSCode, with the Dev Containers extension and the `golang:alpine` Docker image (so I don't "clutter" my Linux Desktop system even more. Oh, the pains of the various breaking virtual Python environments I have whenever I dist-upgrade my OS…). Hm. I mean, in the past, I've "taken a look" at lots of programming languages. Uhh… let's see… JavaScript, Haskell, Lisp/Racket, Rust… and probably some others I already forgot. Nothing that lasted. On most occasions, my interest / curiosity dwindled pretty quickly, because I had no real use cases for them. That is because I don't code much in my free time. I already code ~~a lot~~ during my work hours, so I don't see why I would spend too much of my free time on that as well. Also, "I don't really have needs" for software I would need to write myself. Most if the software already exists. I occasionally write a few lines of bash or Python to automate things, but that's it. I don't really see myself implementing a messenger, BitTorrent client, mail client, web browser, database… you get the idea. I certainly can't do things better than others. It might be nice to learn how certain technologies/things work, but currently I don't have an itch to scratch, so to speak. I also tried Advent Of Code once, but… ended of getting a bit frustrated quickly. Luckily, I haven't encountered a company yet that required having programming projects in your free time yet. Programming is not really a… "passion" for me, I would say. I get some joy when I can solve a problem. At the same time, software development isn't really my "dream job". It's something I can do and that earns a good amount of money.[2] Gotta admit, I don't even know what my dream job would really be. I kinda don't want to spend too much time thinking about it. So why am I looking at Go now? Honestly, I have no idea. Boredom and the urge to learn something new. Apparently, learning guitar[4] and Swedish is not enough for my brain. Maybe the urge will pass after a few weeks, like the joy of a new technical gadget that ends up lying in the cupboard. [1] Libraries are amazing! If they didn't exist one would have to invent them! [2] And holy moly, when I see what some big companies pay… Makes me think "That's more money than I'll ever need".[3]
<rant> I also kinda find it unfair that software engineers are paid so much better than, say, medical care personnel. The latter doing much more for society, or as I tend to think of it, "something more useful" (or rather meaningful? I have trouble finding the correct words for it). While most software engineers… well, write software for a company, so the company can sell it for money, growing year by year, making more money, which is just numbers on paper (or on the screen) after all… Urgh. I have trouble expressing how much I hate this "The economy needs to grow every year for ever and always or we're all doomed!!!!!" mindset. And yet I kinda "have to" take part in this "hamster wheel", since I want to earn enough money to be able to save for when I'm old. </rant> [3] Unless I were to move to a high-rent city like Munich or Berlin, hah ;) [4] Current "playlist": A Christmas programme. This is for an upcoming concert. I play in a group with flutists and we'll be playing quite a big programme. Oh how I came to ~~hate~~ be frustrated by Mike Oldfields "In Dulci Jubilo" due to its rapid chord changes. Aaaaaarrrgghh! Gotta admit, "It's my fault". Most of my frustration stems from having learned to play the G chord with fingers (1,2,3) instead of (2,3,4), which makes the chord changes really hard. My pinky is not ready for the challenge yet. \*sighs\*.