It's the most magical time of the year. Many of the world's absolute best nerds have materialized in a hotel somewhere and are giving talks to each other about the future of programming. I'm of course talking about Strange Loop, an annual "multi-disciplinary conference that brings together the developers and thinkers building tomorrow's technology in fields such as emerging languages, alternative databases, concurrency, distributed systems, security, and the web."
I've never gone to Strange Loop, but for a few years now I've devoured a healthy percentage of the talks posted to YouTube because they're so damned weird, creative, and futuristic. The typical Strange Loop talk is about what programming and development could be. Instead of dwelling on the mundane and practical, Strange Loop speakers often delve into obscure and unlikely technologies that could have huge implications if they work out.
Here are a few of my favorites from this year:
"The Lux Programming Language"
Strange Loop talks have introduced me to some of the most interesting new programming languages in the industry. Languages like Idris and Elm, for instance, were introduced respectively by their creators at Strange Loop three years ago. If a language is actually worth using, you might get followup talks at the next year's Strange Loop by someone who is actually using it to solve a novel problem. But, as someone who isn't a professional programmer, and therefore not required to actually accomplish anything with code, the original language introductions are typically my favorite.
This year, Eduardo Julian introduced us to his unapologetically ambitious Lux programming language, a functional, statically-typed Lisp. Don't know what those terms mean? My prescription is more Strange Loop. Basically, Lux is folding in ideas from a number programming languages, while also offering a few features I’ve never seen before, and wrapping them all in parentheses (that’s the Lisp part).
"Datafun: a functional query language," and "Particle physics, 10,000 times faster"
Jim Pivarski, who works in high energy physics, and Michael Arntzenius, who researches program language design, both have great beards. They're also convinced that there's some sweet spot between traditional programming languages and database query languages which could provided needed power to Big Data practitioners.
What I like about these two beard talks is that you have one person coming from industry, and another person coming from academia, and they're arriving at a similar solution. It seems like they're on to something. I'm not 100 percent sure what they're on to, because I have none of the problems they describe, but I love synergy wherever I see it.
"Death of the Trusted Internet"
I didn't know what I was getting into when I added this to my YouTube downloads queue. I thought I was going to learn about a fundamental shift to how the internet works, but what I got was a fundamental shift to how the Federal Government interfaces with the internet. Or, at least, an attempted shift. Marianne Bellotti of the United States Digital Service does an incredible job of explaining clearly and reasonably the obtuse and unintuitive regulatory obstacles the government has made for itself when it comes to making websites for citizens to interface with its various agencies.
It's a Kafkaesque web, and it's a little depressing, but it's also inspiring to see the sort of work that's being done to sort it all out.
“Code Generating a Safer Web with Rocket”
Rust is my absolute favorite programming language, so I was excited to see a talk about Rust's most promising web framework, Rocket, from its creator, Sergio Benitez. Rust is a language that's designed to create programs that are free of many of the typical bugs that can cause security vulnerabilities, while also being (theoretically) as fast as a low level language like C. Rocket extends those ideas to making a web framework that's safe by default, and if the Equifax debacle has taught us anything (which Sergio has a nice explanation of in the middle of the talk), we need a few more safe-by-default web frameworks in the world.
“A (Not So Gentle) Introduction To Systems Programming In ATS”
I'd never heard of ATS before this talk by Aditya Siram. It's another type safe systems programming language, so it has that in common with Rust, but unlike Sergio's Rocket talk, none of Aditya's slides have syntax highlighting, if that gives you any indication of what you're in for. Aditya has a money quote in the middle of this talk that sums up Strange Loop nicely:
"People keep saying that learning programming languages makes you a better programmer. It really doesn't. It makes you a better programmer up to a point, and then it makes you bitter and dissatisfied, because you will never be able to port those ideas over to your day job."
“Lazy Defenses: Using Scaled TTLs to Keep Your Cache Correct”
I have a pet theory that the classic difficulty of cache invalidation is what holds Twitter back from making tweets editable. So how convenient for me to have a Strange Loop talk from a Twitter engineer to explain Twitter's actual caching setup. I'll admit, Bonnie Eisenman's talk is dangerously practical for a Strange Loop talk, but I'll allow it. My pet theory now has some hard evidence behind it: "We rely very, very heavily on caching. 99.9 percent of all requests are served out of cache, on a good day that's much higher."
The talk doesn't outright address tweet editing, but given the characteristics of Twitter's system that is outlined in this talk, I think editable tweets would require a major rework of Twitter's backend.
“The Biological Path Towards Strong AI”
I saved the best for last. Matt Taylor explains how the brain's neocortex works in an astonishingly dense and illuminating twenty minutes, then seamlessly transitions into how Numenta is attempting to simulate the neocortex in software. A lot of the facts shared in this talk are in Jeff Hawkins' 2004 book On Intelligence (Jeff Hawkins, the founder of Palm, is also the founder of Numenta), but it was great to have a modern, visual exploration of those ideas.