Making D better than other programming languages (warning: rant, drivel)

Knud Sørensen 12tkvvb02 at sneakemail.com
Sat Oct 28 21:55:36 PDT 2006


On Sat, 28 Oct 2006 17:27:55 +0000, LaggedOnUser wrote:


> It is claimed on the D site that DMD offers the same programming
> productivity benefits as Ruby.  Based on several typical research
> projects into programming language productivity, I find that claim to be
> very likely false.  (Of course, the specific claim, "Is DMD as
> productive as Ruby?" has not been tested, still I can offer some
> generalizations).  My opinion is derived from considering the following
> research:
> 
> * http://www.theadvisors.com/langcomparison.htm - This site is a nearly
> exhaustive comparison of programming languages that includes C, C++,
> Java, and Perl, among others.  It rates their productivity level as
> follows:
> 
> C - 2.5
> C++ - 6.0
> Java - 6.0
> Perl - 15.0
> 
> 
By noticing that the most productive languages seems to be domain and
application specific language. This made me think about the problem of
productivity, and lead me to the following generalisation for productivity
levels.

*1 - Platform level*
This is the leased productive level for solving a specific problem, but it
is also the most general level.
**Software** In software this would be equivalent to the OS. 
**Language** As a programing language this equivalent to the assembler
language.
**D related ** productivity equivalent to D in line assembler.

*2 - Technical level*
 
**Software** This is equivalent to the libraries in the OS all the
technical functions as disk access , date time functions and e.t.c.

**Language** genneral perpose programing language like C, C++ and etc. 

** D related** Normal D programing.

*3 - Domain level* 
 
**Software** Domain specific libraries like cryptology, linear algebra and
etc.

**Language** Domain specific language as SQL which is very productive in
its own domain.

**D related** The ability to define a domain specific language with in D.
This is this where Ruby is strong.
See http://video.google.com/videoplay?docid=-8103284744220333344


*4 - Application level*
 
**Software** equivalent to applications programs.
**Language** The output from a application specific language is a product
not a program. Examples is Latex, asymptote and etc.
http://asymptote.sourceforge.net/

**D related** The ability to define a application specific language with
in D. 
An Example for this is http://www-users.mat.uni.torun.pl/~h3r3tic/ctrace/
which make compiler time raytracing.

It would be nice if D make it easy to make this type functionality. 
A D library with the same functionality of asymptote would be a nice thing
to have.


*5 - Interface level*
**Software** Standard interfaces for data exchange between applications.
When a standard data format within a domain is accepted it leads to
another level of productivity. 
 
**Language** HTML, XHTML, pdf and etc.

** D related** If the D file format for a compiler time raytracing scene
become the standard format for raytracing scenes than D would have raised
to this level within this domain.

---------------

So, why is Perl's ranking 15 and Java,C++,C is only 6.

I think it is because Perl have domain specific part when the domain is
text processing.  Which make it easy to solve many real world problems.
So, it raise Perl's level partly in to level 3.
Ruby makes it possible to make domain specify languages and this make 
it a level 3 language.

Knud 
 






  



More information about the Digitalmars-d mailing list