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.

Reply via email to