Cloud computing programming comes in many forms. For backend developers, this can mean developing cloud-native applications or continuously providing a set of interconnected microservices. For administrators, this may mean deploying a script that automatically configures cloud-based resources. For web developers, this might mean developing Angular or React apps that use cloud-hosted resources.
To choose the cloud programming language that best suits your needs, carefully consider the following selection criteria. Next, explore the details of some popular programming languages and their use cases.
language selection criteria
Organizations should consider the following four factors when choosing a cloud programming language:
- Clients and cloud services
- goal shy made a team
- The knowledge
- risk aversion
Clients and cloud services
The first step in determining which programming language is right for you is to ask what kind of client you want to build and what type of cloud-based service you want to access.
For example, virtual reality (VR) requires a headsetIBM WatsonA machine learning (ML) function has different language requirements than a simple iOS app that pulls images from Alibaba's object storage service.
goal shy made a team
Another consideration is whether you want a general-purpose programming language that performs a variety of tasks well or a technology-specific language.
"Choosing the right language to develop your application depends on where you're building in the stack," said Rob Strechay, senior cloud and infrastructure analyst at TechTarget's ESG.
For example, Node.js and .NET are common platforms that allow developers to provide IaaS, developCloud Native Microservicesand access AWS, Microsoft Azure, or Google Cloud services. But you can't use these languages to improve the Linux kernel that runs most cloud infrastructure. You also cannot extend Docker or Kubernetes runtimes with Node.js or .NET. For these layers of the cloud stack, only C and Go are valid choices.
IT and development teams don't always have to leave their comfort zones. Sometimes it's best to leverage your existing knowledge of a given platform or framework. For example, if you already have strong Java or .NET skills, this is a compelling reason to choose Java or .NET.
Also, avoid the hype surrounding certain programming languages. For example, many developers tout Python as the language of choice for data science and artificial intelligence, but it doesn't have to be. All cloud-managed AI and ML services, such as Google Cloud AutoML and Oracle Cloud Infrastructure Forecasting, support multiple languages.
You don't need to teach Python to an established team of Java developers just to use AI and ML in the cloud. Use the talents you have.
Finally, the organization must determine its risk tolerance. Rust, for example, is a programming language that developers can use at almost any level of the cloud stack. However, the Rust for Linux project has yet to integrate any code into an official kernel release, and software development kit (SDK) support from major cloud vendors is not widespread. If a company wants to avoid risks, choosing a more mature language is a better choice.
Features and use cases of cloud programming languages
When choosing a cloud computing programming language, organizations typically evaluate the following 11 options.
Node.js is great for developing and deploying microservices because npm provides an easy mechanism to addRESTful APISupport, data layer resource bindings, and utility libraries that simplify commonly performed tasks and operations.
However, code running in a VM (eg the Chrome V8 engine) can never perform as well as a near-metal language like Go, Rust, or C. Where every megabyte of memory counts, you might notice that your Node.js application lacks the runtime optimizations you need.
Python is popular with developers because it supportsimperative programming. This approach, also known as functional programming, allows programmers to write simple, concise functions that perform complex logic. These functional methods can also interact with external systems without the ceremony and verbiage associated with object-oriented programming languages like Java.
Using Python, developers can quickly write infrastructure provisioning scripts using vendor SDKs. All major cloud vendors provide Python SDKs. when the cloud platform releases new features, the Python SDK is updated first.
Python is also the language of choice among data scientists and AI development teams. For organizations using AWS AI services or Google ML tools, it makes sense to use the Python-based SDK to interact with cloud-based services.
"Python allows me to do the data science work that I want to do," Forrester said. "It's a lingua franca and very easy to learn."
However, Forrester notes that a language like R or Julia might be better suited for developers who want "a deep dive into data science." SDK support for R and Julia is generally not available from cloud providers.
C language is fast and efficient. It interacts directly with the CPU cores without going through an abstraction level language like Java. Operating systems, hardware drivers, hypervisors, GPUs for Bitcoin mining, load balancers, and virtualization tools are typically written in C and C++. C is the key when optimization and efficiency are top priorities.
All major cloud vendors provide full SDK support for the C language, although C's role in the cloud world extends far beyond being able to call IaaS and PaaS APIs. Developers mainly use C to write their cloud-enabled backend software. C is the language developers need to know if you want to develop cloud software.
I am going
Go's syntax is similar to C. Like C, it also allows developers to compile it into an abstraction-free binary that communicates directly with a server's CPU or GPU. But Go (aka GoLang) includes additional features not found in C, such as automaticdaily renovationand memory protection.
"Docker and Kubernetes are both written in Go, and that alone is a good reason to learn Go," Forrester said.
It is also the language used to create Terraform. Along with AngularJS, Red Hat uses it to build the OpenShift container platform. Any developer who wants to contribute to open source projects like Terraform, extend the OpenShift container platform, or customize Docker and Kubernetes deployments at the source code level needs to know Go.
But Go isn't just for open source projects.
"GoLang is the lingua franca not only in the open source community, but also in large companies and startups," Strechay said. "For example, some AWS services are written in GoLang under the hood. GoLang is very popular because it's developer-friendly, very powerful, and still very efficient."
Java has long been the top choice among developers because it is cross-platform and object-oriented. It is a stable and practical language for building cloud-native microservices. Java frameworks such as Spring Boot and Eclipse MicroProfile have been standardized and simplifiedCloud-native application development.
Java has been actively developed for so long that there are links and drivers for any server technology, such as legacy databases, mail servers, document stores, or file system drivers. that makesPerfect for JavaBuild applications that glue together different parts of an enterprise architecture.
Many organizations already have a pool of talented Java developers. With Java SDKs available from all major cloud providers, there's no need for your staff to learn a new language if you want to use Google Cloud or AWS APIs in your automation scripts or applications.Continuous delivery pipe.
For more than 20 years, Microsoft's .NET platform has been in constant competition with the Java platform. On the cloud side, the .NET framework plays the same role as the Java platform, with the key difference being that the target group is Microsoft developers. Since .NET is Microsoft's own development platform, Microsoft has more than 100 cloud services that natively support .NET.
Like Java, .NET is a well-proven middle-level framework with connections to all types of back-end resources. This makes it a great choice for developing microservices and RESTful APIs that stitch together parts of an organization's infrastructure. Similarly, the Java platform supports many alternative languages, including Kotlin, Scala, and Groovy, and the .NET Framework supports many languages, including C#, VB.NET, C++, and F#.
other notable languages
PHP, Ruby, and Perl are still popular for server-side web application development, but are not as widely used as Java or Python for microservices development or cloud-based provisioning.
None of the major cloud providers support Perl through an official SDK, only AWS provides official SDK support for Ruby and PHP. There is no official Perl, Ruby or PHPSDK on Azure.
All IaaS providers offer .NET SDKs for integration. For organizations that already use .NET, it makes sense to continue using .NET in the cloud.
Most mobile devices run Android. Kotlin is a good choice for developers interested in developing Android apps that integrate with cloud resources.
None of the major cloud vendors have built SDKs specifically for Kotlin. However, it runs in the Java Virtual Machine and can access any Java SDK API. Organizations building Android apps using Kotlin can use the same development skills to programmatically manage their cloud-based resources.
For Apple products, Swift is to iOS what Kotlin is to Android. Not all vendors provide a Swift SDK. IBM Watson has a Swift SDK for iOS developers and AWS has onealpha versionThe Swift SDK will be available in August 2021.
For platforms where there is no Swift SDK, developers can call RESTful APIs that provide access to cloud-based resources or write their own code in a supported SDK, such as Python or Node, and have their Swift apps directly to call these routines.
Unity is best suited for developing VR applications that use ML and visual recognition techniques to bring gameplay to life in virtual universes. As a platform, Unity supports many languages, including C#, UnityScript, and Boo.
IBM is the only cloud vendor with an SDK specifically for the Watson Unity platform, though you can expect more partners in the future to combine VR, AI, ML, and cloud computing power into a single offering.
While C has been the primary programming language for Linux since the beginning of the OS project, many in the kernel development community felt it was time for a new language: Rust.
Rust is a near-metal programming language that rivals C in performance and efficiency. Special language constructs make memory management-related errors less likely to occur, which is a big advantage if the goal is to safely improve the operating system the cloud runs on.
"Rust is popular for lower-level development where execution speed takes precedence over flexibility or ease of use," Strechay said.
Amazon, Microsoft, Dropbox, and Discord have experimented with Rust. Google created an Android port of Rust, and Amazon released a preview version of the AWS Rust SDK in December 2021. Other vendors have yet to follow suit, but where vendors have fallen short, open source projects have prevailed. While it may not be the best choice for established organizations with expertise in other languages, enthusiasm for Rust continues to grow.