How D could gain more traction?

via Digitalmars-d digitalmars-d at puremagic.com
Wed Apr 15 06:14:55 PDT 2015


On Wednesday, 15 April 2015 at 12:36:16 UTC, Rikki Cattermole 
wrote:
> Nope. Good API isn't good enough. For things like window 
> creation, image library ext. If they ain't in phobos, it ain't 
> gonna get used.
> That's my experience with Devisualization anyway.

Go, Dart, Python and Javascript are good counter examples. But 
they are high level so they don't demand performance. C/C++ are 
also good counter examples, but as you can see, different 
system-level-applications need different kinds of libraries 
because there are unsurpassable 
API-complexity/performance/features trade offs.

People do use libraries if they are:
- high quality
- have existed for many years OR have major backing/support
- have a reasonable user base
- are well documented
- demonstrate ease of use in tutorials
- no lock in

Creating excellent idiomatic wrappers to already popular, mature 
and well supported C/C++ libraries is probably more "marketable" 
than selling home grown new borns...

Keep in mind that designing at generally useful library that also 
performs well in unknown scenarios is VERY difficult when you go 
beyond the leaves in the call-tree. Performance APIs for anything 
complex tend to demand nasty APIs or a DSL with builtin compiler. 
Finding the right trade offs take many iterations with use in 
real world applications.

Designing "leaf libraries" (mostly independent of the 
application) like an image loader, xml/json parser or compression 
library is relatively easy (but still difficult).  But still, 
even compression libraries have to provide fine grained buffering 
and control in order to work in many projects...

Basic stuff like a generic DB abstraction or (non posix) file i/o 
abstraction is impossible to get right due to differences in the 
underlying system.

(you also need a skilled benevolent dictator/janitor/custodian 
which takes both motivation, the right personality, experience... 
and time)


More information about the Digitalmars-d mailing list