Programming

I admit it is the first time I am writing code that is almost 100% covered by unit tests. But it’s such a good feeling to have small, concise methods whose functionality you can rely on. Even before I have a running application, I know that what is already written will work. And unit testing with Go is really fun.

When I write code, it often serves the purpose it is supposed to serve. However, it is often not the most elegant. Especially when I compare my code with other implementations, I sometimes find mine somewhat ugly. I think I’m thinking too chaotic, start writing the code immediately and while I’m writing it, I think of things I could do differently and in the end it’s a big mess. Maybe I should first sketch my code on paper and then type it into the computer without thinking much about it?

Go and Java

While I need to use Java for university projects (currently that are one Spring and one Java EE project) and work, I use Go on some personal projects (Hugo backend and KISSS). While I’m getting more familiar with Go (I do Java for many years), I also experience cases where I actually miss language features from Java. Oh and it’s not generics, I’m currently (still) fine without generics. I miss streams.

Codecademy was once a great source to learn new programming languages, but it seems in the last year, they started to push harder to increase revenue. After login you get presented a page to buy Pro access (and you need to find that small “Back” link), Pro banners everywhere and popular courses like the one to learn Python 3 are Pro-only anymore. Seems like I need to find another source to learn some Python basics for my seminar paper about Falcon.

Benjaming Congdon shares in an article, why he appreciates Go’s simplicity. To summarize: Its great forward / backward compatibility, dependencies (stable, fewer dependencies needed), included functionality (testing, http, …) and formatting (because Go has an integrated formatter, although every project has its own way to do things, all code follows the same formatting conventions).

This corresponds to my own experiences. When working on my Micropub-endpoint for my Hugo-blog setup, or my website statistics tool, I rarely have any problems with the language itself. Go is simple, so I can think more about the way to solve my problems. The code I write probably isn’t the best, but Go helps getting things done.

My favorite feature: The standard library. For my Micropub project, I currently only need one single dependency, a YAML parser. Everything else I need is already included.

What I wish for: Better error handling.

I develop code in Go for just a few months now, but I learned to like it. It’s fast, simple and can produce static binaries. In contrast to Java (the language I have to use for a lot of university and work stuff) it does many things much simpler. And I think Go is really easy to learn, also thanks to its good documentation.

There are over a million Go developers worldwide, and companies all over the globe are looking to hire more. In fact, people often tell us that learning Go helped them get their first jobs in the tech industry. In the end, what we’re most proud of about Go is not a well-designed feature or a clever bit of code but the positive impact Go has had in so many people’s lives. We aimed to create a language that would help us be better developers, and we are thrilled that Go has helped so many others.

When you host your static website on a service like Netlify, it’s not that easy to get statistics of your website visitors without violating their privacy by using tools like Google Analytics. Because it’s a static website you can’t use some statistics plugins the way you can in WordPress and it’s also not possible to view which pages the server is serving, because Netlify doesn’t give you access to it’s logs.
Jan-Lukas Else
20 years old student who writes about everything he cares about.