Getty Images
Cloud computing programming takes many forms. For back-end developers, it might mean the development of a cloud-native app or the continuous delivery of an interconnected set of microservices. For administrators, it might mean the development of a script that automatically provisions cloud-based resources. For web developers, it might mean the development of an Angular or React app that consumes cloud-hosted resources.
To choose the best cloud programming language for your needs, carefully consider the selection criteria below. Then, explore the details of some popular programming languages and their use cases.
Organizations should take these four factors into account when choosing a cloud programming language:
The first step to determine which programming language is right for you is to ask which types of clients you will create and which types of cloud-based services you will access.
For example, a virtual reality (VR) headset that needs IBM Watson’s machine learning (ML) capabilities has different language requirements than a simple iOS app that pulls images out of Alibaba’s Object Storage Service.
Another consideration is whether you need a general, all-purpose programming language that does a variety of things well, or one that targets a specific technology.
“Choosing the right language to develop your application comes down to where in the stack you are building,” said Rob Strechay, a senior cloud and infrastructure analyst with ESG, a division of TechTarget.
For example, 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 you can’t use these languages to enhance the Linux kernel that runs most cloud infrastructures. Nor can you use Node.js or .NET to extend Docker or Kubernetes runtimes. Only C and Go are valid options for those layers of the cloud stack.
IT and development teams don’t always have to leave their comfort zone. Sometimes, it is best to tap into your existing knowledge of a given platform or framework. If you already have strong Java or .NET skills, for example, that is a compelling reason to choose Java or .NET.
Additionally, avoid the hype around certain programming languages. For example, 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, comes with support for a variety of languages.
“Java, Python, JavaScript and .NET have all evolved to support a common, broad standard,” said Michael Forrester, an AWS-authorized instructor at Web Age Solutions, an IT training provider, who specializes in DevOps and ML. “If you started with Java, stick with that. If you started with Python, stick with that.”
There’s no need to teach Python to an established team of Java developers just to work with AI and ML in the cloud. Use the talents you have.
Lastly, an organization must determine its comfort with risk. 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 software development kit (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 establish language.
When choosing a cloud computing programming language, organizations will typically evaluate the following 11 options.
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, in many cases, 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 may 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 a secure shell (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. For automation and resource provisioning, a server-side language is required.
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? That was the conundrum the Node.js project decided to address when it ported the Chrome browser’s V8 JavaScript engine to the server in 2009. Node.js and the Node package manager (npm) turned 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 commonly performed tasks and functions.
Node.js makes it possible for organizations to unify client-side and server-side cloud tasks under one umbrella. Also, Node.js and its support for JavaScript is a good choice for organizations that want a single language that will work across many use cases.
However, code that runs on a VM, like the Chrome V8 engine, will never perform as well as close-to-the-metal languages such as Go, Rust or C. In situations where every megabyte of memory counts, you might find Node.js applications lack the required runtime optimization.
Python is popular with developers because it supports imperative programming. Also known as functional programming, this approach 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 such as 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 ML tools, it makes sense to use Python-based SDKs to interact with cloud-based services.
“Python lets me do the data science stuff I want to do,” Forrester said. “It’s a general-purpose language, and it’s really easy to learn.”
Forrester does make the point, however, that languages like R or Julia may be even better suited for a developer who wants to “get into the weeds of data science.” Cloud providers do not universally provide SDK support for R and Julia.
C is fast and efficient. It interfaces with a CPU kernel directly without the need to move through abstraction layers languages, as with Java. Operating systems, hardware drivers, hypervisors, GPUs that mine bitcoin, load balancers and virtualization tools are most commonly written in C and C++. C is a preferred choice when optimization and efficiency are top priorities.
All major cloud vendors provide full SDK support for C, although the role of C in the cloud world goes far beyond the ability to invoke IaaS and PaaS APIs. Developers primarily used C to write the behind-the-scenes software that supports the cloud. If you want to develop software for the cloud, C is a language developers need to know.
Go has a syntax similar to C. Like C, it also enables developers to compile it into abstraction-free binaries that communicate directly with a server’s CPU or GPU. But Go, also known as GoLang, includes additional features not found in C, such as automatic garbage collection and memory protection.
“Docker and Kubernetes are written in Go, and that alone is a good reason to learn it,” Forrester said.
It is also the language used to create Terraform. Along with AngularJS, Red Hat used it to build its OpenShift Container Platform. Any developer who wishes to contribute to open source projects like Terraform, extend the OpenShift Container Platform or customize their Docker and Kubernetes implementations at the source-code level will need to know Go.
But Go isn’t just for open source projects.
“GoLang is a common development language within not only the open source community but large companies and startups,” Strechay said. “For example, some of the AWS services are written in GoLang under the hood. GoLang is very popular because it is developer-friendly, pretty powerful and still very performant.”
All of the major cloud vendors provide a Go SDK to interact with their IaaS APIs, so you can use Go to provision infrastructure and automate cloud-based management tasks. Also, developers can use a JavaScript conversion tool to create browser-based applications in Go.
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 to create cloud-native microservices. Java frameworks, such as Spring Boot and the Eclipse MicroProfile, have standardized and simplified the development of cloud-native apps.
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 your staff learn a new language if you want to use Google Cloud or AWS APIs in your automation scripts or continuous delivery pipelines.
Microsoft’s .NET platform has competed on steady ground against the Java platform for more than 20 years. In terms of cloud, the .NET framework plays the same role as the Java platform, with the key difference being the target user is a Microsoft developer. Since .NET is Microsoft’s own development platform, there are over 100 cloud services from Microsoft that natively support .NET.
Like Java, .NET is a well-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 as well, including C#, VB.NET, C++ and F#.
PHP, Ruby and Perl remain popular for the server-side development of web applications, but they are not as commonly used as Java or Python for the development of microservices or for the provisioning of cloud-based resources.
Perl is not supported through an official SDK by any of the major cloud vendors, and only AWS provides official SDK support for both Ruby and PHP. There is no official Perl, Ruby or PHP SDK on Azure.
IaaS vendors across the board provide a .NET SDK for integration. For organizations that already use .NET, the continued use of .NET in the cloud makes sense.
Most handheld devices run Android. For developers interested in the development of Android apps that integrate with cloud-based resources, Kotlin is a good choice.
None of the major cloud vendors create an SDK specifically for Kotlin. However, it runs on the 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.
For Apple products, Swift is to iOS as Kotlin is to Android. Not all vendors provide a Swift SDK. IBM Watson provides a Swift SDK for iOS developers, and AWS did an alpha release of its Swift SDK in August 2021.
For platforms where a Swift SDK does not exist, developers can either call RESTful APIs that provide access to cloud-based resources or write their own code in a supported SDK, like Python or Node, and have their Swift apps call those routines directly.
Unity is the best fit for developing VR applications that use ML and visual recognition technology to make gameplay in the metaverse lifelike. Being a platform, Unity supports multiple languages, including C#, UnityScript and Boo.
IBM is the only cloud vendor with an SDK dedicated to the Unity platform for Watson, although you can expect more partnerships that link VR, AI, ML and the computational processing power of the cloud together into a single offering in the future.
While C has been the core programming language for Linux since the OS project started, many in the Kernel development community think it’s time for something new: 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.
“Rust tends to be popular at lower-level development, where speed of execution takes priority over flexibility or ease of use,” Strechay said.
Amazon, Microsoft, Dropbox and Discord have all experimented with Rust. Google did an Android port of Rust and Amazon released an AWS Rust SDK preview in December of 2021. Other vendors have yet to follow suit, but where vendors have fallen short, open source projects have picked up the slack. While it might not be the best choice for mature organizations with expertise in other languages, the enthusiasm for Rust continues to grow.
Even with government money soon headed their way, top-tier semiconductor companies will still have to deal with a range of …
Blockchain has been a significant contributor to the global chip shortage. Explore the role this rising technology has played.
Congress approved the CHIPS Act and billions more for scientific research to help the U.S. better compete against China in …
When security incidents arise — and they will — IT administrators can restore, reset or completely wipe VMs to return them to …
Dan Lorenc reflects on a whirlwind year for his open source project, now officially incorporated into Kubernetes and GitHub’s npm…
AWS and other IT vendors will start building connectors based on a new standard schema meant to streamline data sharing between …
Many organizations struggle to manage their vast collection of AWS accounts, but Control Tower can help. The service automates …
There are several important variables within the Amazon EKS pricing model. Dig into the numbers to ensure you deploy the service …
AWS users face a choice when deploying Kubernetes: run it themselves on EC2 or let Amazon do the heavy lifting with EKS. See …
Background features and processes can often take up precious OS resources. With VMware’s OS Optimization Tool, you can run …
Learn how container management products from VMware, Red Hat and Hewlett Packard Enterprise compare when it comes to their …
Submit your entry for the Best of VMware Explore 2022 Awards for a chance to win.
All Rights Reserved, Copyright 2010 – 2022, TechTarget
Privacy Policy
Cookie Preferences
Do Not Sell My Personal Info