DEV Community

Cover image for Learning D in a week - 12in24
Kaamkiya
Kaamkiya

Posted on

Learning D in a week - 12in24

Intro

This is a continuation of the 12in24 challenge, in which I/you/we learn 12 new coding languages (or at least the basics) in one year.

I spent about a week learning D, and here is some of what I learned.

D

Installation

You can install dmd (the D compiler) from the official downloads page.

DMD stands for Digital Mars D, although I'm not quite sure why. Maybe the creator liked Mars or Mars bars.

Getting started

Writing your first D program

We all know what's coming (or maybe not...)

module hello; import std.stdio; // string[] args is optional void main(string[] args) { writeln("Hello, World!"); } 
Enter fullscreen mode Exit fullscreen mode

Compile it with this:

$ dmd hello.d $ ./hello #=> Hello, World! 
Enter fullscreen mode Exit fullscreen mode

Now another simple program, FizzBuzz:

module fizzbuzz; // declare a module name, used when importing packages (we'll see that soon) import std.stdio : writeln, writefln; // import the writeln and writefln functions from std.stdio, but nothing else. void main() { int start = 0; int end = 100; // one way of doing a for loop for (int i = start; i < end; i++) { if (i % 15 == 0) { writeln("FizzBuzz"); } else if (i % 3 == 0) { writeln("Fizz"); } else if (i % 5 == 0) { writeln("Buzz"); } else { writefln("%d", i); // replaces %d with i } } // this is the more common way to do a for loop: foreach(i; start..end) { // same as above } } 
Enter fullscreen mode Exit fullscreen mode

The syntax, you might realize, is extremely similar to that of C. And it is. D is supposed to be another iteration of the C language.

You can see the stuff I did here.

Using packages

To create a D project, we use dub, which is D's package manager. It should have come preinstalled with D.

To create a project, run this command:

$ dub init 
Enter fullscreen mode Exit fullscreen mode

Fill out the prompts, and you have a full-on project!

Edit source/app.d to do whatever you want, like print "Blah blah blah" 500 times, or do a guess the number game.

You can then run your project with this command:

$ dub run # run the project $ dub build # build an executable for the project into ./<project_name> 
Enter fullscreen mode Exit fullscreen mode

You can follow the READMEs in the repo or follow the D documentation.

Conclusion

D is a very cool seeming language. It's very feature rich, beginner friendly (no pointers!), and is simple to learn. Some cons might be a (relative to other languages) smallish standard library, and a smaller community.

Feel free to ask questions :)

Top comments (0)