Description:
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.
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.
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.
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.