DConf London Part 3

We're at CodeNode in London once again from August 29 – September 1, 2023, for the D Programming Language Conference, sponsored by Symmetry Investments and hosted by the D Language Foundation. This is our third time in London, thanks to Symmetry’s support, and we’re thrilled to be back! DConf ‘22 at CodeNode was a huge success, with overwhelmingly positive feedback from attendees. In fact, it was the best one yet, and we’re committed to making DConf ‘23 even better.

Can't be there in person? No problem! Join our livestreams during the three days of talks and ask questions of the speakers at any time during each session.

DConf is the premier meetup event for the D programming language community. Although we continue to hold regular online meetups, nothing compares to the energy and camaraderie of face-to-face interactions. At DConf, both seasoned veterans and first-time attendees, and many in between, come together for four days of education, knowledge sharing, and fun. We can’t wait to do it all again!

Keynote Speakers

Walter Bright
Creator and Co-maintainer of the D Programming Language

Saeed Sabeti
Director of Organizational Development at Ucora Corporation in Vancouver, Canada

Átila Neves
Co-maintainer of the D Programming Language

Schedule

Click [Show Details] next to a speaker’s name below for information about a talk, panel, or speaker.
Note that all times are in UTC + 1.

Tuesday August 29th

  • 08:00 Breakfast Snacks
  • 08:55 Introduction
  • 09:00 The Truth About D
    by Saeed Sabeti
    Duration: 45 Minutes

    Are you feeling the weight of uncertainty in the programming world as the D Language grapples with challenges amidst the rise of competing languages? There's a looming concern that these hurdles might hold D back from its true potential, relegating it to a lower standing. The cost of letting this happen is significant, not just for D enthusiasts but for the entire programming community. Yet, a solution exists; a way to steer D towards the path of popularity and influence it deserves. There is an unexpected approach to unlocking the value behind the language, and the result will shape D's future and elevate your own personal and professional success. Don't miss out on this discourse that promises to transform your perspective on what DLF means to all of us.

    Saeed Sabeti is a seasoned expert in human motivation, team dynamics, team building, and team alignment, executive coaching, and organizational development. He currently serves as the Director of Organizational Development at Ucora Corporation in Vancouver, Canada. His work takes him across the globe, partnering with organizations to build strong, effective teams with focused, aligning visions. As an executive coach and consultant, Saeed addresses the widespread problem of staff acquisition, retention, motivation, and productivity by helping leaders, stakeholders, and organizations develop a new mindset rooted in fundamental purpose.

  • 10:00 Types and Tuples in D
    by Timon Gehr
    Audience: Intermediate/Advanced
    Duration: 45 minutes

    Like many modern programming languages, D has a static type system and built-in tuple support. In this talk, I will present general design considerations around type systems, with a particular focus on D’s type system, recent developments in D, and possible avenues for further improving the soundness, expressiveness, and ergonomics of D. As some operations on tuples remain rather clunky in today’s D, this will in particular include design considerations around tuples and a number of different proposals for how to move forward.

    Timon Gehr is a postdoctoral researcher at ETH Zürich who has used D to implement a number of tools and programming languages for his research. He has opened almost 1% of all issues on the D issue tracker. He sometimes dabbles in DMD development and contributed the initial implementation of static foreach.

  • 11:00 DMD as a Library: Between Myth and Reality
    by Razvan Nitu
    Audience: Intermediate
    Duration: 30 minutes

    The absence of a proper compiler library has been haunting the D ecosystem since forever. Although progress has been made in creating a public API, there is a lot of room for improvement. In this talk, I will discuss the major challenges of developing a proper compiler interface for DMD-as-a-library, what has been done so far, what are the future plans, and what will be the limitations.

    Razvan Nitu has a PhD in computer science. He is also one of the Pull Request and Issue Managers for the D Language Foundation. His experience with D lies mostly in compiler development, but he occasionally contributes to DRuntime and Phobos. Razvan has been organizing D summer schools at his hometown university and mentoring students to work on D-related projects (such as integrating DMD-as-a-library in D-Scanner, pay-as-you-go DRuntime, D Google APIs, etc.) for the past 5 years.

  • 11:45 Lunch
  • 13:30 Stack Memory is Awesome!
    by Dennis Korpel
    Audience: Intermediate
    Duration: 45 minutes

    Should D have a smarter Garbage Collector, or support Reference Counting? I don’t care. Stack memory is where it’s at! D is really good at it with its static arrays, slices, and DIP1000’s lifetime tracking to make it all memory-safe. DIP1000 has evolved a lot in its design and implementation, so I’ll get you up to speed with where we are now and how we got here.

    Dennis Korpel is a recent CS graduate from Delft University of Technology. D became his language of choice after discovering it in 2018, and he is currently a Pull Request and Issue Manager for the D Language Foundation.

  • 14:30 Simple @safe D
    by Robert Schadek
    Audience: All
    Duration: 45 minutes

    DIP1000 adds quite a bit of syntax to the language and makes D look a lot less beautiful, in my opinion. Instead of trying to add things to the language, why not take a look at things that need to be removed to achieve the same level of memory safety? This talk shows how to remove three things from the language to make it memory-safe and still live with the consequences.

    Robert Schadek received a doctorate degree in computer science from the University of Oldenburg. His dissertation was titled ‘Analysis and Development of Quorum Protocols for Real-World Network Topologies’ and focused on quorum systems in combination with graphs. Since 2018, he has been happily using D in his day job working for Symmetry Investments.

  • 15:30 Getting from C to D without Tripping
    by Steven Schveighoffer
    Audience: All
    Duration: 45 minutes

    C is the lingua franca of programming languages. Chances are, if something exists in the world of computer science, there is a version of it in C. But what if you use D? The great news is that any C project is almost trivially accessible via D. But what if you hate the problems that come with C? No overloading! No operators! Zero-terminated strings! Manual memory management! No memory safety! Many of these things led me to undertake a project of porting a quite broad and well-used C library to D. What might be in store for you if you decide to take this journey? Tune in to find out!

    Steven Schveighoffer has been programming for nearly 25 years professionally, using D for over half of that time. He has written several D libraries, including dcollections and iopipe. He currently maintains the raylib-d binding and the mysql-native client library (which he recently converted to fully @safe). He has been contributing to Phobos and DRuntime nearly the whole time he’s been a D user.

  • 16:30 OpenAPI and Service Integration
    by Vijay Nayar
    Audience: Intermediate
    Duration: 30 minutes

    When building software services using D, a practical reality is that most other services are not also using D. A fairly standard way of inter-service communication is accomplished via a REST Architecture, based on JSON over HTTPS, for example. However, writing a new client for every programming language is error-prone and labor intensive. The internals of the OpenAPI Client library are discussed showing how D Client code can be generated using mixins and templates from OpenAPI specifications, permitting compatibility with well known APIs such as Slack, Stripe, or OpenAI.

    Vijay Paul Nayar is a CalTech graduate and has been professionally programming for over 20 years in various roles from software engineer to CTO. Recently, he has taken on the role of entrepreneur and founded Funnel-Labs.io, where he has been using the D Programming Language in production services.

  • 18:00 End of Day One

