Day 1: Other talk highlights

Kris Bell – Array slicing fo shizzle!

Some of us missed the pop culture reference in title, but this was a effective talk on how the array slicing feature of D is a key performance tool.

Kris had struggled for several years in scaling server-side Java code. He talked through a few of these cases. Repeatedly, the key bottleneck was allocation, working set, and the garbage collector. And Java’s design unfortunately makes many of these allocations nearly unavoidable, especially for the all-too-common task of string processing and web serving. Kris gave some numbers on the dramatic performance increases he saw with various designs that minimized those allocations.

This led into D’s array slicing feature, which lets you easily reference a sub-array without having to allocate a new object. Kris walked through design of a HTTP server with little or no memory allocation after startup and pre-allocation of buffers. This is the design used for D’s Tango HTTP server, and results in its high performance.

Brad Anderson & Gregor Richards – DSSS and DSource

The auxiliary tools around a language — build, test, Internet library repository, and library install & dependency management — are as critical as the language itself to enable a community to collaborate on a universe of effective, loosely coupled libraries, and make easy use of those libraries.

D is just getting started on the tools and web resources of the sort that Perl, Python, Ruby, and other dynamic languages have relied on for while. But it has a real opportunity to be first among the systems languages in this kind of support.

This talk covered how Brad (the creator of dsource), Gregor (the creator of DSSS), and others are working towards this end for D.


Went live in Feb 2004. Announced to newsgroup in March 2004. First 5 projects: DWT, Mango, eclipseD, DigDug, docoa

Current stats:

  • Operating for 3.5 years
  • 143 projects
  • 60ish active
  • 30 very active users
  • 1000 registered users
  • 15000+ forum posts
  • 560+ tutorials (many by Justin)

Brad is now working on the third generation dsource site

  • Written in Django (Python web framework), interfacing with Trac, Django, and SVN (was Trac+dsource plugins)
  • Central login, logout, registration
  • nicer projects list & search
  • project voting mechanism
  • TracForums – Eric Anderton (as phpBB)
  • Multiple forums, all within each project
  • Consistent look and feel, syntax highlighting
  • wiki page comments


Gregor treated us to a insightful, funny walk-though of state of the art of building posix software. Look for the video when it comes out.

He described what DSSS is capable of today, how it solves those build problems in the simplest way possible for the library designer (in the best and common case, nothing extra from the programmer other than the ‘includes’ they are already doing in their D code).

Gregor showed some nice, early integration between dsource and DSSS — this is a rich area for features which would really help library users and writers.

The room had some discussion on other features which would require more configuration, such as library versioning (which is not yet supported).

Sean Kelly – runtime library design

Check out the slides when they come out for more on this. You can also read a nice interview from Sean here.

Comments (3) to “Day 1: Other talk highlights”

  1. That’s “DSSS” :)

  2. I just wanted to thank you for posting these notes up. It means a lot to those of us who couldn’t make it there in person.

    #d says hi.

  3. Thanks Gregor! So easy to get lazy and start loosing S’s here and there with DSSS!

    Thanks so much for the feedback, Daniel. It got me off my butt this morning and on to writing the next post!

Post a Comment
(Never published)