Rustconf 2016 – What Was Cool And What Surprised Me
At AgilData, we’re building an upcoming product in Rust so we are pretty heavily invested, which is why I was more than excited to attend the first ever annual Rust conference this past weekend (9/9-9/10). If you don’t know about Rust already, it is a modern systems programming language that is well placed (in my opinion) to become the successor to C and C++. Some of the main benefits of Rust are:
• Memory-safety without the overhead of garbage collection (no more segmentation faults!)
• Thread-safety thanks to the advanced borrowing system (no more data races!)
• Zero-cost abstractions when calling C code (and for many other things)
• Traits, generics and functional programming for concise and productive coding
• Well-suited for embedded development as well as for enterprise systems
As I said, we are deep into our Rust investment and our development team has successfully made the transition from a mostly Java/Scala team, to a productive team of Rustaceans, as we are called in the community. We even have T-shirts already so you can tell us apart. The transition wasn’t easy as there was a fairly steep learning curve along the way and we had to learn to look at some problems through a different lens, but we made it through the journey relatively unscathed and have lot’s to share about the process.
As part of building this product, we are open sourcing an extensible and scalable proxy server for MySQL and MariaDB that utilizes tokio-rs and futures-rs. Although the code is already available on Github, we’ll be officially announcing this product with a separate and more detailed blog post later this week highlighting the capabilities of the project and providing some performance metrics.
Rust Engineering Transformation Services. Contact Us.
Given our investment in Rust, I naturally wanted to attend Rustconf and soak up as much knowledge as possible. I especially wanted to learn if we are doing things “The Rust Way” so I took the intermediate Rust training class covering traits and generics, since that seemed the most relevant class to help with our immediate needs. The class certainly helped solidify my understanding of some aspects of traits and has inspired me to re-evaluate our use of enums in some cases where traits and generics are potentially a better fit. This was also a subject covered in detail in the “Using Generics Effectively” talk by Without Boats, which I found very helpful.
Alex Crichton’s “Back to the Futures” talk was also very valuable to gain a deeper insight into the inner workings of the futures framework.
I can’t talk about the conference itself without a shout-out to Liz Baillie for the most entertaining conference talk I have ever attended, titled “The Illustrated Adventure Survival Guide for New Rustaceans”. I look forward to the videos of all of the talks being available online so I can share them with you and my team.
As an extra bonus while attending Rustconf, I attended the Tokio Hack Night hosted by customer.io and learned more details about the Tokio framework from Carl Lerche, the framework’s author. During the hack night I was able to upgrade our MySQL proxy to use the 0.1.0 release of tokio-core that had just been pushed to crates.io earlier that day. There’s nothing like being able to sit down next to the author of the framework to get help using it.
Big Data Services are available at AgilData to help with your project. Contact Us.
Here are some of my takeaways from the Rustconf 2016:
• I was surprised and impressed by the quality of this show’s organization and content delivered by the speakers. Impressive for a first year event. Kudos to the event organizers Leah and Crystal!
• The year ahead should see some big advances in productivity improvements, particularly with IDE support thanks to the new Rust Language Service.
• Rust is gearing up to be particularly suitable for building scalable asynchronous io and getting Rust onto servers is a great way to drive adoption of the language
• The Rust community is full of friendly developers that are excited about the language and happy to help others out
• I was surprised at the size of the conference. It was a large turnout for the first ever annual conference for a language that I didn’t even know existed one year ago.
• Many developers that I talked with are using Rust for side-projects right now, ranging from hobby projects to writing useful tools and utilities at work. This is a great way to build experience before committing to using a new language for mission-critical deliverables.
• We’re excited to be the first open source project on crates.io that depends on tokio-core. More on this in our next blog about that project.
Get started with a free estimate. Contact Us
Adopting Rust for a core product was not a decision that we took lightly. Although I personally have experience with systems programming languages (C and C++), I have been working at an architect level with Java since just before the 1.0 release some 20 years ago and have become accustomed to the convenience of object-orientation and garbage collection. With this background, I was initially hesitant at moving to a systems level programming language with all of the training implications involved. However, after experimenting with Rust on a number of internal PoC projects and then on our open source Spyglass project earlier this year, we were able to gain confidence in our ability to adopt the language. Attending Rustconf has given me extra confidence that we have made a good choice.
If you want to learn more about Rust, the best places to start are https://www.rust-lang.org/ and http://rustbyexample.com/. I highly recommend checking Rust out and maybe I’ll see you at Rustconf 2017!