Five reasons to use Go for AWS cloud programming

We have some new cloud development projects in the works and I've been hearing a lot about Go. What is it and should I use it for a new AWS project?

Go is a low-level language designed to be fast and easy to program, especially for concurrent programs. It was originally designed by Google but is becoming more popular as a cloud programming language. Here are five reasons why you should consider using Go for your next AWS project.

1. Go is a compiled language, so it's less forgiving than scripting languages such as Python. But this can be beneficial since it compiles instead of using a runtime environment.

2. Go programs are well structured and easy to understand. The code is, in many ways, easy to read. The compiler is strict and the code is explicit, which means there is less chance of misinterpreting the meaning of a data type statement of a variable.

3. Concurrency is easy with Go. For example, if you call funcX(param1), it will run synchronously with the calling routine. If you invoke the function using a goroutine, as in go funcX(param1), it will execute asynchronously to the calling routine. The method is fairly simple compared to other cloud programming languages. You also don't have to work around limitations like the Python Global Interpreter Lock.

4. Go has the basic developer tools you will need to get started. It's a new language and doesn't have the resources of some longer-lived languages. But it does come with sufficient tools for compiling, testing, formatting, static analysis and documentation.

5. Because Go is compiled and doesn't require additional components, such as a Java Virtual Machine, it's easy to distribute. This eliminates the headache many developers face with other languages that can run in development, but not in production.

While Go has several advantages for cloud programming -- and seems to be the programming language du jour -- there are times when other scripting languages are better options. For example, if you have to manage a lot of data, you might want to use Python and a package designed for manipulating data, such as pandas.

About the author:
Dan Sullivan holds a master of science degree and is an author, systems architect and consultant with more than 20 years of IT experience. He has had engagements in advanced analytics, systems architecture, database design, enterprise security and business intelligence. He has worked in a broad range of industries, including financial services, manufacturing, pharmaceuticals, software development, government, retail and education. Dan has written extensively about topics that range from data warehousing, cloud computing and advanced analytics to security management, collaboration and text mining.


Next Steps

Making career gains with Java and the cloud

Building apps in Windows Azure

Open source cloud development made easy

Dig Deeper on Java development