Category Archives: Programming languages

[Video 244] Yehuda Katz and Tom Dale: Bending the Curve — How Rust Helped Us Write Better Ruby

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.

[Video 236] Jonathan Worthington: Perl 6 — Beyond dynamic vs. static

There has been a great deal of discussion in recent months among users and designers of dynamic languages, and how they are starting to look into some form of static typing to reduce bugs, and catch problems earlier. Perl 6 has been under development for a long time, with a release promised by the end of 2015. In this talk, Jonathan Worthington describes the ways in which the developers implementing Perl 6 have thought about the dynamic vs. static tradeoffs, and how Perl 6 reflects their decisions. Even if you’re not planning to use Perl 6, it’s interesting to hear how language designers think about what they’re creating, and how their decisions will affect those using their language.

[Video 233] Yukihiro ‘Matz’ Matsumoto: Superdry Ruby

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.

[Video 228] David Renshaw: Cap’n Proto and Rust — Type Systems for Sharing

Type systems have long been used to enforce compile-time checks on data, to ensure greater program safety. But what happens when you have a distributed system? How easily can you define, and enforce, high-level abstractions and data types across multiple machines, processes, and languages? In this talk, David Renshaw describes Cap’n Proto, his system for describing such a type system. He also describes the type system in Rust, in which Cap’n Proto is implemented — and discusses how type systems can (and should) be used to encourage sharing of data, in a robust and predictable way.

[Video 224] Jose Valim: Idioms for distributed, fault-tolerant applications

Jose Valim is well known as a Web developer, consultant, and open-source contributor. He’s now also known for being the inventor of a new programming language known as Elixir, which combines many of the semantics of Ruby with the distributed, fault-tolerant nature of Erlang. In this talk, Valim describes some of the most common idioms used by programmers working with Elixir, and how they can ensure that our Web applications are as robust as possible.

[Video 223] Julian Berman: Building an interpreter in RPython

PyPy, an alternative implementation of Python, has been gaining attention and interest over the last few years, in no small part because of its high speed. PyPy has, at its core, a small language called RPython (“restricted Python”) in which PyPy is implemented. In theory, you can use RPython to implement other languages. In this talk, Julian Berman demonstrates how to build a small language using RPython. If you’re interested in PyPy or in how programming languages work, this talk should be of interest to you.

[Video 214] Aaron Frost: ES6 — The New JavaScript

JavaScript is evolving: In the coming months, developers will be able to take advantage of a new version of JavaScript, known as ES6, which includes many new features aimed at making it a more mature language. What is ES6, and what can we do with it? In this talk, Aaron Frost introduces a number of the most important features of ES6, from variable scoping to objects.

[Video 211] Matthew Clark: The How and Why of Ruby

Ruby is famous for letting programmers do anything and everything. You can change the language, the syntax is extremely flexible, and there are many ways to do the same thing. This flexibility is great for experienced developers, but how does it work for new programmers? In this talk, Matthew Clark enumerates a number of reasons why Ruby is a good language to learn programming, and points to the features that make Ruby easy to understand and learn. As he says, we can talk about things without getting absorbed in the minutiae of where to put parentheses.

[Video 195] Jim Baker: Getting to Jython 2.7 and beyond

Jython is a version of Python that runs on the JVM. The Jython project recently celebrated release 2.7, which is compatible with Python 2.7. What are the aims of the Jython project, and who uses it? What obstacles did the Jython developers have to deal with on the way to this release? And what new features does the new version include? In this talk, Jython committer Jim Baker helps to answer these questions, describing how Jython is good for the Python and Java development communities.