Really wanted to build a project from scratch… so I did.

Project turned into a command line utility for daily journaling - stoic. I was mainly motivated by my desire to practice golang in a greenfield project and with an itch to scratch my own niche (meaning, finally writing software that I would use myself).

At some point, after writing in various programming languages you start to wonder… Will another language make that big of a difference to justify time spent on mastering it?

In case of golang learning curve was really low. It might be language, it might be my approach to learning new language or might be combination of two. Here are some of the things, that made it easy for me to learn it.

Open source

One of the big reasons I got interested in golang, was huge amount of awesome go projects in open source. I personally use roughly around ~10 golang based project on a computer I’m sitting at now.

I couldn’t stop reading source code - it was easy to digest, even without prior experience in language! So, there have become a moment where I said “this seems easy, I should try writing my app with go”. Of course, a lot of that available open source not only inspired, but show me examples for possible solutions that I was looking for.

Github Copilot

Copilot is amazingly good. In some cases it fills in 80% of a method I’m planning to write and almost always guesses assertions in tests that I about to write.

With Copilot I didn’t need to disrupt my coding flow. Wrote a descriptive method name and AI filled in the “blanks”, I tweaked the hell out of it, especially with auto-complete - it’s easy.

It’s creepy, how fast Copilot allowed me to pick up a language.

BubbleTea TUI Framework

BubbleTea TUI framework and charm related libraries is amazingly great looking. It also follows ELM architecture and this architecture works great with golang. I was blown away to find a framework of such a quality and with so much simplicity!

I need to write more cli tools! This BubbleTea TUI thing is just incredible, a bit hard to test though.

Documentation

I generally try to code without google/stackoverflow these days, mostly relying on official API documentation. I always stumble on something interesting there, something that is usually omitted in a stackoverflow answer!

In this regard, golang documentation was mostly great!

So to sum it up, I must say, even against my initial prejudgement (not a functional language, duhhh) - I really enjoyed diving into Go and absolutely will continue to explore this language further. I already have couple of projects I’d want to build with it too.

Golang turned out to be a valuable asset to have – only the fact, that it can easily compile for any platform! Damn it’s nice! I’m eagerly looking for new projects to build with it now.