I have worked for Apple since 2005, holding a number of different
positions over the years
(a partial history is available in the Apple section of my résumé). These days, I run the Developer
Tools department, which is responsible for Xcode and Instruments,
as well as compilers, debuggers, and related tools.
To answer a FAQ: Yes, I do still write code and most of it goes out to open source.
However, due to the nature of the work, I usually can't talk about it until a
couple of years after it happens. :)
I started work on the Swift
in July of 2010. I implemented much of the basic language
structure, with only a few people knowing of its existence. A few other (amazing)
people started contributing in earnest late in 2011, and it became a major focus
for the Apple Developer Tools group in July 2013.
The Swift language is the product
of tireless effort from a team of language experts, documentation gurus, compiler
optimization ninjas, and an
incredibly important internal dogfooding group who provided feedback to help
refine and battle-test ideas. Of course, it also greatly benefited from the
experiences hard-won by many other languages in the field, drawing ideas from
Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others
The Xcode Playgrounds feature and REPL were a personal passion of mine, to
make programming more interactive and approachable. The Xcode and LLDB teams
have done a phenomenal job turning crazy ideas into something truly great.
Playgrounds were heavily influenced by Bret Victor's ideas,
by Light Table and by
many other interactive systems. I hope that by making programming more
approachable and fun, we'll appeal to the next generation of programmers and to
help redefine how Computer Science is taught.
I lead and am the original author of the LLVM
Compiler Infrastructure, an open source umbrella project that
includes all sorts of toolchain related technology: compilers, debuggers,
JIT systems, optimizers, static analysis systems, etc. I started both
LLVM and Clang and am still the individual with the most commits.
Of course, as the community has grown, my contribution is being dwarfed by those from a
wide range of really amazing folks.
LLVM has enjoyed broad industry success - being widely used in commercial
products - as well supporting hundreds of academic papers. For its
contribution to the software industry, LLVM has been recognized with the ACM Software System Award.
For more details about LLVM, see:
- LLVM Compiler Infrastructure home page
- Invited talks about LLVM and other topics
- Random notes on LLVM - Unofficial notes and thoughts
on LLVM extensions and todo items.
Here are some of my more notable publications from my graduate school work.
A more complete list can be found on my