Go and wonder

I have read many a times a post starting with “I switched from Python to Go and I love it.” It baffled me until now. I have a hypothesis about why this happened and also how Google spreads. It does not spread like a disease and infect, it spreads more like religion and ideas can spread.

The hypothesis came to me when having to be forced to work with Kubernetes and Hyperledger. They are both tools made using Golang. Therefore it touches the Go community and as I underwent my athloi, like Heracles and Theseus, I faced a monster and conquered it.

What is it?

So first things first, what is Go or officially Golang? Well it is a language designed and maintained by Google. What is special about it ? Well it offered in the beginning a very nice way of doing async programming through the usage of so called coroutines and it called these goroutines. How cute.

Syntax

It does not feature a great syntax. Especially not compared to Python. I find the syntax to be unclear and wonky at best.

Packaging

It did offer another part better than Python. You could compile a binary and that binary would run automatically on any system that shared the same architecture. So you compile once for x64 and it can run on Windows, Mac and GNU/Linux ( I don't want to upset RMS ) provided they run on x64 hardware. So like everything else in life it matters most how you look and how you sound and not so much what you actually say.

Hypothesis

The hypothesis is difficult to formulate using the scientific method to make it exact and concrete yet I can link it to another phenomenon and I think that will place it nicely in the same category and labels.

Imagine if you will you start to learn the new tech that got hyped and sold to you by a company with a big name and a reputation for making things that are smart. During the first moments you feel like you are not getting it actually and not fully understanding it. The documentation does not help as it seems to be written by people that fully understand their own product and expect others to also fully know the product already. You see where that can go wrong. How are people supposed to learn the new thing when there is no good path to learn it other than just try and bruteforce your way through.

At the same time you cannot accept the fact that you are someone not getting it because the company sold it so it must be true. Other people are saying it is amazing so why are you not getting it. Surely it is you so you start to say to yourself it is amazing. Then you commit more time and you slowly but surely and steadily learn the new tech. You find it severely lacks the potential the hype sold you. If this sounds familiar it is because it is called the hype cycle and I wrote a post about it on how to make it not so impactful and give you tools to pierce the illusions.

Now though you spent some time on it and it is incorporated into your stack you cannot turn back. You are forced to commit or admit your mistake and that will hardly ever happen. So you can see how it all works. People adopt this tech and then by utilising the technique described above they are forced to stay and use it. I read a post about AMP for example. It is a good idea but nothing major, however if you don't use AMP then your content won't rank in the result pages, the so called SERPs. You cannot back out now anymore. Same goes for things written in the Golang eco system. Or how about Kubernetes to manage your containers? Well when it came out it helped out for sure but nothing AWS ECS ( Elastic Container Service) could not handle as well. The thing I dislike the most is the whole bad documentation and not fully knowing what to do and all of a sudden you are too deep and you cannot go back. My experience just connecting to Kubernetes cluster running on AWS EKS with either eksctl or kubectl was phenomenally bad. Again turns out the mentality spreads out. This mentality of not documenting it completely to draw people in like it is quicksand. Just like quicksand at a certain point you'll just float and cannot escape. You are just stuck there.

The tooling at AWS normally is quite good except when it comes to eks command then it reverts back to not fully describing everything and not working like you think it does to why does this command accept these parameters but the other one not while they are both part of the same tool ?

So like I said the hypothesis is that people bought into an overhyped and well marketed technology that is purposefully vague enough to keep you hooked until the moment comes where you realise you cannot escape anymore. Look at Flat Earth Society, it has a lot of the same properties and therefore I also think people that made Golang and derived products are failed engineers or software developers like Flat Earthers are failed scientists at heart.

We should educate them better and provide more resources to avoid these situations in the future. We should take lessons on how Python and Ruby are being developed, the core language and runtime. It is how things should be.

#thoughts #devlife