skip to main content
research-article
Open Access

Origins of the D programming language

Published:12 June 2020Publication History
Skip Abstract Section

Abstract

As its name suggests, the initial motivation for the D programming language was to improve on C and C++ while keeping their spirit. The D language was to preserve those languages' efficiency, low-level access, and Algol-style syntax. The areas D set out to improve focused initially on rapid development, convenience, and simplifying the syntax without hampering expressiveness.

The genesis of D has its peculiarities, as is the case with many other languages. Walter Bright, D's creator, is a mechanical engineer by education who started out working for Boeing designing gearboxes for the 757. He was programming games on the side, and in trying to make his game Empire run faster, became interested in compilers. Despite having no experience, Bright set out in 1982 to implement a compiler that produced better code than those on the market at the time.

This interest materialized into a C compiler, followed by compilers for C++, Java, and JavaScript. Best known of these would be the Zortech C++ compiler, the first (and to date only) C++-to-native compiler developed by a single person. The D programming language began in 1999 as an effort to pull the best features of these languages into a new one. Fittingly, D would use the by that time mature C/C++ back end (optimizer and code generator) that had been under continued development and maintenance since 1982.

Between 1999 and 2006, Bright worked alone on the D language definition and its implementation, although a steadily increasing volume of patches from users was incorporated. The new language would be based on the past successes of the languages he'd used and implemented, but would be clearly looking to the future. D started with choices that are obvious today but were less clear winners back in the 1990s: full support for Unicode, IEEE floating point, 2s complement arithmetic, and flat memory addressing (memory is treated as a linear address space with no segmentation). It would do away with certain compromises from past languages imposed by shortages of memory (for example, forward declarations would not be required). It would primarily appeal to C and C++ users, as expertise with those languages would be readily transferrable. The interface with C was designed to be zero cost.

The language design was begun in late 1999. An alpha version appeared in 2001 and the initial language was completed, somewhat arbitrarily, at version 1.0 in January 2007. During that time, the language evolved considerably, both in capability and in the accretion of a substantial worldwide community that became increasingly involved with contributing. The front end was open-sourced in April 2002, and the back end was donated by Symantec to the open source community in 2017. Meanwhile, two additional open-source back ends became mature in the 2010s: `gdc` (using the same back end as the GNU C++ compiler) and `ldc` (using the LLVM back end).

The increasing use of the D language in the 2010s created an impetus for formalization and development management. To that end, the D Language Foundation was created in September 2015 as a nonprofit corporation overseeing work on D's definition and implementation, publications, conferences, and collaborations with universities.

