summaryrefslogtreecommitdiff
path: root/_posts/2023-11-23-I-ll-take-a-look-at-go.md
blob: 8da0f1a30ae4f0d14ea7b801c30edadcd48497f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
---
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]<br/>
&lt;rant&gt;
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.
&lt;/rant&gt;

[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\*.