D

From RogueBasin
(Difference between revisions)
Jump to: navigation, search
(Some formatting fixes and additions to pro/cons)
(Removed the part about non-dmd compilers not supporting D2, gdc at least claims to.)
Line 23: Line 23:
 
* The language is still in development so has some rough edges.
 
* The language is still in development so has some rough edges.
 
* DMD, the official compiler, has no 64-bit support.
 
* DMD, the official compiler, has no 64-bit support.
* Other compilers than DMD don't really support D2 as of 2010-11.
 
 
* The community is divided between the stable but inactive D1 and the incompatible and still somewhat unstable D2.
 
* The community is divided between the stable but inactive D1 and the incompatible and still somewhat unstable D2.
  

Revision as of 11:48, 25 November 2010

Contents

Introduction

D is static, compiled language influenced by C++. It was created by Walter Bright, author of the first C++ compiler to compile directly to machine code.

D has an imperative core, but is a multi-paradigm language that includes support for object-orientated, functional, and generic programming.

NOTE: This article will deal with D2, the latest but still-in-development version)

Advantages

  • Fast language, with performance comparable to C++ while still being garbage collected by default.
  • Interfaces well with C libraries, without writing boilerplate or using a foreign function interface, though cannot import headers unmodified - see http://www.digitalmars.com/d/2.0/htomodule.html
  • Has a modern module system, no need to write header files or deal with a preprocessor.
  • Syntax is familiar to C, C++, C#, Java etc programmers.
  • Supports the functional programming paradigm better than other C-like languages, with features such as closures, delegates, transitive immutability, higher order functions, anonymous functions, and the ability to write compiler enforced pure functions.
  • D2 tries to do the template metaprogramming thing, which C++ supports without really meaning to, in a way that's actually sane to use.
  • DMD, the official compiler, is very fast, typically an order of magnitude faster than gcc for C/C++.

Disadvantages

  • Paucity of tools such as IDE's, editor support, debuggers etc compared to more popular languages.
  • Documentation is scarce and incomplete (though this is somewhat offset by the knowledgeable community)
  • The language is still in development so has some rough edges.
  • DMD, the official compiler, has no 64-bit support.
  • The community is divided between the stable but inactive D1 and the incompatible and still somewhat unstable D2.

Compilers

Roguelike Libraries

Bindings for libtcod - http://code.google.com/p/libtcod-d/

Links

Personal tools