A gentle critque..

Nilo Nilo_member at pathlink.com
Tue May 16 09:07:15 PDT 2006


Hi, guys.

I've read all this thread during the last days and would like to say something
about:

1. I'm already a begginer on D, but I'm impressed with a lot of funcionalities
of the language. I'm trying to make some real projects using D and I've fall in
love with the language.

2. I think that the "open" architeture of D allows me to develop any library I
need. Could be useful if I can get C++ code used directly from D, but I wouldn't
like to use a "Frankenstein" thing to make the work.

3. There are a LOT of libraries developed in Java, e.g., parsers generators, XML
libraries, report libraries, etc, etc, etc... It seems to me that a conversion
from pure Java code to D is not a traumatic experience. So...

4. I'm not so purist about the language. All I want is a language that I can use
to make the things work and I can extend it creating all the libs I need. I
think that's perfectly possible the use of D in order to achieve this.

5. Looking at the present situation of D, I really would like to see a 1.00
release. When the language left behind the "beta" status, it would facilitate to
convince people that the language really has a future and it's not just a dream
of someone.

Sorry my (very) bad english.

Cheers from Brasil.

Nilo

In article <e48h8g$pk$1 at digitaldaemon.com>, Ben Cooley says...
>
>There are a few major problems with D that still prevent it from being practical
>for use in the real world.
>
>I'll just list them and note their importance.  Anything witha
>
>- Inability to access C/C++ include files...  Importance:   SHOW-STOPPER
>--------------------------------------------
>
>C++ can do this, D can not.
>
>The size, scale, and prevalence of C and C++ libraries and code make writing
>wrappers for all of these libraries impractical.  That D can not just easily
>include C and C++ headers "as is" gives it a serious and I would suggest fatal
>disadvantage vs. C++.
>
>C++ out of the box could include C header files, meaning that even today I have
>access to the largest possible body of third party libraries and code.  Binary
>compatibility with C only is just not good enough.
>
>Incompatibility with C++ ABI...              Importance:    SHOW-STOPPER
>--------------------------------------------
>
>Even if you could include C++ headers, you could not interface with C++ classes.
>C has abi compatibility with C++, and C++ has ABI compatibility with C.  C and
>C++ have more or less abi compatibility with most other systems (including COM,
>CORBA).  D intends to be used for system programming, but is icompatible with
>the most prevalent existing ABI. 
>
>Inability to make D code work with C/C++    Importance:    SHOW-STOPPER
>---------------------------------------------
>
>Likewise, if you write D code, your code exists only in the very small world of
>D, and will not be useful to the world outside of the D programming community.
>This makes any library or system you might create only marginally useful, and is
>a strong disincentive for anybody to actually write code in D for general public
>consumption.
>
>No support for meta-programming or Macros   Importance:    SHOW-STOPPER
>---------------------------------------------
>
>Say what you will about the unclean use of macros in C and C++, they are
>critical for a large set of important functionality that C and C++ programmers
>take for granted.  There are many ways to provide hygenic macro replacesments,
>true meta programming, or generative programming.  D offers none of these, and
>no way to replace the functionality lost using macros.
>
>Correct me if I am wrong on this point, but the meta-programming offered by
>macro code injection is just not easily replaced by mixins, templates or other
>language features.
>
>Provides no additional support for safe programming vs. C/C++  Importance: HIGH
>---------------------------------------------
>
>C# and Java trade incompatibility and the inability to easily integrate with
>C/C++ for the additional productivity and security.  D trades incompatibility
>for.. incompatibility.  Programming in D is just as unsafe as programming in C
>and C++, without the support of Microsoft and other 3rd parties to provide huge
>quantities of high level libraries and a powerful integrated environment.  D is
>unsafe by design, just as C and C++ were, but the difference is that this is
>2006, and not the 70's, 80's, or 90's.
>
>The choice one is left with is to either program in a safe language and accept
>the overhead of the JIT, or use C/C++ with it's large existing base of tools and
>code other things in C# or Java.  One wonders why this is so, since C# has
>unsafe capabilities.. and CSecured offers safe C programming capabilities.  How
>long should we have to wait for a safe systems level language.. till microsoft
>releases their Singularity project and their Bartok compiler?
>
>------------
>
>The first two issues make much of the remaining critique irrelevant.  Once you
>have a singel showstopper, additional issues don't really make any difference.
>However I'll list them anyway.
>
>- Inability to integrate with visual studio.  No good IDE.. Importance...   HIGH
>
>- No stable standard.  Importance...  MEDIUM
>
>- Difficult to control what is garbage collected and what is not.  Garbage
>collection performance.  Garbage collection violates C++'s "zero overhead" rule
>where any performance overhead is at the programmers explicit discression.
>Importance...   MEDIUM
>
>- Not open source.    Importance... HIGH
>
>- Very small library base.   Importance... HIGH
>
>----------------------------------------------------------
>
>A modest suggestion, were I to try to introduce a new language which I intended
>to be not only clean and simple, but "popular" and widely used as well would be
>to squarely address the first three issues above.
>
>C++ provided a translator.  The original versions of C++ were able to output C
>code which would compile on any ordinary C compiler.  Likewise, the idea that C
>headers could simply be directly included in a C++ language file, and "it just
>worked" allows any C code to be used in a C++ program.. a feature that all C++
>programmers use today.
>
>Finally, C and C++ code code be easily mixed within a single project, another
>feature of C++ that is used today.  Since C++ can consume any C header, and in
>most cases C can understand the ABI of C++ with the extern "C" {} wrapper, it's
>possible to go in both directions.
>
>All this being said, I would really like to see a language like D succeed,
>because I need the features it has.  But I can't abandon my C and C++ libraries,
>and I am not about to commit to coding wrappers for them, nor forgoing using my
>current programming environment and debugging tools.  When I adopted C++ 20
>years ago, I didn't need to do this.  C++ integrated well with my tools and
>existing libs (the exception being the debugger of course).  But overall it was
>a good citizen in the overall world of C/C++ code.. it played nicely.  The same
>can not be said of D, C#, or Java, and D doesn't have the other benefits of C#
>or Java.
>
>Until D addresses these issues, it will be nothing more than a niche language
>offering syntactic cleanliness and interesting features to a few faithful, but
>largely ignored by the rest of the programming world.
>
>
>
>
>
>
>
>
>
>
>
>





More information about the Digitalmars-d mailing list