Programming Languages @ GOTO Chicago 2016

September 7, 2016

From Modern C++ to Go to Elm, the Programming Languages track covered a lot of topics in just one day at GOTO Chicago 2016!

Watch the videos of the conference sessions in the Programming Languages track below.

Using Modern C++ In Anger

with Todd Montgomery, Co-Author and Co-Maintainer of Aeron

C++ has been undergoing quite a lot of change in the last several years – C++11, C++14, and even C++17. These changes present opportunities for new designs and behaviors. But, how do these new opportunities actually pan out when the project is non-trivial, extremely performance sensitive, and has to interoperate with other languages? Aeron is a high performance messaging transport that provides a C++ API that transparently interoperates with its Java API. In this session, we will talk about the challenges faced with the use of C++11 in Aeron and the lessons learned. Whether you are just curious about modern C++ or are an experienced C/C++ developer, this session will provide some new information.

Download the slides

[bctt tweet=”Watch @toddlmontgomery discuss Using Modern C++ In Anger at @GOTOchgo”]

Go tooling in action

with Francesc Campoy Flores, Senior Developer Advocate at Google Cloud Platform

Go is a successful programming language. Unlike others, its success can’t be attributed to a very wide range of features. It’s rather the opposite: what makes Go successful is in part its simplicity. Go’s simplicity has an effect on what the Go community appreciates and also feeds the growth of a very diverse ecosystem of tools.

This talk covers some of those tools from the very well known gofmt to some less known as oracle, recently renamed as guru. We will first classify the existing tools, then demonstrate how they can be used to improve the quality and efficiency of Go code, and finally propose areas where new tools could be created. The talk doesn’t require a deep understanding of Go, but some basic knowledge of it will be useful to understand the code examples.

Download the slides

[bctt tweet=”#Golang tooling in action with @francesc at @GOTOchgo”]

Adventures in Elm

with Jessica Kerr, Polyglot Functional Developer

What do you get when you combine strict functional programming with heavy user interaction? Challenges, and unexpected freedoms. Elm is a purely functional language for the browser. It compiles to JavaScript — after enforcing immutability, types, semantic versioning, and tight boundaries for user and server interactions. Working within these restrictions, I find my programming principles turned upside down. Small components? who needs them. Global state? no problem. New principles emerge instead: events, reproducibility, kindness in times of error. This session gives an overview of Elm, then focuses on the Elm Architecture: how it overturns what is essential in object-oriented and even backend functional programming.

Download the slides

[bctt tweet=”Join @jessitron for Adventures in #Elmlang – watch the video from @GOTOchgo 2016″]

The Miracle of Generators

with Bodil Stokke, Lead Web Developer at Trading Technologies

The ECMAScript 2015 specification introduced iterators, which generalise iteration over common data structures, as well as providing an interface for allowing you to iterate over any custom data structures using common language constructs. ES2015 also introduced generator functions, which make writing arbitrary iterators a lot easier and less boilerplatey.

But generators aren’t just for making simple iterators over data structures. Because they’re bidirectional—they don’t only produce output, they can also take input—they’re actually coroutines, which means there’s no end to the sort of fun you can apply them to. We’re going to explore how we can use them to make asynchronous programming in JavaScript a lot more elegant—to chart a path out of callback hell. And then we’re going to take a look at what we’ve really discovered: one of the most fearsome mysteries of computer science, suddenly laid bare before us.

[bctt tweet=”The Miracle of Generators with @bodil – watch the video from her talk at @GOTOchgo”]

A Peek Inside Erlang’s OTP

with Steve Vinoski, Co-Author of Designing for Scalability with Erlang/OTP

Erlang’s OTP is the foundation supporting the design, implementation, and deployment of Erlang-based systems. OTP provides tools, libraries, and a set of elegant design principles embodied in generic behaviors, which are frameworks providing common domain-independent services to Erlang-based applications. In this talk, Steve takes you on a tour of the inner workings of OTP, explains its fundamental principles along the way, and shows how you can use OTP behaviors and tools in your own applications. Attendees need not have any prior knowledge of Erlang or OTP.

Download the slides

[bctt tweet=”Watch @stevevinoski share A Peek Inside #Erlang’s OTP at @GOTOchgo”]

Scala: The Unpredicted Lingua Franca for Data Science

with Dean Wampler, Big Data Architect at Lightbend

It was true that, until pretty recently, the language of choice to manipulate and to make sense out of the data for Data Scientists was mainly one of Python, R or Matlab. This lead to split in the communities and duplication of efforts in languages offering a similar set functionality.

Although, it was foreseen that Julia (for instance) could gather parts of these communities, an unexpected event happened: the amount of available data and the distributed technologies to handle them. Distributed technologies raised out of the blue by data engineer and most of them are using a convenient and easy to deploy platform, the JVM.

In this talk, we’ll show how the Data Scientists are now part of an heterogeneous team that has to face many problems and have to work towards a global solution together. This is including a new responsibility to be productive and agile in order to have their work integrated into the platform. This is why technologies like Apache Spark is so important nowadays and is gaining this traction from different communities. And even though some binding are available to legacy languages there, all the creativity in new ways to analyse the data has to be done in scala. So that, the second part of this talk will introduce and summarize all the new methodologies and scientific advances in machine learning done Scala as the main language, rather than others. We’ll demonstrate that all using the right tooling for Data Scientists which is enabling interactivity, live reactivity, charting capabilities and robustness in Scala, something there were still missing from the legacy languages. Hence, the examples will be provided and shown in a fully productive and reproducible environment combining the Spark Notebook and Docker.

Download the slides

[bctt tweet=”#Scala: The Unpredicted Lingua Franca for #DataScience with @deanwampler at @GOTOchgo”]