August 2020 Update

This month I have been going through some Go tutorials on Pluralsight.

Actually, just one, but it has been taking a while. The instructor has this (IMHO) bad habit of wiping out the contents of the file he is working on and replacing them with new content without warning. And sometimes he does not go over helper functions that he writes and are called from his main functions. It makes it frustrating.

I think I will keep an eye on Go. I bookmarked an “awesome-go” repo (note to “awesome” repo maintainers: These are a lot easier to follow when the libraries are categorized, and the lists and sub-lists are alphabetized). I started looking at a web framework called Buffalo, but to install it you have to install npm and other Javascript garbage. I hate Javascript and would like to keep it out of my life as much as possible.

(Before anyone goes on and one about how I should just accept that you have to deal with Javascript to do web development: I use Office and Sharepoint every damn day at my job. And not by choice. I am getting tired of doing things because I have to. I want to start doing things because I want to.)

I was thinking of ignoring Go, but I found a post on the Java subreddit about the latest Jetbrains State of the Developer Ecosystem survey. Granted, the respondents are users of Jetbrains products, so it is not representative of all developers. But I decided to take a look. There is a section about Go. Buffalo is not the most common web framework. The winner is one called Gin (here are links to the website and github repo). I might look into this later. The github repo and the website both state that Gin has a “martini-like API”, which on the surface is a meaningless statement. I googled “golang martini”, and apparently there was a Go web framework called Martini. The repo page says it is deprecated, and the last commit was in 2016. Note to whoever is doing the marketing for Gin: Comparing your project to a dead project is not the best selling point.

There is a rules engine written in Go called Grule. The main reason to build a web app is to work with a rules engine. My day job involves a proprietary rules engine that I am kind of sick of dealing with. (Thanks for the opportunity, multi-national corporation, but at some point I will probably move on to something different.) There is also Drools (written in Java) and Clara (written in Clojure).

One issue I have at the moment is that the Grule page has this tidbit: “Business Analysts can easily read and verify a set of rules.” Just about every technology that pitches itself as something that “the business people can use so you don’t have to be a developer” never lives up to that promise. Score one for Clara.

You’re welcome.

Image from the San Millán Beatus, Beatus of Burgo of Osma, a 10th century manuscript of ‘Commentary on the Apocalypse‘, written in the 8th century by Beatus of Liébana; image from Real Academia de la Historia in Madrid, licensed under Creative Commons License (Public Domain Mark 1.0).