Why aren't you using D at work?
via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 29 07:03:18 PDT 2015
On Friday, 29 May 2015 at 11:29:13 UTC, Chris wrote:
> This is very interesting. It kinda defeats the "D is too
> complicated" argument I often hear.
I don't know what is typical, but I am dealing with Python,
Javascript, Dart, C++ and Objective-C for commercial use, and
plan on adding Swift. C++14 is by far the most taxing, due to not
enough rigour in the language design (complications with no
benefits!). Dart you can master in a week, and is more productive
than C++. So I have a lower threshold for adding a "Dart-like"
language with an IDE than a "C++-like" language for commercial
use. My threshold for adding Swift is very low due to the
perceived simplicity and decent tooling.
>> 3. D's memory model is up in the blue, C++ has locked down on
>> one model, Rust on another. I am currently starting to think
>> that Rust is a more likely option than D given the direction D
>> might be taking towards reference counting etc. But I am not
>> using Rust either… just watching how it develops.
>
> And if D offered various models (cf. std.allocator), would you
> still prefer languages with just one model for the sake of
> simplicity and not having to worry about which model to choose?
I would prefer one clean heap-model that the compiler can
optimize easily + compiler backed stack allocation, and that most
third party libraries are written for. Almost all my performance
oriented allocations are on the stack or are preallocated in big
blocks, so I'd put more emphasis on things like VLA (which is
available as a C++ extension in clang/gcc).
There is no way a generic solution can beat a tailored solution
when it comes to abstract datatypes and memory management, so
having lots of options in a standard library sounds useful.
But interoperability matters more. Like, I am likely to use Swift
for ios/osx GUI, but need a companion language for the core
application engine. C++ is most likely today. If Rust or D makes
integration with Swift easy then I would consider a switch. The
bottom line is overall productivity, long term maintenance and
risk for hitting an issue that requires "ugly unsupported hacks".
It is much more difficult to find a place for a "middle ground"
solution than a very focused heavy duty solution or a very light
solution that is easy to get on with. I don't think people look
for "middle ground" solutions when the try to solve a problem.
More information about the Digitalmars-d
mailing list