Wednesday August 30th

  • 08:00 Breakfast Snacks
  • 09:00 Crafting Self-Evident Code with D
    by Walter Bright
    Duration: 45 Minutes

    Have you ever looked at code you wrote five years ago and wondered what you were thinking? Just think of code you authored even further back! You’ve heard about secure code, safe code, clean code, modern code, optimized code, clever code, user-friendly code, structured code, effective code, etc. Everybody thinks they write easy-to-understand code (including me), but your future self will likely have the last word on that.

    Here I’ll be talking about writing easy-to-understand code. The talk is based on decades of experience writing code that is hard to understand. I’ll show how D makes it easy to write easy-to-understand code. It won’t cost anything, either. And who knows? Maybe your future self will sigh contentedly with “I wrote that!”

    The highest praise you can get for your code is someone else looking at it saying “that’s so simple, anyone could have done it!” (But you and I know better!)

    Walter Bright is the creator and first implementer of the D programming language and has implemented compilers for several other languages. He’s an expert in all areas of compiler technology, including front ends, optimizers, code generation, interpreter engines, and runtime libraries. Walter regularly writes articles about compilers and programming, is known for engaging and informative presentations, and provides training in compiler development techniques. Many are surprised to discover that Walter is also the creator of the wargame Empire, which is still popular today over 30 years after its debut.

  • 10:00 Hipreme Engine: Bringing D Everywhere
    by Marcelo Mancini
    Audience: Beginner/Intermediate
    Duration: 45 minutes

    In this talk, I will discuss how a three-year ongoing game engine project in D has been able to run on multiple platforms while staying consistent, fast, and easy to use.

    Having used several game engines from several programming languages and unsatisfied with how hard it was to get started with a native programming language, Marcelo Mancini went from being a complete novice who didn’t even know how to build anything to a daily D user producing one of the most ambitious projects in the language. He noticed a big opportunity in D with its flexibility as both a low- and high-level language, its compile-time reflection and mixins, the simplicity of its build system, the presence of a package manager, and how all of this could lead to increased productivity for people learning their first programming language.

  • 11:00 A Semester at University: Teaching Software Engineering in DLang
    by Mike Shah
    Audience: All
    Duration: 30 minutes

    In January of 2023, I excitedly showed a group of over 110 university students that D is the 48th most popular programming language on the Tiobe Index (for whatever its metrics are)—and then told those students they would be learning D in the software engineering course that semester. In this talk, I will recap my university curriculum of how I taught D, and why I think D should be taught by more faculty in universities. For this software engineering course, we made use of low-level access, multiple programming paradigms, built-in profilers, package management (dub), code coverage, ddoc, and unit testing in order to build a half-semester long project. My conclusion is that using D at university can give students a competitive advantage versus other languages, and in this talk I’ll reflect on the curriculum, pain points, strengths, and future of D in education.

    Michael discovered computer science at the age of 13 when googling “how do I make games”. Since that fateful google search, he has worked as a freelance game developer, worked in industry for Intel, Sony PlayStation, and Oblong Industries, and researched at The Ohio Supercomputer Center. Mike cares about building tools to help programmers monitor and improve the performance of real-time applications—particularly any visual multimedia. He believes computer science can be learned by all. Mike Shah completed his PhD at Tufts University in 2017 and is an associate teaching professor at Northeastern University. He also consults as a 3D Senior Graphics Engineer. In his spare time he goes for long runs, plays video games while on his exercise bike, learns guitar, and considers himself an amateur pizza and wine maker.

  • 11:30 A Semester at University: Learning Software Engineering in DLang
    by Ben Mallet, Elizabeth Williams, Andrew Briasco-Stewart, Steven Abbott

    In January of 2023, around 110 students took Foundations of Software Engineering with Professor Mike Shah at Northeastern University. During the first class, it was announced that the course would be taught in D. This talk will follow the perspective of four students (one group) in said course, beginning with their experience learning the D programming language.

    The main portion will discuss the creation and implementation of the half-semester long final project: an interactive networked whiteboard application with a couple of features (chat, brushes). Various tools and add-ons this project used were GtkD, networking, package management (dub), code coverage, and unit testing (unit-threaded). To conclude, this talk will discuss the main benefits of D as a post-secondary educational language and reflect on the state of the D community and development tools.

    NOTE: This talk immediately follows, and is a continuation of, Mike Shah’s talk, with no break in between.

    Ben Mallet is a graduate student at Northeastern University. He expects to graduate in May 2024. He has D experience from Mike Shah’s course (Spring 2023) and some C experience as an Embedded Software Engineer at Running Tide

    Elizabeth Williams is a graduate student at Northeastern University who expects to graduate in May 2024. She has D experience from Mike Shah’s course (Spring 2023) and some C experience from other courses.

    Andrew Briasco-Stewart is an undergraduate student at Northeastern University who expects to graduate in May 2024. He has D experience from Mike Shah’s course (Spring 2023) and C/C++ experience from other courses.

    Steven Abbott is an undergraduate student at Northeastern University. He expects to graduate in December 2023. He has D experience from Mike Shah’s course (Spring 2023) and experience with C/C++ experience and Build System/CCID as a Software Engineer Co-op at MORSE Corp.

  • 12:00 Lunch
  • 13:30 If I Cannot Dissuade You from Using Atomics, at least Do It Safely
    by Roy Margalit
    Audience: Intermediate/Advanced
    Duration: 45 minutes

    Different hardware architectures implement different memory models. This in turn makes porting multi-threaded software between different target architectures an insanely complicated task. To solve this problem, C++11 introduced a language memory model that was later adopted by other languages such as D and Rust.

    In this talk, we’ll present the C++11 memory model, including multiple options for atomic accesses that lie on the trade-off between performance and the consistency level they support. Due to the well known complexities and pitfalls in this kind of programming, we will also consider several safe patterns to work with atomic variables that lower the chances of introducing bugs.

    Roy Margalit is a PhD student in the Programming Languages group at School of Computer Science, Tel Aviv University. Currently researching programming languages and verification, with a focus on concurrency and relaxed memory models.

  • 14:30 Taming the Snakes
    by Ikey Doherty
    Audience: All
    Duration: 45 minutes

    Serpent OS is a Linux distribution heavily utilizing D for its tooling, infrastructure, and software update processes. It’s been an extensive journey, with lots of mistakes made along the way. Learn how we screwed up - so you don’t have to!

    Ikey Doherty is a Staff Engineer at MZLA Technologies working on Thunderbird. He is also the chief architect of the Serpent OS Linux distribution and a member of the Solus Technical Steering Committee, currently working with the team to assist with a rebase onto Serpent OS core technologies..

  • 15:30 Multiplix: Using D for Kernel Developmebt
    by Zachary Yedidia
    Audience: Intermediate/Advanced
    Duration: 45 minutes

    Multiplix is an operating system written in D under development for a research project at Stanford University. Kernel code is an unusual setting where there is no surrounding infrastructure, thus requiring hand-written assembly, a specialized build process, and custom implementations for core features like memory allocation and concurrency primitives. This talk will explain how we are using D for OS development, and show examples of how to write bare-metal D code. The talk will go over the architecture of Multiplix with an emphasis on how the D language has shaped it. I’ll also discuss our experiences using D for kernel development, and the benefits and challenges that arise from using D in this setting.

    Zachary Yedidia is a computer science PhD student at Stanford interested in computer systems, hardware, and compilers. You can learn more about him at zyedidia.github.io.

  • 16:30 The Neat Language: AKA What I've been up to the past three years
    by Mathis Beer
    Audience: Intermediate/Advanced
    Duration: 45 minutes

    Want to see what D would look like with native sumtypes, rich types, better lambdas, and macros?

    Mathis Beer writes D code for Funkwerk. He is the author of Serialized as well as the company’s Boilerplate library. Mathis is also known in the D community as “FeepingCreature”.

  • 18:00 End of Day Two

