Difference between revisions of "Why program in D"

From D Wiki
Jump to: navigation, search
(Created page with "Much of D's improvements appear to be small, but the aggregate is large enough that once you write a project in D, you'll find it pretty hard to go back to another language. '...")
 
(Port from ProWiki)
Line 1: Line 1:
Much of D's improvements appear to be small, but the aggregate is large
+
<blockquote>Much of D's improvements appear to be small, but the aggregate is large
 
enough that once you write a project in D, you'll find it pretty hard to
 
enough that once you write a project in D, you'll find it pretty hard to
go back to another language. ''-- WalterBright''
+
go back to another language. ''- Walter Bright'' </blockquote>
  
 
The detailed [http://digitalmars.com/d/2.0/overview.html overview] of the language should give you the big picture.
 
The detailed [http://digitalmars.com/d/2.0/overview.html overview] of the language should give you the big picture.
Line 11: Line 11:
 
* [[FAQ]]
 
* [[FAQ]]
  
[[toc]]
+
<p></p>
  
 
== Video conferences & presentations ==
 
== Video conferences & presentations ==
W. Bright: [http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/The-D-Programming-Language The D Programming Language ](2012)
+
W. Bright: [http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/The-D-Programming-Language The D Programming Language ] (2012)
  
 
A. Alexandrescu: [http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Three-Unlikely-Successful-Features-of-D Three Unlikely Successful Features of D] (2012)
 
A. Alexandrescu: [http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Three-Unlikely-Successful-Features-of-D Three Unlikely Successful Features of D] (2012)
  
A. Alexandrescu: [http://www.infoq.com/presentations/Generic-Programming-Galore-Using-D Generic Programming Galore Using D](2012)
+
A. Alexandrescu: [http://www.infoq.com/presentations/Generic-Programming-Galore-Using-D Generic Programming Galore Using D] (2012)
  
A. lexandrescu: [http://www.youtube.com/watch?v=RlVpPstLPEc Three Cool Things About D - The Case for the D Programing Language] (2010)
+
A. Alexandrescu: [http://www.youtube.com/watch?v=RlVpPstLPEc Three Cool Things About D - The Case for the D Programing Language] (2010)
  
W. Bright: [http://vimeo.com/4333802 Metaprogramming in D](2009)
+
W. Bright: [http://vimeo.com/4333802 Metaprogramming in D] (2009)
  
Here is a list of [http://prowiki.org/wiki4d/wiki.cgi?Videos older videos] relating to D.
+
Here is a list of [[Videos | older videos]] relating to D.
  
 
== Articles ==
 
== Articles ==
Line 34: Line 34:
  
 
Besides, W. Bright regularly writes enlightening [http://www.drdobbs.com/author/6839 columns in Dr Dobb's Journal]. Many are directly related to D (access is free, but it may require registering if you read more than a couple articles/day).
 
Besides, W. Bright regularly writes enlightening [http://www.drdobbs.com/author/6839 columns in Dr Dobb's Journal]. Many are directly related to D (access is free, but it may require registering if you read more than a couple articles/day).
* [http://www.drdobbs.com/blogs/cpp/232700394 Uniform function call syntax](2012)
+
 
* [http://www.drdobbs.com/blogs/cpp/232601305 Inheriting purity](2012)
+
* [http://www.drdobbs.com/blogs/cpp/232700394 Uniform function call syntax] (2012)
* [http://www.drdobbs.com/blogs/cpp/231902461 Type Qualifiers and Wild Cards](2011)
+
* [http://www.drdobbs.com/blogs/cpp/232601305 Inheriting purity] (2012)
* [http://www.drdobbs.com/blogs/cpp/231600610 Member function pointers](2011)
+
* [http://www.drdobbs.com/blogs/cpp/231902461 Type Qualifiers and Wild Cards] (2011)
Etc
+
* [http://www.drdobbs.com/blogs/cpp/231600610 Member function pointers] (2011)
  
 
A. Alexandrescu wrote several equally important articles :
 
A. Alexandrescu wrote several equally important articles :
* [http://www.informit.com/articles/article.aspx?p=1621867 Interview part 1] [http://www.informit.com/articles/article.aspx?p=1622265 part 2] [http://www.informit.com/articles/article.aspx?p=1623791 part 3](2010)
+
* [http://www.informit.com/articles/article.aspx?p=1621867 Interview part 1] [http://www.informit.com/articles/article.aspx?p=1622265 part 2] [http://www.informit.com/articles/article.aspx?p=1623791 part 3] (2010)
 
* [http://www.informit.com/articles/article.aspx?p=1609144 Concurrency in the D Programming Language](2010) (from ''The D Programming Language'' book)
 
* [http://www.informit.com/articles/article.aspx?p=1609144 Concurrency in the D Programming Language](2010) (from ''The D Programming Language'' book)
* [http://www.informit.com/articles/article.aspx?p=1407357 On iteration](2009)
+
* [http://www.informit.com/articles/article.aspx?p=1407357 On iteration] (2009)
* [http://www.ddj.com/hpc-high-performance-computing/217801225 Case For D](2009)
+
* [http://www.ddj.com/hpc-high-performance-computing/217801225 Case For D] (2009)
  
 
* N. Sabalausky [https://www.semitwist.com/articles/article/view/combine-coroutines-and-input-ranges-for-dead-simple-d-iteration Combine Coroutines and Input Ranges for Dead-Simple D Iteration]
 
* N. Sabalausky [https://www.semitwist.com/articles/article/view/combine-coroutines-and-input-ranges-for-dead-simple-d-iteration Combine Coroutines and Input Ranges for Dead-Simple D Iteration]
Line 57: Line 57:
 
Being targetted at 32 bit and 64 bit machines, D is not designed for embedded development on small devices. However, with the advent of Android and iOS smartphones which embed powerful CPUs and large amounts of RAM, D may be suitable for such development. The GCC and LLVM compiler backends being able to target these devices, the community is making progress.
 
Being targetted at 32 bit and 64 bit machines, D is not designed for embedded development on small devices. However, with the advent of Android and iOS smartphones which embed powerful CPUs and large amounts of RAM, D may be suitable for such development. The GCC and LLVM compiler backends being able to target these devices, the community is making progress.
  
Find out more at <n>StackOverflow</n>:
+
Find out more at StackOverflow:
 
* [http://stackoverflow.com/questions/1207958/getting-embedded-with-d-the-programming-language Getting Embedded with D (the programming language)]
 
* [http://stackoverflow.com/questions/1207958/getting-embedded-with-d-the-programming-language Getting Embedded with D (the programming language)]
 
* [http://stackoverflow.com/questions/1113938/how-would-you-approach-using-d-in-a-embedded-real-time-environment How would you approach using D in a embedded real-time environment?]
 
* [http://stackoverflow.com/questions/1113938/how-would-you-approach-using-d-in-a-embedded-real-time-environment How would you approach using D in a embedded real-time environment?]
Line 74: Line 74:
  
 
== Related ==
 
== Related ==
* [ComingFrom Learning D as a second language]
+
* [[ComingFrom | Learning D as a second language]]
* [LanguageSpecification Language Specification]
+
* [[LanguageSpecification | Language Specification]]
* [D__Tutorial/StartingWithD Setting up an environment to compile programs]
+
* [[D__Tutorial/StartingWithD | Setting up an environment to compile programs]]
* [DevelopmentWithD Development with D]
+
* [[DevelopmentWithD | Development with D]]
* [[link]Frequently Asked Questions[url=http://www.prowiki.org/wiki4d/wiki.cgi?DevelopmentWithD/FAQ]]
+
* [[FAQ]]
* [CurrentDUse Current uses of D]
+
* [[CurrentDUse | Current uses of D]]

Revision as of 04:22, 22 November 2012

Much of D's improvements appear to be small, but the aggregate is large

enough that once you write a project in D, you'll find it pretty hard to

go back to another language. - Walter Bright

The detailed overview of the language should give you the big picture.

Now if you are looking for reasons to start using D you are probably also looking for reasons not to use it. This was pointed out by Andrei Alexandrescu in The Case for D, "Trying to find quick reasons to avoid [learning a new language] is a survival instinct." And like any language there are reasons not to use D, but you might find that they don't apply to you or that the benefits are greater.

Video conferences & presentations

W. Bright: The D Programming Language (2012)

A. Alexandrescu: Three Unlikely Successful Features of D (2012)

A. Alexandrescu: Generic Programming Galore Using D (2012)

A. Alexandrescu: Three Cool Things About D - The Case for the D Programing Language (2010)

W. Bright: Metaprogramming in D (2009)

Here is a list of older videos relating to D.

Articles

You will find in the main website more than a dozen articles discussing several design decisions for the language and its library. Don't forget to have a look there. A few examples

Besides, W. Bright regularly writes enlightening columns in Dr Dobb's Journal. Many are directly related to D (access is free, but it may require registering if you read more than a couple articles/day).

A. Alexandrescu wrote several equally important articles :

Application Developers

Each language has a preferred application domain. D's sweet spot is high performance desktop and server side applications. It does a very good job of bringing low-level performance] in the order of C++ with the safety and expressivity of languages like Java or Python. In fact, nearly everywhere Java is suitable, D could replace it, bringing in more expressive power, better performance and better memory management. Although its current libraries are nowhere near extensive as the Java libraries, most fundamental bricks are already here. You may want to have a look at Phobos and Deimos libraries, as well as third-party libraries to make your own opinion on that matter. A very nice port of Java's SWT library has been created under the name [DsourceProject:dwt DWT].

Embedded Developers

Being targetted at 32 bit and 64 bit machines, D is not designed for embedded development on small devices. However, with the advent of Android and iOS smartphones which embed powerful CPUs and large amounts of RAM, D may be suitable for such development. The GCC and LLVM compiler backends being able to target these devices, the community is making progress.

Find out more at StackOverflow:

Numerical programmers

D provides high precision floating point, NaN, and complex/imaginary numbers. There are also a number of [ScientificLibraries math libraries] already in the works.

Script Monkey

Since D provides type inference, high-level constructs, and fast compile-time it is a great language for writing scripts. The first line of the file is ignored if it begins with #! and combining this with [DSpec2x:rdmd.html rdmd] which handles dependency resolution, D becomes a leader in machine-code scripting language.

Language Lover

Walter works to make D a practical language while providing the benefits found in languages that strictly stick to a single paradigm. If you enjoy languages D is interesting in the way it combines many paradigms in a C-like syntax.

Related