Return to Blogging - Go programming language

What happened?

golang2.png

I’ve been using Python for most of my corporate works, however there are no “one size fits all” programming language. As I started to need performance more and more due to the volume of available database and the complicated ETLs that I need to perform to provide curated datasets to my teammates, Python started to get in my way.

After a lot of study time I started to design the architecture of my products to correct fit its purpose. The Microservices approach looks very promising and the idea of developing a small application to handle your very specific need in the correct way is great. However, the problems stated by Uber's Michelangelo paper is still very complicated to deal with: There are no standard pattern for building or deploying machine learning models.

When we think about programming languages and the challenges we need to overcome in our daily work, its desired to have a very expressive syntax, easy to understand, easy to write, easy to maintain and fast to get your things done. You probably identify Python right there! But the performance… Oh boy!.

We started using Scala for most of our load intensive operations. However, other needs started to emerge and Scala started to take too much of our time to get things done correctly and on time. Therefore quoting a very nice paper Hidden Technical Debt in Machine Learning Systems “In software engineering, a design ‘smell’ may indicate an underlying problem in a component or system” and one of the smells is the Multiple-Language Smell.

After hours of deadly work testing and verifying all the good options available for Cassandra drivers and good performance, we stumble in Go. I managed to re-write a portion of our code base in a single day. I like it. Despite working in a financial company, we take our jobs very serious and from time to time we rethink and refactor our business plan for all products. We need to unify some missing links and I am betting on Go to help me out.

In order to document all my studies in Go, I will be posting for one-month in a row all the details and concepts learned.

Hold your sits!


Author | Wanderson Ferreira

Currently a MSc student in Universidade de São Paulo in the area of Deep Learning algorithms at the ICONE Research Group.