I wish I could use D for everything

bearophile bearophileHUGS at lycos.com
Thu Apr 30 17:52:31 PDT 2009


This is a post of mostly chat. If you have better things to do you can ignore it.

Walter Bright:
> I've tried to program in Java. It takes me considerably more time to get 
> things done in it. That time is lost writing much more code because it 
> is a less expressive language.

I agree that D is more expressive than Java, my D programs are quite shorter than Java ones, and I need less time to write D1 programs (especially when I use my dlibs).

But expressiveness isn't the only factor to consider if you want to measure a programmer productivity, you have to consider debugging time too: one of the the points of languages like Java/C# is that they allow you to forget about classes of errors, this leads to less memory-related bugs, and this leads to a shorter total (development+debug) time.

The purpose of SafeD is to help in this regard, to gain another of the debugging speed advantages of Java/C#.

I have seen that when I write a small Java program, when it compiles it's often correct. This is less often true compared to D1 programs (and they say it's more quite often true in Haskell). D1 compiler tries to be partially compatible with C and this makes it "more tolerating" than the Java compiler. Several examples can be shown.


> The other problem those "CPU second" languages have is that people often 
> use them in a hybrid manner - Python for the logic, with C++ to speed up 
> the slow parts. Doing that is a sign of desperation, as neither language 
> is fulfilling the needs of the programmer.

I agree. I have started learning D for the limits of C and Python.
Designing a language that is able to be used in that hybrid way isn't easy. C#4 tries to be an example of such hybrid languages.


>Being a simple language does not imply being a productive language.<

I agree, but you have said:
>>D aims to reduce project costs by reducing training time<<

D doesn't reduce training time compared to Java because I think you need more time to learn D compared to learning Java, because Java is simpler (and at the university they teach Java, so you are likely to find/hire a person that already knows Java, but this is partially beside the point).

Bye,
bearophile



More information about the Digitalmars-d mailing list