On 23.11.2011 11:23, Gour wrote:
Hello!
Re-considering to use D for real-world project and must say that
we're very pleased by seeing all the progress which has happened in a
recent time...64bit DMD, gdc might be included in gcc, there are more
bindings available (we're interested abotu sqlite3), Phobos is receiving
new modules, community is alive @github...
There is still one area which needs, imho, more attention and that is
the GUI world or language bindings for different toolkits.
New web page says: "D is a language with C-like syntax and static
typing. It pragmatically combines efficiency, control, and modeling
power, with safety and programmer productivity." and I hope that the
word 'pragmatically' includes writing GUI apps as well (hopefully there
is still life for non-web apps) :-)
However, the world of GUI bindings is not thrilling...
I wonder whether it would help, if dmd would improve with respect to the
integration of C++ object code with D. Name mangling for extern(C++)
seems almost ok, and there is a not too old patch for dmd that shows
usage of Qt without additional bindings:
http://d.puremagic.com/issues/show_bug.cgi?id=4620
I recently played around with C++ interfaces a bit in another context
and noticed that you can interface C++ classes like this:
// test.cpp
class C
{
public:
virtual int virtual_fun(int x);
int nonvirtual_fun(int x);
int a;
};
// test.d
extern (C++)
interface C
{
int virtual_fun(int n);
final int nonvirtual_fun(int n);
}
It actually needs a tiny patch on windows (nonvirtual_fun is mangled as
static function). Unfortunately I did not find a way to sensibly declare
member "a" in D. There is another bug that a derived class is using a
wrong virtual function table offset, but that should be fixable.