Earlier this month, Facebook had the honor of hosting more than 60 engineers, thinkers, dreamers, and architects for three days at DConf 2013, the D Programming Language Conference. I’ve been to a good number of programming conferences, but DConf really opened my eyes to what happens when early adopters put their minds together to create a shared vision of the future.
The links to the speakers below include videos and slides for each talk, so you can virtually attend DConf 2013 yourself! (A few videos aren’t yet available as of this writing, so check back in a few days to watch all the presentations online.)
If you haven’t heard of D before, check out dlang.org. D is a completely modern systems programming language with its roots in C. Like other modern programming languages, D has objects, garbage collection, a strong type-safety system, and robust generics—but it also includes some surprising new features, including compile-time function evaluation, Erlang-style message passing for asynchrony, and Haskell-like functional manipulation of (possibly infinite) ranges.
Programming language design is something many computer science students, including me, immediately associate with this book:
Visions of giant 1970s-era microcomputers and time-shared mainframes aside, what I learned at DConf taught me that modern language design is much more than an undergrad student’s parser, lexer, compiler, and optimizer. Today, programming language design is a unique combination of not just computer science (both theoretical and practical), but also surprising amounts of aesthetics, linguistics, social engineering, and community building.
On the first day of DConf, we heard about the momentum of the D movement from the language’s creator, Walter Bright, and dove deep into the internals of the language with amazing talks from Ali Çehreli (who’s written a free online book, “Programming in D”—in both English and Turkish) and Leandro Lucarella.
Robert Schadek spoke about his research project DMCD, a high-performance caching compiler for D, and we even learned how real-world game companies integrate D with their existing C and C++ code from Manu Evans. I was tickled to see that D has grown up to be a “real language” that real people are using to get things done.
As for me, I gave a talk about my passion, writing testable software, and talked about the open-source deject library I wrote to implement dependency injection in D.
On the second day, Iain Buclaw opened with a great talk on gdc, the gcc-based D compiler. Iain has been a strong leader of that project for a while now, and he offered great perspective and vision on the development of gdc.
Martin Nowak, a major contributor to the D compiler front-end and core runtime library, discussed how to make use of shared libraries in D, a relatively recent feature. Adam Wilson followed with a lucid analysis of how to migrate a large project from C# to D (surprisingly, it is easier than it may seem, but it’s one of those situations where 90% of the work is done on 10% of the code base).
Web development is not (yet!) a core market for D, yet it has distinct speed and convenience advantages in that area. Vladimir Panteleev, the author of the acclaimed online D forum forum.dlang.org, argued that Web development in D is taking off on a promising course with the advent of vibe.d, an open-sourced Web development framework, as well as a constellation of related projects. Rainer Schütze followed with precise garbage collection for D, a hot topic in the community. Maxime Chevalier-Boisvert, a graduate student at Université de Montréal, talked about using D in her research project Higgs, a JIT compiler for Javascript. Last but not least, Andrew Edwards discussed ways in which D can be better publicized, taught, and used in a startup scenario.
On the last day of DConf 2013, we heard from Don Clugston about how Sociomantic Labs runs real-time advertising auctions using D, building on the amazing compile-time function evaluation that allows D programmers to write type-safe code that runs at compile time. This is one of my favorite features of D—youcan find similar features in other languages, too, but the way D integrates it is really compelling. Later, David Simcha opened everyone’s minds with a terrific talk on rethinking design patterns in D, and demonstrated that the widely reviled double-checked locking pattern can indeed be implemented safely in languages like D with efficient thread-local storage primitives.
Finishing up, we heard from David Nadlinger about the latest innovations in the LLVM-backed D compiler, LDC, which shows some amazing performance improvements over the original D compiler, DMD. And, of course, the inspiring Andrei Alexandrescu, who’s a major force in both the C++ and D worlds, wrapped up the event with a rousing “where do we go from here” talk, organizing the newly connected and inspired conference attendees and speakers to go out in the world and do amazing things with D.
Overall, it was an incredible week, and I’ve personally never attended a technical conference so packed with truly innovative thinkers. Most of us have only few times in our lives when we can say we were there at the birth of something truly new, and I’m looking forward to advancing the D programming language at Facebook and in the community.