Here's a brief recap of the events, and time-permitting, I'll go into more detail on some of them.
Day 1
Walter & Andrei talked about the future of D.
* Struct ctors/dtors
* some functional paradigm support
* pure functions, don't modify data that's external, and thus are parallelizable
* macros
Um... bad-ass :-D
Sean talked about modularization of D, overloading the GC, etc. Clearly this was way above my paygrade, and my head almost exploded on concepts that he eats for breakfast. However, I am hopeful that Walter took a bit of notice of the nice separation and will look to improve his own house on this front.
Kris gave a great talk about slicing, and how holding onto references (slices) of the original hunk of memory instead of creating a whole bunch of temp vars, keeps the GC from thrashing, as well as alleviates the need to allocate new (heap?) memory. His war stories about slow Java programs and how he improved them by avoiding memory allocation and GC thrashing were a great setup for a monster feature in D: slicing. Text processing was an obvious example, but his work on the http server and clustering slice usage were even more powerful examples of this technique. Oh, btw, he did most of this work *three years ago* in Mango. it's just sitting there, waiting for someone to snatch it up w/ all its goodness. Nice to have someone so obsessed with performance on our side.
Gregor and I talked about DSSS and DSource, and how the two will become quite close. dsss net install packages will be created with a Trac admin page and test results for all installed packages. My dsource part was quite fluffy compared to the deeper topics earlier in the day, so I attempted to give stats and status infused with a bit of humor.
In talks with others at the break, my stance on adding only one DSCM, git, was soundly trounced, and I will most likely be adding Mercurial as well. I won't support more than two, but these are well-liked, come out favorably in a couple of comprehensive comparisons, and have Trac plugins. Don't freak out: svn is *not* going away.
Day 2
Kirk presented Pyd with a whole lot of code snippets. He blew through the talk in 15 min, and then was peppered with questions on the concepts. Of particular note, Walter seemed to be digging for compiler enhancements, __traits improvements, and what not, that would make Kirk's life easier. FYI, Pyd is geared toward extending Python with D code when performance is needed.
Don presented some of his work on high performance code generation, akin to Fortran's BLAS lib for linear algebra. Use of D's (admittedly dangerous) metaprogramming facilities, like string mixins, allowed him to get into the deepest loops of the algorithm. The entire talk was accessible for a layperson like me. I'm not so much a physicist, but I did stay at a Holiday Inn Express last nite.
Cristian presented work on his debugger, which looked quite nice. Being able to stop execution and back up a step or two and having the state at that time be preserved could prove useful.
BCS fried even more braincells with his template talk. When you have a slide called 'chained recursion' with code that uses mixins of itself to recurse down, I think it's safe to say there's a wee bit of perversion going on with BCS, DMD, and the lang in general. As an 'app dev' I'm not even going to pretend to have understood slides after this one ;)
I sat out Bartosh's talk on Software Transaction Memory, because I'm currently a 'Smug Erlang Weenie' and all about the message passing. Plus my brain was full.
Walter and Andrei hopped back on the stage last, talking further about the future of the language:
* AST macros (as opposed to C/C++ text macros)
* new string literal notation
* ongoing final/const/invariant work that was distilled down to list processing-like head/tail or car/cdr or first/rest type coverage of all pointer combinations. Given the more robust definition of the problem, the joke was that another year of discussion was needed to 'get it right.' Admittedly, it's important to get it right for parallelism and D world domination in general.
* struct inheritance - interface enforcing presence of members
* more things that I'll need to be reminded of, when the presentation is posted by braddr.
W. mentioned that all of this could take a year or more to develop, but string literals and const work were already in some semblance of completion.
While the talks were fun, interesting, and brain-taxing, the best part for me was meeting all of you criminals that I had only chatted with online or on the phone. It's quite early (still) in this language's life, but a crazy amount of really smart people are hanging around, and that can only be a good thing.
Finally, Brad Roberts is a rockstar in my book. He organized the whole conference and herded us kittens over and over, leading up to, and during the conference. He was also willing to foot the bill for two lunches, one dinner, and all drinks & snacks during the presentations. Happily, the powers at Amazon.com were so impressed with the obviously "real" and compelling conference being conducted in their building, that they agreed to reimburse Brad and contribute even more than the facilities to the conference. Solid.
Well, that's it for a brief blog post. :-D