Ruby programs cannot be deployed as executable binaries. Rather, in order to run a Ruby program, you need the Ruby interpreter. This causes problems when you want to deploy programs to customers — they might not have Ruby installed, or they might not have the right version. A new version of ruby, known as mruby, is aimed at mobile devices and embedded use cases, and is thus quite small and lightweight. In this talk, Terence Lee describes how mruby’s smallness makes it appropriate for distributing applications, allowing programmers greater latitude in developing and delivering tools to their customers.
Programmers love to advocate for their favorite languages. “I love language X, so why doesn’t everyone else use language X?” As a growing number of businesses use multiple languages, you can end up with pockets of different advocates, many of whom are then adamant that their language be used for more things. In this talk, Adam Forsyth describes life as a Python developer in a mostly-Ruby shop — and then goes on to describe when, much as he likes Python, it isn’t an appropriate tool to use.
People love to say that “Rails can’t scale.” Perhaps Rails is more CPU and memory intensive than other frameworks (and languages), but Shopify has manged to create a successful, large-scale, scalable business based on Rails. But even Shopify, with all of their experience, faces challenges — in particular, on the biggest shopping days of the year in the United States, known as “Black Friday” and “Cyber Monday.” How do they scale their servers to deal with this massive influx of traffic? In this talk, Christian Joudrey shares many of Shopify’s ideas and approaches.
Yesterday’s talk was about the creation of the JVM, and what design considerations went into that process. The JVM is no longer just for Java, and that raises a number of issues that the original JVM implementation never had to think about. In particular, there are a number of JVM-based languages for which the JVM version isn’t the sole or even main version — such as Jython (Python) and JRuby (Ruby). In this talk, Mark Stoodley describes the work that IBM has done to improve JVM performance for alternative languages.
How do you become an expert coder? It’s often suggested that you read good code — that by reading examples of good code, you internalize the right ways of doing things, and improve your own understanding and style. But where do you find good code? And how do you decide what’s good? In this talk, Saron Yitabarek describes her own journey toward code mastery, and what techniques she and a growing community use to improve. If you don’t yet know everything about coding (which means all of us), this talk introduces some ideas and techniques that you can (and probably should) adopt to improve how you see things.
I had to take lots of math courses before receiving my computer science degree. But in my day-to-day life, I’m probably more likely to use statistics — when reading the newspaper, analyzing data, or understanding Web application performance. Statistics is seen by many people as boring, but it’s both interesting (really!), and extremely useful. Crucial, even. In this talk, John Paul Ashenfelter describes why and how we can use statistics to describe data, and how this understanding can lead us to better decision making. If you ever thought that statistics was something you could or should ignore, this talk will hopefully convince you otherwise.
Ruby is a programming language that people love to use: It’s extremely flexible and fluid, and completely object-oriented. But the world is moving — to some degree, at least — away from objects, and in favor of functional programming, with shared, immutable data. Erlang takes this to the extreme, also allowing us to work with any number of processes, with a rock-solid virtual machine. Elixir is a new programming language that tries to marry these two approaches together. It feels like Ruby, but it sits on top of the Erlang virtual machine, providing all of the advantages that it offers. In this talk, Dave Thomas introduces Elixir, and demonstrates how this combination of flexible coding, immutable state, and high levels of concurrency can work together to provide a powerful coding paradigm.
Note that the slides and demonstrations are hard to read for much of this presentation; they’re available at http://gotocon.com/dl/goto-chicago-2014/slides/DaveThomas_ElixirThePowerOfErlangTheJoyOfRuby.pdf.
RSpec is one of the best-known test frameworks in the Ruby world. With RSpec 3.0, the framework has made a large number of changes, mostly aimed at making tests cleaner, easier to write and understand, but also making RSpec itself easier to maintain. In this talk, Jon Rowe describes the changes and improvements in RSpec 3.0, and why these are changes that everyday developers (and RSpec users) should notice, care about, and even incorporate into their work.
Rust and Ruby are both open-source languages. But that’s about all that they have in common. (Fine, and the letter “R.”) In this talk, Yehuda Katz and Tom Dale, two experienced Ruby developers who have done some work on Rust, describe how their understanding and use of Ruby improved as a result of working on Rust — a radically different language.
Where is the Ruby programming language headed? In this keynote address, Ruby inventor Yukihiro ‘Matz’ Matsumoto describes the past, present, and future of Ruby. What programming models have influenced Ruby to date, and what models are influencing it as the language evolves and improves? If you’re a Ruby developer, or are just interested in understanding how a programming language changes over time, then this talk will likely be of great interest to you.