1. 13
  1. 7

    This WIP article explains very well the USP of D:

    http://erdani.com/hopl2020-draft.pdf (section 3)

    This article highlight the value of “design-by-introspection” applied to a particular problem space: https://blog.thecybershadow.net/2014/03/21/functional-image-

    This talk present a concrete example of such: https://www.youtube.com/watch?v=LIb3L4vKZ7U (mind-bending stuff, but feels quite natural too)

    1. 7

      “used a private version of C that had polymorphism, generic programming, and integrated RPC”

      I keep bringing up C-compatible languages or extensions to integrate with its ecosystem. Add that one to the list used in real products.

      “Then after we got a running binary, we had a long series of changes to make sure that the code generated by LDC worked the same way as the DMD-generated code, then we got into adding performance improvements to our code and to LDC itself. “

      “We have had to work on making sure we can leverage exceptions with no GC, and had to create our own non-GC standard library”

      Many people in D threads gripe about how the stdlib makes it hard to worth without GC or some compiler issues. Neat to see this team taking a more hands-on approach to those issues. ;)

      1. 5

        I suspect this “hands-on approach” is somewhat more prevalent among C/++ programmers where one is used to dig deep to understand the underlying implementations and their performance characteristics. No standard library is considered a holy cow, where as programmers of other languages (say Python, Go) consider the standard library to be the “authority” and seldom override it.

        It is not unusual to see multiple standard libraries in C++ that focus on different niches, more so than other languages. Off hand I can recall multiple big libraries for C++ – STL, Boost, POCO, Apache, …

        1. 2

          Yeah, it was part of their culture when I tried learning it a long time ago. Especially the server and game developers.

          1. 1


            If you’re referring libapr, that’s a thoroughly C library. Did you have something else in mind?