On Tuesday, 15 July 2014 at 09:24:14 UTC, Vic wrote:
To illustrate point on D complexity:
https://d262ilb51hltx0.cloudfront.net/max/800/1*_gRpHqzB-1zbG17jdxGPaQ.png

It appears that it mission is to be Java, vs a system lang.
hth

Maybe I misunderstand the term, but it seems to me that a systems language inherently has to be complex? I'd do a car analogy but I'd cringe. :3

The more abstractions you hide low-level code behind, the less direct control the developer has over the hardware. Providing both *allows* it to be complex but doesn't necessitate it, making the black magic opt-in. I concede that it makes the language bigger.

I mean, I have a bunch of shell scripts written over the years that do everything from updating /etc/hosts with additions from MVPS[1] to determining the OpenNIC DNS server[2] with the best ping. And I could probably do *quick-and-dirty* rewrites of these in D with little effort, and they'd probably even be less complex as shell interpreters' limitations makes writing non-trivial stuff a pain in the derriere[3]. No std.socket.ping though, would have to think about that.

A new user would get more hidden allocations, but the abstractions allow for that. He would see a simple language with most of everything he wants *in phobos*. An experienced one could probably make them very effective and nigh-allocation-free, and the complex low-level parts allow for that too.


[1]: http://winhelp2002.mvps.org/hosts.htm
[2]: http://wiki.opennicproject.org/Tier2
[3]: http://pastebin.com/Uj5rw7TL

Reply via email to