Thursday August 31st

  • 08:00 Breakfast Snacks
  • 09:00 You're Writing D Wrong
    by Átila Neves
    Duration: 45 Minutes

    An old man yells his pet peeves at the clouds.

    Átila Neves has a PhD in Particle Physics for research done at CERN. Most of his time spent there required programming in C++, with a two-year stint as a Perl programmer on the IT department’s security team. He also worked for Cisco for almost seven years, developing networking software in C and C++ and leading his teams in the areas of software quality and testing. He now works as a D consultant/programmer for Symmetry Investments, and is also the deputy maintainer of the D programming language. He spends his spare time yelling at the screen in frustration while waiting for computers to compile his code.

  • 10:00 Internationalization with gettext
    by Bastiaan Veelo
    Audience: All
    Duration: 45 minutes

    The first part of this talk demonstrates the process of internationalizing an existing program (adding support for multiple natural languages to its user interface) using the dub gettext package. The second part focuses on the implementation of said package, which makes interesting use of various features of the D programming language.

    Bastiaan Veelo has been in charge of the conversion of roughly half a million lines of Pascal code to D for the company SARC, who develop applications for the marine- and shipping industry. This process has been the topic of one blog post and two prior D conference presentations in 2017 and in 2019. Besides upgrading the programming language, SARC decided that it was also time to upgrade their system for internationalization. Thus, Bastiaan implemented the gettext package with valuable help from the D community. This work is now available to everybody under the Boost license.

  • 11:00 The QUIC Protocol in D
    by Vlăduț Chicoș
    Audience: All
    Duration: 30 minutes

    QUIC is a new, standardized and widely adopted internet protocol. A native library within the D ecosystem would pave the way towards HTTP/3 adoption. Furthermore, it would remove the reliance on bindings to third party C implementations and would facilitate the use of features like D exceptions and fiber-based concurrency.

    This talk aims to present my progress on bringing QUIC to the D environment. I will talk about why someone might consider using QUIC over other protocols. I will present the challenges that I encountered and how the solutions reflect into the design of quic-d. I think that the requirements of QUIC framing/packetization and streams made an interesting case of using D’s features, like introspection. I will conclude by presenting some possible improvements and opportunities.

    Vlăduț Chicoș is a 4th year student at Politehnica University of Bucharest. He participated in SAOC 2022, during which he worked on the quic-d library, adding modules mostly related to cryptography, packetization/framing and streams. In his bachelor thesis project, he is experimenting with model predictive control as an alternate solution of pacing QUIC packet sending that is compatible with the standard approach.

  • 11:45 Lunch
  • 13:30 Lightning Talks
    by Multiple Speakers
    Audience: All
    Duration: 45 minutes

    Got something interesting to tell the D community, but not interested in presenting a full talk? We’ll give you five minutes to tell the world!

    Lightning Talks are presentations restricted to five minutes or less. Speakers plug in their laptops and get started immediately. When their time is up, the emcee pulls them off stage and the next speaker gets going. The Lightning Talk session from DConf ‘22 is a great example of the format.

    Any DConf attendee can sign up to present a Lightning Talk. We’ll have nine slots available this year, and we’ll fill them on a first-come first-serve basis. Email social@dlang.org anytime before the conference to reserve your spot (after you’ve registered), or let Mike Parker know at any point during the conference prior to the start of the Lightning Talks session.

  • 14:30 A Beginner’s Journey with AI in D
    by Murilo Miranda
    Audience: All
    Duration: 45 minutes

    I will talk about my journey learning AI, what I’ve discovered about it, the ins and outs most people do not understand, and how I did it all purely in D. I was able to implement neural networks to do a variety of tasks, such as text and color recognition. I’ve created my own neural network creator software, which in turn was also written in D.

    Murilo Miranda is a computer scientist at the University of Brasília (UnB). He works as a programmer, computer technician, and teacher of computer programming. He’s also an indie game developer, overclocker, and casemodder in his free time. He maintains a blog about CS at computingthesciences.blogspot.com.

  • 15:30 Running Large Language Models in D Programs
    by Max Haughton
    Audience: Beginner/Intermediate
    Duration: 45 minutes

    Even in their infancy, large language models like ChatGPT are the talk of the town. Until recently, LLMs have been inferenced (run) using huge chunks of Python code, but recent interest has brought about some much simpler, specialized, libraries written in native languages (llama.cpp being a recently famous example). I will discuss how to talk to these using D and also demonstrate some home-grown approaches we have in D, including one by yours truly.

    Max slings code for Symmetry Investments. Otherwise... all words, some action, no bona fides!

  • 16:30 Ask Us Anything!
    with Walter Bright, Átila Neves, Mathias Lang, Dennis Korpel, Saeed Sabeti, Mike Parker
    Audience: All
    Duration: 60 minutes

    This year, it’s not only Walter and Átila in the hotseat! They’ll be joined on stage by Mathias Lang, one of the DLF team members in charge of our high-level goal to enhance the D ecosystem, and Dennis Korpel, one of our Pull Request and Issue Managers. Mike Parker will pull double duty as moderator and as one of the DLF team members in charge of our high-level goal to strengthen the D community.

    Curious about the DLF’s organizational redevelopment? Wondering what’s in store for the language, ecosystem, and community down the road? Eager to learn more details about progress on our current goals? Dying to hear any juicy bits of history from Walter’s decades as a C compiler developer? All of these topics and more are on topic for the annual DConf Ask Us Anything!

  • 18:00 End of Day Three

