
Getty Images
10 cloud programming languages developers need to know
Cloud programming languages are not one-size-fits-all. Learn about the top cloud programming languages, and use our expert criteria to choose the best language for your workloads.
Cloud computing programming can take many forms. Whether it's developers creating a cloud-native application or administrators developing a script to automate cloud-based resources, cloud programmers have their hands full.
For programmers to perform their jobs effectively, they need to operate with the correct programming language. Since a programming language caters to a specific purpose, it's vital to know and understand how to use the right language for a given task.
Learn more about the most popular cloud programming languages, according to market research. Explore the details of some popular programming languages and their use cases, and use the criteria below to select the best language.
The top cloud programming languages
When choosing a cloud computing programming language, organizations should evaluate the following 10 options.
JavaScript
For the development of rich, HTTP-based clients that need access to a swath of cloud services, such as Azure Blob Storage or secure authentication through Amazon Cognito, client-side JavaScript is the best option.
The evolution of JavaScript has largely eliminated the need to implement a complex, RESTful middleware layer, where glue code that runs on an application server provides the client tier with access to back-end resources. JavaScript can interact directly with managed cloud services.
For many organizations, client-side JavaScript might be the only language they need. Since every browser supports it, developers can render an application written in JavaScript on any laptop, phone, tablet, smart TV or desktop computer. Rich web development frameworks, such as ReactJS and AngularJS, simplify the development of responsive web applications that interact asynchronously with cloud-based resources.
However, JavaScript does have its limitations, such as security. A web browser's basic username and password authentication mechanism is not as trusted and secure as the cryptographic key handshake required by an SSH connection.
Most organizations require access keys or SSH connections to provision cloud-based infrastructure programmatically. Client-side JavaScript is a good fit for the consumption of cloud-based resources by user-facing applications. For automation and resource provisioning, a server-side language is required.

Node.js
If developers universally use JavaScript to write browser-based code on the client, why shouldn't they also use JavaScript to write server-hosted code? Node.js and npm turn JavaScript into a viable cloud programming language.
Node.js is ideal for microservices development and deployment because npm provides a simple mechanism to add RESTful API support, connectors to data-tier resources and utility libraries that simplify regular tasks and functions.
Node.js enables organizations to unify client-side and server-side cloud tasks. Also, Node.js and its support for JavaScript are attractive to organizations that want a single language that works across many use cases.
However, code that runs on a VM, like the Chrome V8 engine, never performs as well as close-to-the-metal languages, such as Go, Rust or C. In situations where every megabyte of memory counts, Node.js applications can be less than optimal.

Python
Python is popular with developers because it supports imperative programming. This enables developers to write simple, succinct functions that perform complex logic. These functional methods can also interact with external systems without the ceremony and code verbosity associated with object-oriented programming languages, like Java.
With Python, developers can quickly write scripts that provision infrastructure with vendor SDKs. The major cloud vendors provide SDKs for Python; when cloud platforms release new features, the Python SDK is prioritized for updates.
Python is also a favorite language among data scientists and AI development teams. For organizations that use AWS AI services or Google's machine learning (ML) tools, it makes sense to use Python-based SDKs to interact with cloud-based services.
C
C is fast and efficient. It interfaces with a CPU kernel directly without the abstraction layers associated with other languages, like Java. OSes, hardware drivers, hypervisors, GPUs that mine bitcoin, load balancers and virtualization tools are often written in C -- or C++, a closely related language. C suits workloads that prioritize optimization and efficiency.
All major cloud vendors provide full SDK support for C. For those who want to develop software for the cloud, C is the language to learn. Developers primarily use C to write the behind-the-scenes software that supports the cloud.
Go
Go has a syntax similar to C. Like C, developers can compile it into abstraction-free binaries that communicate directly with a server's CPU or GPU. But Go, also known as Golang, includes features not found in C, such as automatic garbage collection and memory protection.
Go is also the language used to create Terraform. Along with AngularJS, Red Hat used Go to build its OpenShift Container Platform. Any developer who wishes to contribute to open source projects, like Terraform; extend OpenShift Container Platform; or customize their Docker and Kubernetes implementations at the source-code level needs to know Go.

