In its own words, Rust is “a language empowering everyone to build reliable and efficient software.” Since its release in 2014, Rust has repeatedly been voted one of the most-loved programming languages on the StackOverflow survey in 2016, 2017, 2018, 2019, 2020 and 2021. While it was first introduced as a systems-programming language, Rust has since moved on to be used as a more general-purpose language, promising speed, safety and reliability. However, is Rust ready for an enterprise usage or does it still have some wrinkles to iron out?
This Birds of Feather (BOF) session will explore the following aspects of Rust language, the ecosystem surrounding it, and its readiness for enterprise adoption:
- What are some of simple and most used pathways for Rust adoption in enterprises?
- How does Rust work in combination with other languages given that enterprises have legacy stacks?
- What is lacking in Rust as a language and in the ecosystem’s maturity?
- What are the practical ways to inculcate/reinforce systems’ thinking around Rust (and programming languages) instead of looking at a language for what it is?
- What is underway to improve the enterprise software development experience - including tooling, deployment, testing frameworks, security engineering, etc - with Rust?
- How do we help new developers in enterprises to get started with their journey with Rust? What are the resources - community, educational resources, etc - and advice on first steps available to enterprise developers as they begin their journey?
Is Rust language ready for enterprise adoption - summary of BOF held at India FOSS 2.0
With many enterprises exploring1 the possibility of including Rust language into the design of products and services, it becomes important to discuss some of the factors which can swing this decision. Designed as a Birds-of-Feather (BoF) session, this brings together developers, senior leaders and interested members who discuss some of the key points which influence the decision.
The invited participants in the BoF session were:
- Vinay Keerthi, lead software engineer for data engineering at Merkle Science
- Rakshith Ravi, VP of engineering at Vicara
Vinayak Hegde - CTO-in-Residence at Microsoft for Startups - moderated the discussion.
Rust language is popular. Apart from the heavy usage in applications, services and products dealing with cryptocurrency, the programming language is also the go-to when designing application CLIs or backend. Designing ship-ready services which are measurably fast or need low latency for data transport were some of the examples brought out at the discussion. The discussion appreciated that for some programmers who are transitioning from a different language to Rust, there is going to be a definite period of learning. However, once that is done, building services in Rust language becomes easier.
One important aspect of enterprise adoption of a programming language is that it does not happen in isolation2. It evaluates the presence of a vibrant community, good developer aids like package managers, IDEs and documentation and the opportunities to participate in events for show-and-tell. The participants at the BoF were extremely positive about the Rust language community both in India and global as well as the focus on ensuring that new members feel engaged, involved and welcomed. An example was provided about how even for spaces such as building products around embedded devices - the choice of Rust language did not present any showstoppers. The emphasis was on being able to determine how much of the product/solution stack was controlled by the company and hence amenable to the kind of changes which Rust language would bring about.
Some of the concerns which were brought up include the time taken to ship an artefact built in Rust language. With longer compile times (and that the compiler errors often take time to debug) it is not unusual to have teams being frustrated about the time taken to deploy. And while the community acknowledges this to be an issue which is being gradually addressed - this is something which any business will have to find ways to deal with - especially when deploying critical fixes within strict time windows.
The discussion veered towards the notion that Rust language is now being viewed as being energy efficient - a factor that is important for deployment at scale. And while it isn’t the only programming language which can claim to be efficient, it does so with enough guardrails to prevent security issues around memory safety.
Enterprises need to be careful about adopting a new programming language in their portfolio as it means supporting products/services built with that language over a number of years. The risks associated with such decisions include developer time, productivity as well as the complexity originating from designing for security and privacy. And in some situations, that Rust easily interoperates with existing programming language code (eg. C++) makes it easier for the adoption.
The participants stressed on the need to evaluate the particular end use case before the decision to use Rust language. One reason for this is that certain domains viz. data science work is at this point very unsuitable and a team is likely to have poor developer experience if Rust is selected. On the other hand, there are business and strategic needs e.g. maintaining a specific registry of artefacts, shipping lightweight binaries which are well served through the inclusion of Rust language in the technology stack.
- Evaluate the domain of the product/service
- Assess whether skills, knowledge and capacity exists to become proficient with the language
- Participate in the communities like Rust India (on Telegram)
- Align choice to business requirements
- Contribute back to the community locally - hire, do demos, encourage, sponsor etc
Rootconf is a platform for systems, SRE and DevOps engineers to discuss practical issues and approaches towards building and managing reliable infrastructure. Since 2020, Rootconf has expanded into the following specialized verticals:
- Data privacy - in collaboration with Privacy Mode Rootconf works with organizations and practitioners on discovering and showcasing data privacy practices, including data governance and data security.
- Optimizing costs of cloud infrastructure and cloud security.
- Cybersecurity, including network security, and how organizations - global and domestic - are tackling existing and emerging challenges to build for a safe, accountable and trusted internet.
Hasgeek is a platform for building communities. Hasgeek believes that effective and sustainable communities are built in a modular manner, and with an underlying layer of infrastructure and services that enable communities to focus on the core of their work. Hasgeek provides this infrastructure, and the capabilities for communities to amplify their work and presence.
This summary is composed by Sankarshan Mukhopadhyay, editor at Privacy Mode, and head of editorial strategy at Hasgeek.
Rootconf thanks Rajasekharan Vengalil, software engineer with over 20 years experience, for developing the questions for the BOF, and the topics for the upcoming mini conference on Rust language. Watch editorial updates on hasgeek.com/rootconf for more details.