Our journey begins by installing **GoLang. **Wecreate a development environment with the GoLang IDE, along with some associated tools and packages. Next, we list 19 “free” resources and 5 “not-free” books for learning the GoLang language. Finallywe benchmark the Python sklearn kmeans to **GoLang kmeans implementation. **Together, we will determine if the **GoLang kmeans **implementation works and if it is faster than the Python sklearn kmeans.

My Past Journeys (THIS SECTION IS OPTIONAL)

started learning about Machine Learning, in 2011, with a great language called R. I was progressing well in learning theory and practice in Machine Learning. I base the feeling of “progressing well” relative to the past four “retools.”

1. After my first professional career in experimental particle physics, I retooled into Artificial Intelligence.

2. The bubble of AI 1.0 burst in 1985, I retooled into IT (information technology) Architect by learning algorithms, C, C++, and distributed computing.

3. I became fascinated with Oak in 1993, which later in 1994 was called Java. I thought, “ here is a language for N-server distributed computing.” I was wrong. It turned out to be Scala. (IMHO, I was close.) I became an advocate of CORBA, another bubble burst, the final part of this phase of retooling.

_4. Naturally, the next “retool” was learning and then building websites from 1997, until the _Web 1.0bubble burst in 2000.

Towards the end of 2012, I developed a Real Estate application that would improve mailing campaigns. I used a scripting language called R, but encountered a lot of resistance as I delved into Machine Learning and Deep Learning.

Because of that resistance, I tried Python in late 2013, and have stayed with Python as I got deeper into Machine Learning, then Deep Learning, then Nvidia GPUs, and then cloud computing.

My new goal

I have a problem, which I think I share with a good part of the Machine Learning (ML) community.

I need a way to speed up my Python Machine Learning solutions to put them in production.

or

Python is too slow for production Machine Learning applications. I need to switch away from Python.

What I decided to do was:

Learn GoLang.

It is almost as fast as C. It is promoted as easy to learn because it has a C-like syntax. There is language-level support for concurrency. It is statically typed but also includes garbage collection.

It is noteworthy, as it is on Windows, Mac, Linux, and other platforms. It supports the new multi-core architectures.

GoLang_ is open-source and has a growing contributor community._

_Importantly for me, is that GOLang is used in production for many years at Google. Also, I required that __GOLang __can call Python. A GOLang wrapper of my __Python-based _ML kernels is my fast runtime solution for production.

The rest of this article is my journey in setting up a GoLang development environment. Later articles detail how to use GoLang and Python as the duo-power combo for Machine Learning production applications.

Ready to Start: Setting up your Go Development Environment

The best way to start is at the source: https://golang.org.

Here, I downloaded the binary release installer go1.14.4.darwin-amd64.pkg for MacOS 10.14. 6. There are downloads for Windows and Linux as well.

I double-clicked on go.1.14.4.darwin-amd64.pkgthat resided in myMac_ Downloads folder. _I then followed the instructions of the pop-up installation wizard.

Note: The Go installation requires 350 MB on the selected destination disk.

Note: Depending on how you have a security setup on your computer, you may be asked for your password during the installation process.

Note: After installation, the final action is “move Installer to trash?” I clicked, Yes.

Setting up your GoLand IDE

My Python Interactive Development Environment (IDE) of choice is PyCharm. What I appreciate about the PyCharm IDE is that it almost fully-automates my Python development pipeline with a few mouse-clicks.

That bias caused my search for GoCharm. It turns out that JetBrains, the company behind PyCharm, calls their GoLang IDE GoLand.

There is a convenient button for downloading the install of GoLand. From the download, I double-clicked on goland-2020.1.3dmg,which resided in myMac_ Downloads folder. _I then followed the instructions of the pop-up installation wizard.

The installation process put the icon GoLand in my toolbar. I double-clicked the GoLand icon.

The iintial GoLand screen on launch. Animation by Rachel Cottman

Next, I clicked on New Project:

Creating First Project in GoLand. Animation by Rachel Cottman

#golang #productivity #software-engineering #python #machine-learning

Setting Up a GoLang Development Environment and Benchmarking
1.25 GEEK