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.
- Andrei Alexandrescu. 2010. The D Programming Language. Addison-Wesley Professional, Boston.Google Scholar
- 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 Scholar
- Kris Bell, Lars Ivar Igesund, Sean Kelly, and Michael Parker. 2008. Learn to Tango with D. Apress, New York.Google Scholar
- 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 ScholarDigital Library
- Richard Jones. 1996. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, New Jersey.Google ScholarDigital Library
- Donald Ervin Knuth. 1984. Literate programming. Comput. J. 27, 2 (1984), 97–111.Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- Microsoft 2015. Using SAL annotations to reduce C/C++ code defects. Technical Report. Technical report, Microsoft Developer Network, 2015. 62 Bibliography.Google Scholar
- 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 ScholarDigital Library
- PC-Week. 1988a. Zortech Readies What It Claims Is First C++ Compiler for PC Market. (May 1988).Google Scholar
- PC-Week. 1988b. Zortech’s Compiler Sparks Interest in the C++ Language. (Dec. 1988).Google Scholar
- PC-Week. 1991. Symantec Buys Zortech To Vie In C++ Market. (Aug. 1991).Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- Bjarne Stroustrup. 1985. The C++ Programming Language. Addison Wesley, Boston.Google Scholar
- Tobias Wasserman and Christian Speer. 2007. Programmieren in D. Entwickler Press, Frankfurt.Google Scholar
- Niklaus Wirth. 1971. The programming language Pascal. Acta informatica 1, 1 (1971), 35–63.Google Scholar
- 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 Scholar
- Andrei Alexandrescu. 2005. Lock-Free Programming. https://nwcpp.org/january- 2005.html (retrieved 12 March 2020)Google Scholar
- Andrei Alexandrescu. 2009. On Iteration. (Nov.). http://www.informit.com/articles/article.aspx?p=1407357Google Scholar
- 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 Scholar
- Brad Anderson. 2004. www.dsource.org . https://digitalmars.com/d/archives//26588.html#N26588 (retrieved 12 March 2020)Google Scholar
- Bill Baxter. 2005. Meta-programming supported in the language. https://digitalmars.com/d/archives/digitalmars/D/23175. html#N23175 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- Bobef. 2005. What about a real forum? https://digitalmars.com/d/archives/digitalmars/D/20025.html#N20025 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- Walter Bright. 2001a. D Alpha Compiler. Digital Mars. https://digitalmars.com/d/archives/2226.html#N2226 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2001b. The D Programming Language. https://digitalmars.com/2001- 01- 31DraftDSpecification.pdf (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- Walter Bright. 2001d. Garbage Collection. https://digitalmars.com/d/1.0/garbage.html (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2001e. Templates. https://digitalmars.com/d/archives/369.html#N858 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- Walter Bright. 2002b. Garbage Collection. https://digitalmars.com/d/archives/4186.html#N4202 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2002c. One more vote for ’foreach’. https://digitalmars.com/d/archives//8773.html#N8807 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2002d. Re: Helping Out. https://digitalmars.com/d/archives/8574.html#N8575 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2003. Re: DMD 0.76 release. https://digitalmars.com/d/archives/19380.html#N19389 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2004a. The D Programming Language. https://nwcpp.org/october- 2004.html (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2004b. D wish list for 2004. https://digitalmars.com/d/archives//20938.html#N20951 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2004c. Empire is now in D. https://digitalmars.com/d/archives/digitalmars/D/13.html#N13 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2004d. mixins. https://digitalmars.com/d/archives/digitalmars/D/1228.html#N1228 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2004e. new D newsgroups. https://digitalmars.com/d/archives/digitalmars/D/bugs/2.html#N2 (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2005a. Announcing new newsgroups. https://digitalmars.com/d/archives/digitalmars/D/announce/2.html#N2 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Walter Bright. 2009a. C’s biggest mistake. (22 Dec.). https://digitalmars.com/articles/b44.html (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Walter Bright. 2013a. DConf 2013 - what a show! https://forum.dlang.org/post/[email protected] (retrieved 12 March 2020)Google Scholar
- Walter Bright. 2013b. Re: Registration now open on dconf.org. https://forum.dlang.org/post/kf [email protected] (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Digital Mars 1999. Digital Mars C, C++, and D Compilers. Digital Mars. https://digitalmars.com/ (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Digital Mars 2006. Version D 0.149. D change log. https://digitalmars.com/d/1.0/changelog2.html#new0149 (retrieved 12 March 2020)Google Scholar
- Digital Mars 2007a. Change Log: 2.000. D change log. https://dlang.org/changelog/2.000.html (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- Digital Mars 2012a. Embedding D in HTML. https://digitalmars.com/d/1.0/html.html (retrieved 12 March 2020)Google Scholar
- Digital Mars 2012b. Template Mixins. https://digitalmars.com/d/1.0/template- mixin.html (retrieved 12 March 2020)Google Scholar
- D Language Foundation 2015a. std.experimental.allocator. D Language Foundation. https://dlang.org/phobos/std_ experimental_allocator.html (retrieved 12 March 2020)Google Scholar
- D Language Foundation 2015b. The D Language Foundation. D Language Foundation. https://dlang.org/foundation/about. html (retrieved 12 March 2020)Google Scholar
- D Language Foundation [n.d.]. Type Qualifiers. D Language Foundation. https://dlang.org/spec/const3.html (retrieved 12 March 2020)Google Scholar
- Patrick Down. 2002. Mixins. https://digitalmars.com/d/archives/9093.html#N9093 (retrieved 12 March 2020)Google Scholar
- DSource.org 2004. Ares Project Page. http://www.dsource.org/projects/ares (retrieved 12 March 2020)Google Scholar
- Dsource.org 2004. DSource Projects. http://www.dsource.org/projects/ (retrieved 12 March 2020)Google Scholar
- DSource.org 2004a. DWT Project Page. http://www.dsource.org/projects/dwt (retrieved 12 March 2020)Google Scholar
- DSource.org 2004b. Mango Project Page. http://www.dsource.org/projects/mango (retrieved 12 March 2020)Google Scholar
- DWiki 2018. Documentation Generators. https://wiki.dlang.org/Documentation_Generators (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- Ivan Frohne. 2001. D - Multidimensional arrays; reference operator; longs. https://digitalmars.com/d/archives/4.html#N4 (retrieved 12 March 2020)Google Scholar
- Hacker News 2015. DFeed. https://news.ycombinator.com/item?id=9990763 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Lars Ivar Igesund. 2012. What happened? http://www.dsource.org/projects/tango/forums/topic/920 (retrieved 12 March 2020)Google Scholar
- Mikkel Jørgensen. 2003. interfaces and mixins. https://digitalmars.com/d/archives/20345.html#N20345 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- Jan Knepper. 2001. Digital Mars D Newsgroups! https://digitalmars.com/d/archives/1.html#N1 (retrieved 12 March 2020)Google Scholar
- Richard Krehbiel. 2001. Macros. https://digitalmars.com/d/archives/30.html#N30 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- Christopher Miller. 2006. #D on IRC. https://digitalmars.com/d/archives/digitalmars/D/announce/2618.html#N2618 (retrieved 12 March 2020)Google Scholar
- Ocean 2017. sociomantic-tsunami/ocean. GitHub repository. https://github.com/sociomantic- tsunami/ocean (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- Vladimir Panteleev. 2014. dsource.org moved. https://forum.dlang.org/post/[email protected] (retrieved 12 March 2020)Google Scholar
- Mike Parker. 2006. My D Blog. https://digitalmars.com/d/archives/digitalmars/D/announce/2563.html#N2563 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- Michael Parker. 2017. Project Highlight: Funkwerk. (28 July). https://dlang.org/blog/2017/07/28/project- highlight- funkwerk/ (retrieved 12 March 2020)Google Scholar
- 2012b. D Slices. https://vibed.org/features#native- code (retrieved 12 March 2020)Google Scholar
- Rejected Software 2012c. ddox. GitHub repository. https://github.com/rejectedsoftware/ddox (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- Brad Roberts. 2007a. Conference 2007—D Programming Language. http://d.puremagic.com/conference2007/index.html (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- Adam Ruppe. GitHub repository. adrdox. GitHub repository. https://github.com/adamdruppe/adrdox (retrieved 12 March 2020)Google Scholar
- Steven Schveighoffer. 2011. D Slices. https://dlang.org/articles/d- array- article.html (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- Tim Sweeney. 2001. Re: Macros. https://digitalmars.com/d/archives/30.html#N339 (retrieved 12 March 2020)Google Scholar
- Mark T. 2003. D wish list for 2004. https://digitalmars.com/d/archives//20938.html#N20938 (retrieved 12 March 2020)Google Scholar
- Tango-D2 2012. SeigeLord/Tango-D2. GitHub repository. https://github.com/SiegeLord/Tango- D2 (retrieved 12 March 2020)Google Scholar
- Tango Wiki 2008. Tango Conference 2008, Torun, Poland. http://dsource.org/projects/tango/wiki/TangoConference2008 (retrieved 12 March 2020)Google Scholar
- H. S. Teoh. 2013. Component programming with ranges. (Aug.). https://wiki.dlang.org/Component_programming_with_ ranges (retrieved 12 March 2020)Google Scholar
- The Eclipse Foundation 2003. SWT: The Standard Widget Toolkit. http://www.eclipse.org/swt/ (retrieved 12 March 2020)Google Scholar
- The GTK Team 1997. The GTK Project. https://www.gtk.org/ (retrieved 12 March 2020)Google Scholar
- D Language Foundation 2017. The D Blog. D Language Foundation. https://dlang.org/blog/ (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- Dimitri Van Heesch. 1997. Doxygen. http://www.doxygen.nl/ (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- 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 Scholar
- Matthew Wilson. 2003a. === / == / !== / != - a recipe for disaster! https://digitalmars.com/d/archives/18188.html#N18188 (retrieved 12 March 2020)Google Scholar
- Matthew Wilson. 2003b. Identity & equivalence. https://digitalmars.com/d/archives/12141.html#N12141 (retrieved 12 March 2020)Google Scholar
- Matthew Wilson. 2003c. null == o? https://digitalmars.com/d/archives//12144.html#N12144 (retrieved 12 March 2020)Google Scholar
- 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 Scholar
- James Yates. 2002. ’foreach’ style loop? https://digitalmars.com/d/archives//5238.html#N5238 (retrieved 12 March 2020)Google Scholar
Index Terms
- Origins of the D programming language
Recommendations
Towards a fully-reflective meta-programming language
ACSC '05: Proceedings of the Twenty-eighth Australasian conference on Computer Science - Volume 38The term meta-programming language is used to describe languages that have some capability for manipulating code. A multi-stage language is a kind of meta-programming language that allows static type-checking of dynamically generated code. The ...
Selecting the “right” programming language
SIGCSE '82: Proceedings of the thirteenth SIGCSE technical symposium on Computer science educationWith the diversity of high-level programming languages available, selecting the “right” one for a computer science curriculum or course can be a befuddling process. For a multitude of reasons, such as the manner in which students approach problems to ...
Revised Report on the Algorithmic Language Scheme
The report gives a defining description of the programming language Scheme. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele, Jr. and Gerald Jay Sussman. It was designed to have ...
Comments