David CrespoE. DunhamHadi HaririAshley McNamara

Emerging languages: Kotlin, Rust, Elm, and Go

Date: This event took place live on May 10 2016

Presented by: David Crespo, E. Dunham, Hadi Hariri, Ashley McNamara

Duration: Approximately 4 hours.

Questions? Please send email to


New programming languages appear with such frequency that it's difficult to know which are going to stay around, be worth learning, and prove useful for the work you do. In an online conference inspired by the Emerging Languages track at the upcoming O'Reilly Open Source Convention (May 16–19 in Austin, TX), you'll get the lowdown on four relative newcomers—Kotlin, Rust, Elm, and Go. You'll find out why each was developed, see where its particular strengths (and weaknesses) lie, and learn what you need to know to start using these languages in your own projects.

Kotlin - Ready for production
Hadi Hariri

When JetBrains unveiled Project Kotlin (a new language for the JVM) in 2011, it had already been under development for nearly a year. Fast-forward to the present, on the brink of Kotlin's first release, and you may be surprised to learn that it's been used in production for some years now. Both inside and outside of JetBrains, people are deploying Kotlin applications for Android OS, web applications, and many other uses. They choose Kotlin for its significant gains in conciseness, readability, and safety—without the drawbacks that adopting a new language brings (e.g., a higher learning curve or lack of interoperability with existing code and ecosystems). Hadi Hariri offers an introduction to Kotlin and uses a problem-solution approach to demonstrate how it can help you in your daily development.


About Hadi Hariri

Hadi Hariri is a developer and creator of many things OSS. Hadi's passions include web development and software architecture. He has authored a couple of books and a few courses and has been speaking at industry events for nearly 15 years. Currently at JetBrains leading the Developer Advocacy team, Hadi spends as much time as he can writing code.

Starting Rust from a scripting background
E. Dunham (presenting at OSCON)

As one of the most recently developed systems languages in use today, Rust builds on years of academic research to offer systems programmers guarantees that older languages could only dream of. For coders who have focused on higher-level languages like Python and JavaScript, however, the systems programming challenges that Rust addresses can seem totally alien. E. helps you understand how systems languages differ from scripting languages, what trade-offs you make when choosing a systems language, and how to hack without fear on your first Rust project.


About E. Dunham

E. Dunham is the DevOps engineer for Mozilla research, which means E. shepherds servers for the Rust language and Servo browser engine build and release infrastructure while getting a behind-the-scenes tour of the magical worlds of compiler and browser engine design. An alum of the OSU Open Source Lab, E. adores teaching the world about open source tools and techniques and occasionally finds time for hobbies, including carpentry, gardening, and enjoying Oregon's outdoors.

Folding time with signals in Elm
David Crespo (presenting at OSCON)

Elm is a functional language for interactive web apps that compiles to JavaScript—think Haskell but for humans. With its signal abstraction, Elm is able to represent values that change over time at the level of its powerful type system. By making time (and indeed all input) explicit, Elm lets you write purely functional, stateless UI code that's easy to reason about and hard to break. This idea—coding UI as pure functions on a stream of input—is sometimes called functional reactive programming (FRP), and a version of it powers popular web frameworks like React. Elm's version of FRP is much stronger: unlike in JavaScript, all values are immutable, and all functions are pure. But if that's true, how can you actually do anything? Any interesting program has to have some kind of persistent state. David Crespo answers the question using live coding and gives a tour of Elm's aha moment: folding time.


About David Crespo

David Crespo is a frontend engineer working on commerce at Braintree.

Building amazing cross-platform command-line apps in Go
Ashley McNamara

Once thought relics of a mouseless age, command-line interfaces (CLIs) are making a huge comeback in a new and evolved form. Go is an excellent platform for CLI development due to its raw power, easy syntax, and painless distribution. Ashley McNamara teaches the techniques, principles, and libraries that you need to build great CLI apps. You'll learn how to create user-friendly command-line interfaces and command suites and will reinforce your knowledge by building your own app. By the end of Ashley's talk, you'll have a working knowledge of Go and your very own functioning CLI app.


About Ashley McNamara

Ashley McNamara is director of technical communities at ObjectRocket by Rackspace, where she acts as a bridge between third-party developers and Rackspace, driving platform adoption through the developer community and driving change into products based on real-world customer and developer feedback. This involves traveling the world for conferences, organizing events, helping with developer support, building applications that consume Rackspace's services, teaching workshops, participating in hackathons, and pursuing any other opportunities to interact with developers to understand their needs and deliver the solutions they need.