References

  1. Andrei Alexandrescu. 2010. The D Programming Language. Addison-Wesley Professional, Boston.Google ScholarGoogle Scholar
  2. Joel F. Bartlett. 1989. Mostly-Copying Garbage Collection Picks up Generations and C++. (oct 1989). https://www.hpl.hp. com/techreports/Compaq- DEC/WRL- TN- 12.pdfGoogle ScholarGoogle Scholar
  3. Kris Bell, Lars Ivar Igesund, Sean Kelly, and Michael Parker. 2008. Learn to Tango with D. Apress, New York.Google ScholarGoogle Scholar
  4. Janet Feigenspan, Christian Kästner, Sven Apel, Jörg Liebig, Michael Schulze, Raimund Dachselt, Maria Papendieck, Thomas Leich, and Gunter Saake. 2013. Do background colors improve program comprehension in the #ifdef hell? Empirical Software Engineering 18, 4 (2013), 699–745.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Richard Jones. 1996. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, New Jersey.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Donald Ervin Knuth. 1984. Literate programming. Comput. J. 27, 2 (1984), 97–111.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Douglas Kramer. 1999. API Documentation from Source Code Comments: A Case Study of Javadoc. In Proceedings of the 17th Annual International Conference on Computer Documentation (SIGDOC ’99). ACM, New York, NY, USA, 147–153. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Duc Le, Eric Walkingshaw, and Martin Erwig. 2011. #ifdef confirmed harmful: Promoting understandable software variation. In 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 143–150.Google ScholarGoogle Scholar
  9. Flávio Medeiros, Márcio Ribeiro, Rohit Gheyi, Sven Apel, Christian Kästner, Bruno Ferreira, Luiz Carvalho, and Baldoino Fonseca. 2018. Discipline matters: Refactoring of preprocessor directives in the #ifdef hell. IEEE Transactions on Software Engineering 44, 5 (2018), 453–469.Google ScholarGoogle ScholarCross RefCross Ref
  10. Microsoft 2015. Using SAL annotations to reduce C/C++ code defects. Technical Report. Technical report, Microsoft Developer Network, 2015. 62 Bibliography.Google ScholarGoogle Scholar
  11. Norbert Pataki, Zalán Szűgyi, and Gergely Dévai. 2011. Measuring the overhead of C++ standard template library safe variants. Electronic Notes in Theoretical Computer Science 264, 5 (2011), 71–83.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. PC-Week. 1988a. Zortech Readies What It Claims Is First C++ Compiler for PC Market. (May 1988).Google ScholarGoogle Scholar
  13. PC-Week. 1988b. Zortech’s Compiler Sparks Interest in the C++ Language. (Dec. 1988).Google ScholarGoogle Scholar
  14. PC-Week. 1991. Symantec Buys Zortech To Vie In C++ Market. (Aug. 1991).Google ScholarGoogle Scholar
  15. Carlo Pescio. 1997. Template Metaprogramming: Make parameterized integers portable with this novel technique. C++ Report 9, 7 (July-August 1997). http://www.eptacom.net/pubblicazioni/pub_eng/paramint.htmlGoogle ScholarGoogle Scholar
  16. Janet Siegmund, Norbert Siegmund, Jana Fruth, Sven Kuhlmann, Jana Dittmann, and Gunter Saake. 2012. Program comprehension in preprocessor-based software. In International Conference on Computer Safety, Reliability, and Security. Springer, 517–528.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Bjarne Stroustrup. 1985. The C++ Programming Language. Addison Wesley, Boston.Google ScholarGoogle Scholar
  18. Tobias Wasserman and Christian Speer. 2007. Programmieren in D. Entwickler Press, Frankfurt.Google ScholarGoogle Scholar
  19. Niklaus Wirth. 1971. The programming language Pascal. Acta informatica 1, 1 (1971), 35–63.Google ScholarGoogle Scholar
  20. Alex. 2018. Why do private member variables behaved like protected in the same module when creating deriving class? https://forum.dlang.org/post/[email protected] (retrieved 12 March 2020)Google ScholarGoogle Scholar
  21. Andrei Alexandrescu. 2005. Lock-Free Programming. https://nwcpp.org/january- 2005.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  22. Andrei Alexandrescu. 2009. On Iteration. (Nov.). http://www.informit.com/articles/article.aspx?p=1407357Google ScholarGoogle Scholar
  23. Andrei Alexandrescu and Petru Marginean. 2000. Change the way you write exception-safe code—forever. (1 Dec.). http://www.drdobbs.com/cpp/generic- change- the- way- you- write- excepti/184403758 (retrieved 12 March 2020; also at Internet Archive 19 Feb. 2019 02:29:17 ).Google ScholarGoogle Scholar
  24. Brad Anderson. 2004. www.dsource.org . https://digitalmars.com/d/archives//26588.html#N26588 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  25. Bill Baxter. 2005. Meta-programming supported in the language. https://digitalmars.com/d/archives/digitalmars/D/23175. html#N23175 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  26. BCS. 2007. installing Phobos and Tango. https://digitalmars.com/d/archives/digitalmars/D/installing_Phobos_and_Tango_ 56782.html#N56782 (retrieved 12 March 2020) This post shows another common issue that arose from the Tango and Phobos split. The author is uncertain how to install both libraries at the same time.Google ScholarGoogle Scholar
  27. BLS. 2007. D Conference Tango Phobos. https://www.digitalmars.com/d/archives/digitalmars/D/D_Conference_Tango_ Phobos_57371.html#N57371 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  28. Bobef. 2005. What about a real forum? https://digitalmars.com/d/archives/digitalmars/D/20025.html#N20025 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  29. Walter Bright. 1979. Empire in Fortran-10 for the PDP-10. GitHub repository. https://github.com/DigitalMars/Empire- forPDP- 10 (retrieved 12 March 2020) This is this source code for Walter’s original Fortran-10 version of Empire.Google ScholarGoogle Scholar
  30. Walter Bright. 2001a. D Alpha Compiler. Digital Mars. https://digitalmars.com/d/archives/2226.html#N2226 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  31. Walter Bright. 2001b. The D Programming Language. https://digitalmars.com/2001- 01- 31DraftDSpecification.pdf (retrieved 12 March 2020)Google ScholarGoogle Scholar
  32. Walter Bright. 2001c. D Programming Language spec. https://digitalmars.com/d/archives/2.html#N2 (retrieved 12 March 2020) The link to the spec in this newsgroup post is now a redirect to dlang.org . A much later 1.0 version of the old spec can be found at https://digitalmars.com/d/1.0/index.html .Google ScholarGoogle Scholar
  33. Walter Bright. 2001d. Garbage Collection. https://digitalmars.com/d/1.0/garbage.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  34. Walter Bright. 2001e. Templates. https://digitalmars.com/d/archives/369.html#N858 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  35. Walter Bright. 2002a. The D Programming Language. (1 Feb.). http://www.drdobbs.com/cpp/the- d- programminglanguage/184404968 (retrieved 12 March 2020; also at Internet Archive 2 Aug. 2019 08:34:17 ).Google ScholarGoogle Scholar
  36. Walter Bright. 2002b. Garbage Collection. https://digitalmars.com/d/archives/4186.html#N4202 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  37. Walter Bright. 2002c. One more vote for ’foreach’. https://digitalmars.com/d/archives//8773.html#N8807 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  38. Walter Bright. 2002d. Re: Helping Out. https://digitalmars.com/d/archives/8574.html#N8575 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  39. Walter Bright. 2003. Re: DMD 0.76 release. https://digitalmars.com/d/archives/19380.html#N19389 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  40. Walter Bright. 2004a. The D Programming Language. https://nwcpp.org/october- 2004.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  41. Walter Bright. 2004b. D wish list for 2004. https://digitalmars.com/d/archives//20938.html#N20951 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  42. Walter Bright. 2004c. Empire is now in D. https://digitalmars.com/d/archives/digitalmars/D/13.html#N13 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  43. Walter Bright. 2004d. mixins. https://digitalmars.com/d/archives/digitalmars/D/1228.html#N1228 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  44. Walter Bright. 2004e. new D newsgroups. https://digitalmars.com/d/archives/digitalmars/D/bugs/2.html#N2 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  45. Walter Bright. 2005a. Announcing new newsgroups. https://digitalmars.com/d/archives/digitalmars/D/announce/2.html#N2 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  46. Walter Bright. 2005b. DMD 0.132 release - introducing the new Ddoc documentation generator. https://www.digitalmars. com/d/archives/digitalmars/D/announce/1553.html#N1553 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  47. Walter Bright. 2005c. Re: Meta-programming supported in the language. https://digitalmars.com/d/archives/digitalmars/D/ 23175.html#N23345 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  48. Walter Bright. 2005d. Re: Meta-programming supported in the language. https://digitalmars.com/d/archives/digitalmars/D/ 23175.html#N23568 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  49. Walter Bright. 2006a. D Conference 2007. https://digitalmars.com/d/archives/digitalmars/D/announce/D_Conference_2007_ 5536.html#N5536 (retrieved 12 March 2020) This was the first newsgroup post Walter wrote that referred to the conference. It was an announcement that he and Brad Roberts had been discussing the potential for a conference and was intended to “gauge the level of interest.”Google ScholarGoogle Scholar
  50. Walter Bright. 2006b. New newsgroup digitalmars.D.dwt. https://digitalmars.com/d/archives/digitalmars/D/dwt/1.html#N1 (retrieved 12 March 2020) Despite Walter’s enthusiasm, DWT was never widely adopted. As of 2020, DWT is no longer considered the “official” GUI toolkit for D.Google ScholarGoogle Scholar
  51. Walter Bright. 2006c. New web interface to forums. https://digitalmars.com/d/archives/digitalmars/D/announce/New_web_ interface_to_forums_6086.html#N6086 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  52. Walter Bright. 2007a. DMD 1.00 - here it is! https://digitalmars.com/d/archives/digitalmars/D/announce/DMD_1.00_-_here_it_is_6581.html#N6581 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  53. Walter Bright. 2007b. DMD 2.000 alpha release. https://digitalmars.com/d/archives/digitalmars/D/announce/DMD_2.000_ alpha_release_9037.html#N9037 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  54. Walter Bright. 2007c. Re: So, what happened? https://digitalmars.com/d/archives/digitalmars/D/So_what_happened_57378. html#N57429 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  55. Walter Bright. 2007d. Tango 0.95 beta1 released. https://digitalmars.com/d/archives/digitalmars/D/announce/Tango_0.95_ beta1_released_7035.html#N7096 (retrieved 12 March 2020) Tango was a large, complex project. There were no other D projects of the same scale and scope at the time. Walter was genuinely impressed by what the Tango team had accomplished and pleased to see D employed in such a project.Google ScholarGoogle Scholar
  56. Walter Bright. 2008. Removing D embedded in HTML feature. https://digitalmars.com/d/archives/digitalmars/D/Removing_ D_embedded_in_HTML_feature_68747.html#N68747 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  57. Walter Bright. 2009a. C’s biggest mistake. (22 Dec.). https://digitalmars.com/articles/b44.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  58. Walter Bright. 2009b. Designing Safe Software Systems Part 2. (Nov.). https://digitalmars.com/articles/b40.html (retrieved 12 March 2020) In this article, originally published at Dr. Dobb’s, Walter shows how the ideas he outlined in his article “Safe Systems from Unreliable Parts” can be incorporated into software.Google ScholarGoogle Scholar
  59. Walter Bright. 2009c. Safe Systems from Unreliable Parts. (Oct.). https://digitalmars.com/articles/b39.html (retrieved 12 March 2020) This article was originally published at the Dr. Dobb’s website, where Walter maintained a blog for some time. In it, Walter explains that safe systems must have an independent backup or a failsafe shutdown that is decoupled from the primary system.Google ScholarGoogle Scholar
  60. Walter Bright. 2012. Component Programming in D. (2 Oct.). http://www.drdobbs.com/architecture- and- design/componentprogramming- in- d/240008321 (retrieved 12 March 2020; also at Internet Archive 21 July 2019 12:00:10 ).Google ScholarGoogle Scholar
  61. Walter Bright. 2013a. DConf 2013 - what a show! https://forum.dlang.org/post/[email protected] (retrieved 12 March 2020)Google ScholarGoogle Scholar
  62. Walter Bright. 2013b. Re: Registration now open on dconf.org. https://forum.dlang.org/post/kf [email protected] (retrieved 12 March 2020)Google ScholarGoogle Scholar
  63. Walter Bright. 2016. Re: Vision for the D language - stabilizing complexity? https://forum.dlang.org/post/nmf48b$1ckm$1@ digitalmars.com (retrieved 12 March 2020)Google ScholarGoogle Scholar
  64. Walter Bright. 2018. Re: Why do private member variables behaved like protected in the same module when creating deriving class? https://forum.dlang.org/post/[email protected] (retrieved 12 March 2020)Google ScholarGoogle Scholar
  65. Walter Bright and Andrei Alexandrescu. 2007. The Future of D. https://dconf.org/2007/WalterAndrei.pdf/WalterAndrei.pdf (retrieved 12 March 2020) Also at http://s3.amazonaws.com/dconf2007/WalterAndrei.pdf This PDF file contains the slides from the two presentations that Walter and Andrei gave at the 2007 D Programming Language Conference.Google ScholarGoogle Scholar
  66. D Language Foundation 2020a. Areas of D Usage. https://dlang.org/areas- of- d- usage.html (retrieved 12 March 2020) This page provides an overview of the real-world D usage.Google ScholarGoogle Scholar
  67. D Language Foundation 2020b. Organizations using the D Language. https://dlang.org/orgs- using- d.html (retrieved 12 March 2020) This is a list of organizations known to be using the D programming language. It is generally updated upon request.Google ScholarGoogle Scholar
  68. Jonathan Davis. 2010. Answer: Does the D language have multiple standard libraries and issues with GC? https://stackoverflow. com/a/3206985 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  69. D Language Foundation 2013. DConf Homepage. D Language Foundation. https://dconf.org/ (retrieved 12 March 2020) The web pages for every D Programming Language Conference from 2013 onward are available from here. DConf 2020 was canceled due to the outbreak of the COVID-19 virus.Google ScholarGoogle Scholar
  70. Digital Mars 1999. Digital Mars C, C++, and D Compilers. Digital Mars. https://digitalmars.com/ (retrieved 12 March 2020)Google ScholarGoogle Scholar
  71. Digital Mars 2002a. news.digitalmars.com - digitalmars.D. https://digitalmars.com/d/archives/index2002.html (retrieved 12 March 2020) This is the Digital Mars D newsgroup archive for 2002.Google ScholarGoogle Scholar
  72. Digital Mars 2002b. What’s New for D 0.15. D changelog. https://digitalmars.com/d/1.0/changelog1.html#new015 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  73. Digital Mars 2002c. What’s New for D 0.40. D change log. https://digitalmars.com/d/1.0/changelog1.html#new040 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  74. Digital Mars 2003a. news.digitalmars.com - digitalmars.D. https://digitalmars.com/d/archives/index2003.html (retrieved 12 March 2020) This is the Digital Mars D newsgroup archive for 2003.Google ScholarGoogle Scholar
  75. Digital Mars 2003b. What’s New for D 0.71. D change log. https://digitalmars.com/d/1.0/changelog1.html#new071 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  76. Digital Mars 2003c. What’s New for D 0.76. Digital Mars. https://digitalmars.com/d/1.0/changelog1.html#new076 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  77. Digital Mars 2005a. What’s New for D 0.124. D change log. https://digitalmars.com/d/1.0/changelog1.html#new0124 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  78. Digital Mars 2005b. What’s New for D 0.126. Digital Mars. https://digitalmars.com/d/1.0/changelog1.html#new0126 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  79. Digital Mars 2006. Version D 0.149. D change log. https://digitalmars.com/d/1.0/changelog2.html#new0149 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  80. Digital Mars 2007a. Change Log: 2.000. D change log. https://dlang.org/changelog/2.000.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  81. Digital Mars 2007b. News Groups. https://digitalmars.com/NewsGroup.html (retrieved 12 March 2020) This page provides links to the newsgroups, the modern web interface to each newsgroup, the mailing lists, and the newsgroup archives.Google ScholarGoogle Scholar
  82. Digital Mars 2007c. Version D 1.00. D change log. https://digitalmars.com/d/1.0/changelog2.html#new1_00 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  83. Digital Mars 2012a. Embedding D in HTML. https://digitalmars.com/d/1.0/html.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  84. Digital Mars 2012b. Template Mixins. https://digitalmars.com/d/1.0/template- mixin.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  85. D Language Foundation 2015a. std.experimental.allocator. D Language Foundation. https://dlang.org/phobos/std_ experimental_allocator.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  86. D Language Foundation 2015b. The D Language Foundation. D Language Foundation. https://dlang.org/foundation/about. html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  87. D Language Foundation [n.d.]. Type Qualifiers. D Language Foundation. https://dlang.org/spec/const3.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  88. Patrick Down. 2002. Mixins. https://digitalmars.com/d/archives/9093.html#N9093 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  89. DSource.org 2004. Ares Project Page. http://www.dsource.org/projects/ares (retrieved 12 March 2020)Google ScholarGoogle Scholar
  90. Dsource.org 2004. DSource Projects. http://www.dsource.org/projects/ (retrieved 12 March 2020)Google ScholarGoogle Scholar
  91. DSource.org 2004a. DWT Project Page. http://www.dsource.org/projects/dwt (retrieved 12 March 2020)Google ScholarGoogle Scholar
  92. DSource.org 2004b. Mango Project Page. http://www.dsource.org/projects/mango (retrieved 12 March 2020)Google ScholarGoogle Scholar
  93. DWiki 2018. Documentation Generators. https://wiki.dlang.org/Documentation_Generators (retrieved 12 March 2020)Google ScholarGoogle Scholar
  94. EDM/2. 2017. Zortech C++. http://www.edm2.com/index.php/Zortech_C%2B%2B (retrieved 12 March 2020) The “Electronic Developer Magazine for OS/2” was the only online source we could find with what appears to be a full listing of Zortech C++ and Symantec C++ compiler versions.Google ScholarGoogle Scholar
  95. EDM/2. 2018. Symantec C++. http://www.edm2.com/index.php/Symantec_C%2B%2B (retrieved 12 March 2020) The “Electronic Developer Magazine for OS/2” was the only online source we could find with what appears to be a full listing of Zortech C++ and Symantec C++ compiler versions.Google ScholarGoogle Scholar
  96. Ivan Frohne. 2001. D - Multidimensional arrays; reference operator; longs. https://digitalmars.com/d/archives/4.html#N4 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  97. Hacker News 2015. DFeed. https://news.ycombinator.com/item?id=9990763 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  98. Henning Hasemann. 2007. phobos / tango / ares. https://digitalmars.com/d/archives/digitalmars/D/learn/phobos_tango_ ares_6358.html#N6358 (retrieved 12 March 2020) This newsgroup post is demonstrative of the confusion some D users had at the time. Between Phobos, Tango, and Sean Kelly’s Ares (a Tango precursor), new D users especially, but also those who did not closely follow the newsgroups, were often uncertain about the differences between the libraries or how and when to use them.Google ScholarGoogle Scholar
  99. Brian Hay. 2006. little thing - D and phobos naming conventions. https://digitalmars.com/d/archives/digitalmars/D/little_ thing_- _D_and_phobos_naming_conventions_43299.html#N43299 (retrieved 12 March 2020) This newsgroup post is demonstrative of complaints about consistency in the Phobos API in terms of naming convention and API functionality.Google ScholarGoogle Scholar
  100. Lars Ivar Igesund. 2007. Tango 0.95 beta1 released. https://digitalmars.com/d/archives/digitalmars/D/announce/Tango_0.95_ beta1_released_7035.html#N7035 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  101. Lars Ivar Igesund. 2012. What happened? http://www.dsource.org/projects/tango/forums/topic/920 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  102. Mikkel Jørgensen. 2003. interfaces and mixins. https://digitalmars.com/d/archives/20345.html#N20345 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  103. Sean Kelly. 2006. Announcing a New Library. https://digitalmars.com/d/archives/digitalmars/D/announce/Announcing_a_ new_library_6522.html#N6522 (retrieved 12 March 2020) This newsgroup post was published to announce the existence of Tango and its design features (modularity, atomic mark/sweep garbage collection, support for concurrency, etc.). The beta release was planned to follow the release of DMD 1.000.Google ScholarGoogle Scholar
  104. Sean Kelly. 2007. Re: So, what happened? https://digitalmars.com/d/archives/digitalmars/D/So_what_happened_57378. html#N57419 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  105. Jan Knepper. 2001. Digital Mars D Newsgroups! https://digitalmars.com/d/archives/1.html#N1 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  106. Richard Krehbiel. 2001. Macros. https://digitalmars.com/d/archives/30.html#N30 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  107. Lockheed Martin 2005. Joint Strike Fighter Air Vehicle C++ Coding Standards for the System Development and Demonstration Program. Document. http://www.stroustrup.com/JSF- AV- rules.pdf (retrieved 12 March 2020)Google ScholarGoogle Scholar
  108. Christopher Miller. 2004. DFL. http://www.dprogramming.com/dfl.php (retrieved 12 March 2020) Although the DFL page is still available as of 2020, and some D newcomers sometimes download the source code with the intent to use it, the project has been long dead.Google ScholarGoogle Scholar
  109. Christopher Miller. 2006. #D on IRC. https://digitalmars.com/d/archives/digitalmars/D/announce/2618.html#N2618 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  110. Ocean 2017. sociomantic-tsunami/ocean. GitHub repository. https://github.com/sociomantic- tsunami/ocean (retrieved 12 March 2020)Google ScholarGoogle Scholar
  111. Andrew Orlowski. 2001. Linux is the future, say former MS execs. (7 May). https://www.theregister.co.uk/2001/05/07/ linux_is_the_future_say/ (retrieved 12 March 2020) This article provides some additional information about Eric Engstrom and how he left Microsoft to found Chromium.Google ScholarGoogle Scholar
  112. Vladimir Panteleev. 2012. DFeed, an NNTP/mailing list web frontend/forum software, news aggregator and IRC bot. GitHub repository. https://github.com/CyberShadow/DFeed (retrieved 12 March 2020)Google ScholarGoogle Scholar
  113. Vladimir Panteleev. 2014. dsource.org moved. https://forum.dlang.org/post/[email protected] (retrieved 12 March 2020)Google ScholarGoogle Scholar
  114. Mike Parker. 2006. My D Blog. https://digitalmars.com/d/archives/digitalmars/D/announce/2563.html#N2563 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  115. Michael Parker. 2016. The Why and Wherefore of the New D Improvement Proposal Process. (20 July). https://dlang.org/ blog/2016/07/20/the- why- and- wherefore- of- the- new- d- improvement- proposal- process (retrieved 12 March 2020)Google ScholarGoogle Scholar
  116. Michael Parker. 2017. Project Highlight: Funkwerk. (28 July). https://dlang.org/blog/2017/07/28/project- highlight- funkwerk/ (retrieved 12 March 2020)Google ScholarGoogle Scholar
  117. 2012b. D Slices. https://vibed.org/features#native- code (retrieved 12 March 2020)Google ScholarGoogle Scholar
  118. Rejected Software 2012c. ddox. GitHub repository. https://github.com/rejectedsoftware/ddox (retrieved 12 March 2020)Google ScholarGoogle Scholar
  119. Brad Roberts. 2006. Re: D Conference 2007. https://digitalmars.com/d/archives/digitalmars/D/announce/D_Conference_ 2007_5536.html#N5538 (retrieved 12 March 2020) In the discussion thread opened by Walter’s post to gauge interest in a D conference, Brad made it clear that there was no budget to sponsor anyone and that they were trying to obtain sponsored space. What he didn’t say was that the potential sponsor was his employer, Amazon.Google ScholarGoogle Scholar
  120. Brad Roberts. 2007a. Conference 2007—D Programming Language. http://d.puremagic.com/conference2007/index.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  121. Brad Roberts. 2007b. D Developers Conference. https://digitalmars.com/d/archives/digitalmars/D/announce/D_Developers_ Conference_7642.html#N7642 (retrieved 12 March 2020) This newsgroup post announcing that a conference location had been secured also asked the community for ideas about organizational details. It was published under the user name “user domain.invalid”, but in a subsequent reply Brad made it clear he was the author.Google ScholarGoogle Scholar
  122. Adam Ruppe. GitHub repository. adrdox. GitHub repository. https://github.com/adamdruppe/adrdox (retrieved 12 March 2020)Google ScholarGoogle Scholar
  123. Steven Schveighoffer. 2011. D Slices. https://dlang.org/articles/d- array- article.html (retrieved 12 March 2020)Google ScholarGoogle Scholar
  124. SD West [n.d.]. Software Development Conference & Expo. Archived at Internet Archive: https://web.archive.org/web/ 20040318050849/http://sdexpo.com/ (18 March 2004 05:08:49)Google ScholarGoogle Scholar
  125. Tim Sweeney. 2001. Re: Macros. https://digitalmars.com/d/archives/30.html#N339 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  126. Mark T. 2003. D wish list for 2004. https://digitalmars.com/d/archives//20938.html#N20938 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  127. Tango-D2 2012. SeigeLord/Tango-D2. GitHub repository. https://github.com/SiegeLord/Tango- D2 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  128. Tango Wiki 2008. Tango Conference 2008, Torun, Poland. http://dsource.org/projects/tango/wiki/TangoConference2008 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  129. H. S. Teoh. 2013. Component programming with ranges. (Aug.). https://wiki.dlang.org/Component_programming_with_ ranges (retrieved 12 March 2020)Google ScholarGoogle Scholar
  130. The Eclipse Foundation 2003. SWT: The Standard Widget Toolkit. http://www.eclipse.org/swt/ (retrieved 12 March 2020)Google ScholarGoogle Scholar
  131. The GTK Team 1997. The GTK Project. https://www.gtk.org/ (retrieved 12 March 2020)Google ScholarGoogle Scholar
  132. D Language Foundation 2017. The D Blog. D Language Foundation. https://dlang.org/blog/ (retrieved 12 March 2020)Google ScholarGoogle Scholar
  133. Bernard Vaillot, Andre Barro, and Greg Gransden. 2003. Air Emergency. Docudrama series. https://imdb.com/title/tt2091498/ (retrieved 12 March 2020) This television series dramatizes air accidents and reconstructs them through the accounts of aviation experts and witnesses. It also explores the lessons learned from accident analysis. We cite it as an excellent source to demonstrate that arriving at an intuitive design is often a proces of trial and error.Google ScholarGoogle Scholar
  134. Dimitri Van Heesch. 1997. Doxygen. http://www.doxygen.nl/ (retrieved 12 March 2020)Google ScholarGoogle Scholar
  135. Mike Wey. 2004. GtkD. https://gtkd.org/ (retrieved 12 March 2020) As of 2020, Mike Wey still maintains GtkD. Its user base appears to have grown. Ron Tarrant started gtkdcoding.com in early 2019 to publish GtkD tutorials and subsequently attracted a dedicated following.Google ScholarGoogle Scholar
  136. Wikipedia. 2010. Datalight. https://en.wikipedia.org/wiki/Datalight (retrieved 12 March 2020) Roy Sherrill, the founder of Datalight, was already selling a so-called “Small-C” compiler. When he licensed Northwest C from Walter, he gained a better compiler and Walter gained access to a larger market.Google ScholarGoogle Scholar
  137. Matthew Wilson. 2003a. === / == / !== / != - a recipe for disaster! https://digitalmars.com/d/archives/18188.html#N18188 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  138. Matthew Wilson. 2003b. Identity & equivalence. https://digitalmars.com/d/archives/12141.html#N12141 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  139. Matthew Wilson. 2003c. null == o? https://digitalmars.com/d/archives//12144.html#N12144 (retrieved 12 March 2020)Google ScholarGoogle Scholar
  140. Georg Wrede. 2006. STEP UP PHOBOS DEVELOPMENT 10 FOLD. https://digitalmars.com/d/archives/digitalmars/D/38911. html#N38911 (retrieved 12 March 2020) This newsgroup post and the subsequent discussion serve as an example of the opinions some D users had of Phobos at the time. Much of the discussion revolves around the minimalism of the Phobos API in comparison to the standard libraries of Java and C#.Google ScholarGoogle Scholar
  141. James Yates. 2002. ’foreach’ style loop? https://digitalmars.com/d/archives//5238.html#N5238 (retrieved 12 March 2020)Google ScholarGoogle Scholar

Index Terms

  1. Origins of the D programming language

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image Proceedings of the ACM on Programming Languages
        Proceedings of the ACM on Programming Languages  Volume 4, Issue HOPL
        June 2020
        1524 pages
        EISSN:2475-1421
        DOI:10.1145/3406494
        Issue’s Table of Contents

        Copyright © 2020 Owner/Author

        This work is licensed under a Creative Commons Attribution International 4.0 License.

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 12 June 2020
        Published in pacmpl Volume 4, Issue HOPL

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader