D is almost the exact language I need...

Ola Fosheim Grøstad via Digitalmars-d digitalmars-d at puremagic.com
Sun Jul 3 01:01:45 PDT 2016


On Sunday, 3 July 2016 at 07:21:15 UTC, Charles Hixson wrote:
> portable. And I really like having garbage collection, and 
> especially the syntax that it enables.  I was just considering 
> a hash table (associative array) in C++, and realized that I 
> had to either allocate on the heap, or I couldn't easily do an 
> increment of a struct variable.  (Well, I'm thinking about 
> QHash, because walking the files of a directory path in 
> standard C++ is unpleasant, and Qt makes both that and unicode 
> tests [the ones I need to do] pretty simple.)  But if I 
> allocate structs on the heap I have to make sure that 
> everything gets released when I'm through, so I need to use an 
> enhanced pointer construct, so....  It's a lot simpler in D.
>
> I do wish that phobos included a D wrapper around SQLite, 
> something object oriented.  I'd also like to be able to depend 
> on class finalizers being called.  Sometimes I wrap a class in 
> a struct just so I can depend on the finalizer.

[...]

> Most of my needs are for run time flexibility rather than for 
> more compile time flexibility.  E.g., I'd like to be able to 
> declare a statically sized array from a parameter.  I do 
> appreciate D's speed, but complex templates aren't something I 
> ever use.   (Truth is, I was pretty well satisfied with D1, 
> though perhaps I'm forgetting some limitations, but even then 
> I'm pretty much sure that I felt the main limitation was a lack 
> of well interfaced libraries.)
>
> Too many of D's libraries seem to try to re-invent the wheel. 
> When a library is working well and has been debugged, the best 
> think if to create a wrapper around it.  The wrapper *does* 
> need to adapt the library to the syntax of the language, but 
> that's not a huge problem.  A major part of Python's success is 
> "batteries included".

Included after 20 years of massive adoption. Something that would 
never have happened if it had a more solid competitor than 
Perl... Anyway, writing a library for a dynamic scripting 
language with no performance requirements is a different 
challenge. Python2 has major issues with its "batteries included" 
approach, just look at the fragmentation in Python's HTTP support 
libraries.

Java, C# and C++ have massive libraries as a result of massive 
adoption over a long period of time and massive backing.

If you are looking for GC, more runtime flexibility and libraries 
then it sounds like something like the recently released C# Core 
(Linux, OS-X, Windows) is going to be the best fit.

https://blogs.msdn.microsoft.com/dotnet/2016/06/27/announcing-net-core-1-0/

There are currently many smaller languages that are very 
interesting and increasingly competitive:

golang.org
rust.org
loci-lang.org
ponylang.org
whiley.org

So D better focusing at doing better at what it is already doing 
well (compile time) rather than expanding even more.  And even 
then a language like Whiley is more advanced.  Whiley has a 
floating type system with static typing where you can write 
functions that return either strings or integers and a builtin 
prover.  But Whiley is currently in phase (1)... so no adoption.

I agree that a production ready D1 in 2010 would have cut into 
what is now the market of Go. But that train has passed.



More information about the Digitalmars-d mailing list