Friday September 1st

Venue

Our DConf ‘23 venue is CodeNode, a space in Central London specifically designed for tech conferences. It’s conveniently located close between Moorgate and Liverpool Street stations and is a 10–15 minute walk from Old Street Station to the north.

Our presentations will happen on the ground floor in the CTRL room, and we’ll have the entirety of the ESC area downstairs to ourselves, where attendees can relax, chat, or play table tennis or foosball between talks.

Accommodations

There are several budget hotels in easy walking distance. The following are some options that, according to Google Maps, are less than a 20-minute walk from the venue. Some of them are near an underground station that is one stop away from Moorgate or Liverpool Street stations. Click a link to see the walking route(s) between a hotel and the venue. On the map, you’ll find links to reserve a room.

BeerConf

Every evening during the first three nights of DConf means only one thing: BeerConf! Ethan Watson coined the term in 2016 as a name for what happens at the designated evening gathering spot at every DConf. In 2019 and 2022, we were able to hire space at pubs for BeerConf. Unfortunately, pub hire rates are well beyond our budget this year, so we’re going back to what we used to do and designating a hotel where everyone can gather.

Travelodge London Central City Road is tentatively designated the DConf ‘23 BeerConf spot. They have a restaurant/lounge on the ground floor which serves beer, non-alcoholic beverages, and snacks. Despite the name, drinking beer is not required to particpate. Come and go as you please each evening. Chat and talk about D, about programming, about life, or whatever comes up. BeerConf is an excellent way to unwind after a day of DConf!

