I don't think there really is much job careers using D unless you start your own company. As for gaming I know Sfml has a D wrapper and I think Sdl has too (not sure.)
I like D better than C++ because it simplifies things where C++ makes some things more complicated than necessary. Also D has properties which C++ doesn't and it makes some things easier. You can do something similar tho in C++ like:
Code:
private:
int m_value;
public:
void setValue(int value);
int getValue();
Where in D you could just do:
Code:
private int m_value;
@property
{
public void Value(int value)
{
m_value = value;
}
public int Value()
{
return m_value;
}
}
In C++ you would have to call either setValue or getValue where in D you could just call Value as a variable. Similar to properties in C#, tho C# uses the get/set scopes instead of 2 separate functions.
Code:
private int m_value;
public int Value
{
get { return m_value; }
set { m_value = value; }
}
Uhmm I also like that you don't have to rely on the standard library for certain features as they're implemented as language features. Ex. for thread locking you can call synchronize in D, where in C++ you would have to use std::lock (C++0x only as well.)
Code:
synchronized (arg)
{
// do stuff ...
}
Or a global lock:
Code:
synchronized
{
// do stuff ...
}
Where in C++ you can only do:
Code:
std::lock(mutexA, mutexB); // mutexA and mutexB has to be std::mutex
// do stuff ....
mutexA.unlock();
mutexB.unlock();
Another thing is Associative Arrays.
Code:
int[string] aArray;
This is pretty much equal to C++'s std::map except for that std::map is not suitable for classes etc.
More info here:
stackoverflow.com/questions/2281420/c-inserting-a-class-into-a-map-container#answer-2281678
Pretty much you could do this with Associative Arrays:
Code:
aArray["Bob"] = 13; // inserts bob to aArray. Bob is key, 13 is value
aArray["John"] = 18; // inserts John to aArray. John is key, 18 is value.
writeln("How old is Bob? ", aArray["Bob"]);
writeln("How old is John?", aArray["john"]);
aArray.remove("Bob");
writeln("Bob has left...");
Cba to write more lmfao, but yeah... xD