Jump to content
From ArchWiki

From Wikipedia:D (programming language):

  "The D programming language, also known simply as D, is an object-oriented, imperative, multi-paradigm system programming language by Walter Bright of Digital Mars. It originated as a re-engineering of C++, but even though it is predominantly influenced by that language, it is not a variant of it. D has redesigned some C++ features and has been influenced by concepts used in other programming languages, such as Java, C#, and Eiffel".

## Installation

This article or section needs expansion.

Reason: Add ldc (based on LLVM) and gcc-d (the D frontend for GCC). (Discuss in Talk:D)

To program in D you will need two things - a D compiler and a library. Easiest way to get started fast is to install dlang-dmd package group. It will provide the official compiler (dmd), the standard library libphobos and dtools, a collection of small development tools.

## Testing the installation

To make sure that everything is installed and set up correctly, a simple "Hello World" program should suffice.

    import std.stdio;

    void main() {
       string yourName = "archer";
       writefln("Hello %s!", yourName);
    }

Paste the code into a file, name it `hello.d`, and run:

    $ dmd hello.d

in the same directory as the file. You should then be able to execute the program with:

    $ ./hello

You can also execute

    $ dmd -run hello.d

which will simply compile and run without leaving any object files in the directory.

## Considerations

There are however possible choices regarding the compiler you choose. The reference implementation is dmd, but gcc-d (D frontend for GCC) and ldc (LLVM D Compiler) are also available.

As of April 2017 dmd's backend is now FOSS (Boost-licensed). All compilers share the same front-end code and thus have almost identical support for language features (assuming same front-end version).

## Useful libraries and bindings

- DDT - Eclipse plugin for project and code management in D
- Mono-D - MonoDevelop addin for programming in D
- QtD - Qt bindings for D
- GtkD - An object oriented GTK wrapper for D
- Derelict - Bindings for multimedia libraries, focused toward game development
- Deimos - A project that houses a lot of bindings to different C libraries

## See also

- Phobos GitHub repository
- The D Programming Language - The official home of D
- Planet D - A collection of blogs about D
- D Wiki

Category:

- Programming languages

Hidden category:

- Pages or sections flagged with Template:Expansion