All major cloud vendors provide a Go SDK to interact with their IaaS APIs so users can provision infrastructure and automate cloud-based management tasks. Also, developers can use a JavaScript conversion tool to create browser-based applications in Go.
.NET
Microsoft's .NET framework plays the same role as the Java platform in terms of cloud. Since .NET is Microsoft's development platform, there are over 100 cloud services from Microsoft that natively support .NET.
.NET is a proven middle-tier framework with connectors to every type of back-end resource. This makes it a great choice for the development of microservices and RESTful APIs that glue together various parts of an organization's infrastructure. In the same way the Java platform supports many alternative languages, including Kotlin, Scala and Groovy, the .NET framework supports several, including C#, Visual Basic .NET, C++ and F#.
Java
Java has long been at the top of developers' lists because it is cross-platform and object-oriented. It is a reliable and practical language for creating cloud-native microservices. Certain Java frameworks, such as Spring Boot and Eclipse MicroProfile, have even standardized and simplified the development of cloud-native apps using Java.

Java has been actively developed for so long that connectors and drivers exist for every server-side technology, such as a legacy database, mail server, document store or file system driver. This makes Java the ideal choice to create applications that can glue together different parts of an enterprise architecture.
Many organizations already have a pool of talented Java developers on staff. With Java SDKs available from each major cloud vendor, there's no need to have staff learn a new language if they use Google Cloud or AWS APIs in automation scripts or continuous delivery pipelines.
Kotlin
Most handheld devices run Android. For developers interested in developing Android apps that integrate with cloud-based resources, Kotlin is a good choice.
AWS is the only major cloud vendor that offers an SDK specifically for Kotlin. However, Kotlin runs on Java Virtual Machine and can access any Java SDK API. Organizations that create Android apps with Kotlin can use those same development skills to programmatically manage their cloud-based resources.
Swift
For Apple products, Swift is iOS' version of Kotlin. Not all vendors provide a Swift SDK; however, IBM Watson and AWS provide a Swift SDK for iOS developers.
For platforms where a Swift SDK does not exist, developers can call RESTful APIs that provide access to cloud-based resources. Or they can write their own code in a supported SDK, like Python or Node, and have their Swift apps call those routines directly.
Rust
Rust is a close-to-the-metal programming language that can match the performance and efficiency of C. Special language constructs make bugs related to memory management less likely to occur, which is a big plus if the goal is to safely enhance the OSes that the cloud runs on.
Amazon, Microsoft, Dropbox and Discord have all experimented with Rust, and each of the major public cloud providers now offers a Rust SDK. While Rust might not be the best choice for mature organizations with expertise in other languages, the enthusiasm for the language continues to grow.
Language selection criteria
Organizations should take these four factors into account when choosing a cloud programming language:
- Cloud clients and services. Ask: "Which types of clients will I create?" and "Which types of cloud-based services will I access?"
For example, a VR headset that needs IBM Watson's ML capabilities has different language requirements than a simple iOS app that pulls images out of Alibaba's Object Storage Service. - Targeted cloud stack layer. Developers should determine whether they require a general, all-purpose programming language that does a variety of things well or one that targets a specific technology.
Node.js and .NET are all-purpose platforms that enable developers to provision IaaS, develop cloud-native microservices and access AWS, Microsoft Azure or Google Cloud services. But more specialized tasks, like creating a custom resource definition for Kubernetes, require a specific language, like Go, Java or Python, that Kubernetes supports for this purpose. - Familiarity. IT and development teams don't always have to leave their comfort zone. Sometimes, the best strategy is a familiar one.
Avoid the hype around certain programming languages. Many developers tout Python as the preferred language for data science and AI, but it's not a requirement. Every cloud-managed AI and ML service, such as Google Cloud AutoML and Oracle Cloud Infrastructure Forecasting, supports various languages. There's no need to teach Python to an established team of Java developers to work with AI and ML in the cloud. Use the talents you have. - Risk aversion. Organizations must determine their comfort with risk for specific workloads.
For example, Rust is a programming language that developers can use at almost every layer of the cloud stack. However, the Rust for Linux project has not yet integrated any code into an official kernel build, and SDK support from the predominant cloud vendors is not universal. If an enterprise wants to avoid risk, it is a better option to choose a more established language.
Editor's note: This article was originally written by Darcy DeClute and expanded by Chris Tozzi.
Darcy DeClute is a technical trainer and Agile coach who helps organizations apply Scrum-based principles to adopt a modern DevOps stack. She is a certified Professional Scrum Master, Professional Scrum Developer and Professional Scrum Product Owner, as well as author of Scrum Master Certification Guide.
Chris Tozzi is a freelance writer, research adviser, and professor of IT and society. He has previously worked as a journalist and Linux systems administrator.