Here's a bit of code from a personal shopping comparison program I wrote a few days ago, which combines some standard library constructs with my own libraries:
string findProduct(string name)
{
return
("http://www.tp-link.com/en/search/?q=" ~ encodeComponent(name))
.download
.readText
.toXML
.xmlParse
.I!(doc => zip(
doc
.findAll("#productResult > li > dl > dt > a")
.map!(e => e.attributes["href"])
,
doc
.findAll("#productResult > li > dl > dt > a")
.map!(e => e.children[$-1].text.strip)
))
.filter!(t => !icmp(t[1], name))
.I!(r => r.empty ? null : "http://www.tp-link.com" ~ r.front[0])
;
}Thanks for all your hard work, there's people out there who really found RABCDAsm really helpful, and it inspired a lot of fun software in the process.
D fits lots of purposes (more than C++), but I'm only going to talk about scripting.
The minimalistic approach for the C++ standard library makes C++ inappropriate to replace, for example, Bash scripts. In C++, you can't do any operation on the file system (erase a directory, get file size, list files, create pipes, ..) in a portable way. You can't create processes in a portable way.
The D standard library (aka Phobos) doesn't suffer these limitations. Which means you can write very high-level code using only a few (readable) lines. By adding a shebang "#!/usr/bin/env rdmd" at the beginning of your D programs, you can execute them without prior explicit compilation, like: ./myProgram.d
I've been porting all my Bash scripts to D. The code runs incredibly faster, and now I can have structs again!
http://tech.adroll.com/blog/data/2014/11/17/d-is-for-data-sc...
Ironically, the dmd compiler is written in C++.
Is that going to make it trickier for GDC/LDC to stay in sync with DMD? (Either way, it's exciting news!)
I really enjoy a lot more writing on D, but I keep finding the issue that I need to interface with C++ libs for something (for example Qt 5 for an emulator GUI) or weird errors like these problem with std.net.curl on Ubuntu 14.04 . If not was for that, I would wrote the Trillek virtual computer on D.
http://wiki.dlang.org/GUI_Libraries
Just thought I'd share, maybe you overlooked it and this might be helpful for future projects? Good luck!
Also, I played a few with Qt 5 on C++... I would like to have updated binding of Qt for D. qtd and dqt looks that are abandoned. :S
DQuick looks interesting, perhaps I would rewrite my fontmap editor with it.
PD: If I look that I hate a bit Gtk, I would only say that with buggy graphics drivers (ie ATI/AMD cards on Linux), Gtk usually have horrible graphical glitches, when Qt simply works fine.