Go vs. Rust: Making the Most of New Tech

March 06, 2015 Data & AI

Enterprise software development demands a continual influx of new technologies and techniques to stay relevant. Yet an open, “in with the new” policy must be balanced against temptations to throw everything “out with the old.”

Adopting new programming languages advocated by your app dev team can be an easier process. Look to see if the projects up for review have been sourced and tested by an active, involved community of developers. Then make sure you have the right environment to support the new without uncoupling what still works.

Old and New

When it comes to developers’ tools of the trade—programming languages—older, and familiar, technologies are still relevant. Many heritage applications built or customized by enterprises work pretty well, thank you very much. Upgrading them, if such a term applies, might mean making them more accessible through the devices we use today—tablets, smart phones, kiosks and touch screen—or creating new, smaller user applications out of larger, more complicated systems to increase productivity.

The Go programming language. Image created by Renee French.

However, a wide range of both general-purpose and task-specific alternatives has been popping up lately. This expansion has been driven by the need for device-independence, rapid development and the cloud.

Go (also called golang) is a programming language, first announced and initially developed in 2007 by three employees at Google with syntax loosely derived from C. Go provides things like garbage collection, type safety, and dynamic-typing capabilities as well as key-value maps and large standard libraries.

Beginning as a research project and incorporated into many Google products, Go was made publicly available in 2009 as ad open source project until March 2012. At that time, Go 1 was issued as a stable distribution maintained by an author team that accepts contributions from the public.

The Rust programming language.

Unlike Go, Rust was developed entirely in the open with lively community interaction. A community project sponsored by Mozilla, Rust is focused on the creation of large client and server programs that run over the Internet. Thus, it has features that focus on safety, control of memory layout and concurrency.

The current Rust package was sourced from developers from all over the US, including the University of Illinois at Urbana-Champaign and the Free Software Foundation. Project updates and extensions are available on GitHub.

Developers Trust Rust

While Go has been used to develop lots of exciting new technologies like Docker and MongoDB, Rust is winning favor among developers who have tested the two systems against each other. In such tests Go is often found lacking.

Developers familiar with C++ are lauding Rust for its safety features, which significantly reduce or eliminate slowdown at runtime—a well-known flaw in C++ coded software that can expose serious, damaging security vulnerabilities. Rust combats this issue by extensive compile-time checking and natural language error messages designed to help developers quickly fix mistakes.

Rust is also earning its reputation on its constrained type system, which gives programmers “generics”; that is, inherent code values that can be reused for many different application functions. Such explicitly constrained values also reduce runtime overhead, help reduce programming errors and lower the number of times app devs have to reach for pain relievers.

PaaS Enables Both New and Old Tech in the Enterprise

New Platform as a Service (PaaS) solutions enable businesses to deliver enterprise applications quickly and easily with reduced cost, high productivity and a higher level of control. However, your PaaS solution should also be updating along with your application developers—testing and running the latest programming languages and techniques in real world environments.

Progress is constantly in search of ways to enhance development and deployment capabilities for our ecosystem. Our PaaS environment provides a breadth and depth of application development, testing, management and deployment tools ready to meet your business challenges.

Learn More

To chat more about business application development, give me a shout on Twitter or fill out our short contact us form and we’ll get back to you. 

Paul Nashawaty

As the senior director of product marketing and strategy for the Progress solutions and audience marketing team, Paul Nashawaty keeps his eyes peeled on what enterprises are doing about big data as it relates to digital transformation. Paul is responsible for applying practical business methodologies using technological solutions to drive success in organizations.