Sponsors

Symmetry Investments

Our friends at Symmetry Investments are the primary sponsors and hosts of DConf ‘23. With offices in Hong Kong, Singapore, London, Jersey, and the Cayman Islands, Symmetry employs D in their investment management mission. This is the third time they’ve sponsored DConf, and we are thankful for their continued support. They are also the sponsors of the Symmetry Autumn of Code, an annual event that, since 2018, has provided experience to emerging programmers while enhancing the D ecosystem. We couldn’t be more excited to bring DConf to London once again with Symmetry’s support.

Supporters

ahrefs

We thank our new friends at Ahrefs for their sponsorship of DConf ‘23. Ahrefs Pte. Ltd. is a software company that develops online SEO tools, a search engine, and free educational materials for marketing professionals. They are a lean multinational startup headquartered in Singapore that values making meaningful and easy-to-use products. They shift things fast to give their customers what matters most to them, and to keep us ahead of the game. Their motto is “First do it, then do it right, then do it better.”

Partners

DevITjobs.uk

A big thanks to DevITjobs, our media partner for DConf ‘23. DevITjobs is the first job board built with Software Engineers in mind. Their goal is to bring more transparency, openness and diversity to the British IT market. They want to make the job search process for Software Engineers more enjoyable by gathering all job postings in the United Kingdom and presenting them in an informative way. The DevITjobs.uk portal is not only for Developers but for everyone working in the IT industry: Engineers, SAP and System Admins, Product Managers, QAs and UX/UI Designers!

© 2023 The D Language Foundation