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