January 05, 2007
== Quote from TPJ (tprimke@interia.pl)'s article
> a) Java programs are run by JVM. IMO it's a big advantage: the only thing I have to do is to "compile" my app on my development box, and then I can ship it without any changes for any OS with JVM.

Sometimes VM is a no no, then you look for D.  Otherwise you don't.

> b) I can write everything in Java. No need to use other languages and various tools. It means easier development.

Does the "everything" include systems, communications, graphics, etc?  Of course not.  Indeed, there is no point looking outside Java as long as you're in the Java land.  In other words, D is not competing with Java.  But it is targeted at Java developers who look for another language to augment their projects.

> e) Java is very popular. It makes Java programs easier to port. I intend to write desktop apps for *nices, Windows and MacOSX systems, as well as some games (2D only!!!) for those systems and mobile devices. In my opinion Java is a good choice.

Yes.  If you can, that is.  But what if you can't?

> 2) D might be perceived as an alternative to Java or C# (I don't count C/C++).

That's a flat no.  D is competing with C/C++.  Some of my fellow D enthusiasts find a way to use D where Java and C# rule but the reality is One Man Show has no chance against MS or Sun.

> But it is really the case? Java was born in 1995, today it's a very known language. C# was born in 1999, today it's popularity is still rising. And D? Mars was born in 1988, D in 1999. How many people have heard about D? In comparison, say, to C#? How many apps and libraries are written in Java, in C#, and in D?

Both are corporate pushes with established base and $BB of investements.  That's why D is not competing with them.  But One Man Shows can be viable, too.  C++ is one example, Python is another, etc.  Of course, it takes a lot longer that way, approximately 10 years for each.

> 1) I know Java.
> 2) I don't know C#.
> 3) I don't know D.
> 4) I might be wrong.

Do you know C/C++?

> Therefore I post this message here. I'd like to know what you (the people who
> know D) say about it.

January 05, 2007
Am 05.01.2007, 11:22 Uhr, schrieb TPJ <tprimke@interia.pl>:

> So I ask myself a question today: should I invest in learning D? Is it worth
> my efforts?
>
> To be honest, I still think that C# has better future than D.
>
> Why I ask all those questions, you may ask. Well - the truth is that:
> 1) I know Java.
> 2) I don't know C#.
> 3) I don't know D.
> 4) I might be wrong.
>
> Therefore I post this message here. I'd like to know what you (the people who
> know D) say about it.

It's a question of what you need to do. I'm working on an audio sequencer. So performance is essential. Therefore I can't use Java. But if Java works for you, then use Java.

-mike

-- 
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/
January 05, 2007
TPJ wrote:
> I decided to start with a simple statement: with this post I don't intend to
> start any flamewar. I'm definitely not a Java zealot, OS zealot, I'm not a
> zealot at all. I'm just a programmer who seeks for future technologies today.
> I'm doing it because I find investing in future technologies today very
> profitable. Of course only in case of really good technologies...
> 
> I'm a freelancer programmer. I work under a GNU/Linux box and I'm interested
> in development of portable desktop apps (*nices, Windows, MacOSX, perhaps
> other OSes in the future) and games (the same OSes, plus mobile phones).
> 
> A few years ago I switched from C/C++ to Python. The reason was simple: I was
> fed up with low-level development in C/C++, and I was impressed by high-level
> development in Python. All I did in C/C++ could be done in Python with one
> significant difference: code was written much, much faster.
> 
> Now, after several years of using Python, I decided to switch from Python to
> Java. The reason is simple. Sometimes Python is too slow for my needs. Of
> course, I can use C in those cases. But using C means using another language
> and development becomes more complicated. In fact, I started to use Pyrex as
> well... Three different tools, no documentation standard for all of them...
> The hell.

[snip]
> So I ask myself a question today: should I invest in learning D? Is it worth
> my efforts?

It's the libraries.
The thing C# really has going for it is the .NET libraries. Likewise Java. Their libraries are extensive, and were developed with massive budgets.
Right now, D cannot compete with those libraries. We got nothin'.

BUT...

D is a language that seems to be made for writing libraries. It is exceptionally easy to write rock-solid code in D. The powerful template system, coupled with language features such as lazy evaluation, inner functions, etc make it possible to create extremely appealing syntax for library users. I believe it is possible to create nicer libraries in D than in any of those other languages you've mentioned.

As a library developer, I reckon I'm about ten times productive in D as in C++. I predict we'll see a rapid expansion in D library development post-1.0.

The bottom line:
Don't use D right now unless you're prepared to do a lot of library development. But expect the situation to change rapidly.
January 05, 2007
Don Clugston wrote:

> It's the libraries.
> The thing C# really has going for it is the .NET libraries. Likewise Java. Their libraries are extensive, and were developed with massive budgets.
> Right now, D cannot compete with those libraries. We got nothin'.

You got the C libraries (once wrapped) ? That's at least sumthin'.

And the native D libraries are starting to look rather good too...

--anders
January 05, 2007
TPJ wrote:
> 
> And now I have found D. What can I say about it?
> 
> Disadvantages:
> 
> 1) In order to run a program written in D I have to compile it on the target OS.

Yup.  Though there was one project in the past to compile D to CLI and have it run on .NET.  Things were pretty far along when the author's hard drive crashed and the data was lost.  So in terms of VM portability, this is possible if someone is willing to put in the time.

> 2) D might be perceived as an alternative to Java or C# (I don't count C/C++).
> But it is really the case? Java was born in 1995, today it's a very known
> language. C# was born in 1999, today it's popularity is still rising. And D?
> Mars was born in 1988, D in 1999. How many people have heard about D? In
> comparison, say, to C#? How many apps and libraries are written in Java, in
> C#, and in D?

D was developed by one man, not a huge team.  And I think the real comparison for D should be to C/C++, which you discount.  What D really has going for it is that it's a systems programming language with a lot of the features of a high-level language (garbage collection, decent RTTI, etc).  This combination, along with its elegant design, is what makes it an appealing language to me personally.

> 3) There is no D for mobile phones (AFAIK).

Only for the moment.  I know of someone who is in the process of making GDC work for ARM.

> Advantages:
> 
> 1) It's said to be faster than Java. But is it really an advantage? I find
> Java fast enough for my needs, so why should I bother myself with D?

Speed simply isn't a selling point for Java programmers, for the reasons you state.

> 2) From FAQ: Since D can call C functions, any GUI library with a C interface
> is accessible from D.
> Does it mean that I can access *any* C library from D? If so, it a great feature!

Yes.  C interoperability was a major design goal of D.

> So I ask myself a question today: should I invest in learning D? Is it worth
> my efforts?
> 
> To be honest, I still think that C# has better future than D.

I think it depends on the target market.  C# has a huge future in the Windows world for everyday applications, but Mono still isn't a fantastic solution for other OSes.  Were I looking for true binary portability I'd choose Java, RAD development on Windows I'd choose C# or C++/CLI, systems programming anywhere I'd choose D if possible, but realistically I'd probably still use C++ at least professionally.  I think D is a wonderful language, but it will take a while for it to gain traction in the commercial sector.


Sean
January 05, 2007
Boris Kolar wrote:
> If you must have fast startup times, or must integrate with OS API, use
> C++ (most popular) or D (best). Maybe Eiffel is also worth considering.
> D is not (yet) very good for real-time programming (see all garbage
> collection, deterministic finalization threads for reasons), but Walter
> will likely fix that soon.

I disagree here, even in C++ allocation during the real-time part is best avoided.  In the past, my programs would assert if anyone tried to allocated during the real-time part.  D runs real-time just fine if you follow that simple rule.

-K
January 05, 2007
janderson schrieb:
> Boris Kolar wrote:
>> If you must have fast startup times, or must integrate with OS API, use
>> C++ (most popular) or D (best). Maybe Eiffel is also worth considering.
>> D is not (yet) very good for real-time programming (see all garbage
>> collection, deterministic finalization threads for reasons), but Walter
>> will likely fix that soon.
> 
> I disagree here, even in C++ allocation during the real-time part is best avoided.  In the past, my programs would assert if anyone tried to allocated during the real-time part.  D runs real-time just fine if you follow that simple rule.
> 
> -K

I also do realtime programming in D. I use the "Realtime Application
Interface (RTAI)" for Linux.
January 05, 2007
Hi,
I agree about D being an excellent language to write libraries.

The last two days I've been writing a multidimensional array class (yes, another one!!!).
I also wrote a similar library in C++. I am surprised of how much work I saved in D, and how useful
are things like static if, static assert, etc.

So, I agree with Don good libraries in D should start appearing in short time.

Paulo

On Fri, 05 Jan 2007 17:03:22 +0100, Don Clugston <dac@nospam.com.au> wrote:

> TPJ wrote:
>> I decided to start with a simple statement: with this post I don't intend to
>> start any flamewar. I'm definitely not a Java zealot, OS zealot, I'm not a
>> zealot at all. I'm just a programmer who seeks for future technologies today.
>> I'm doing it because I find investing in future technologies today very
>> profitable. Of course only in case of really good technologies...
>>  I'm a freelancer programmer. I work under a GNU/Linux box and I'm interested
>> in development of portable desktop apps (*nices, Windows, MacOSX, perhaps
>> other OSes in the future) and games (the same OSes, plus mobile phones).
>>  A few years ago I switched from C/C++ to Python. The reason was simple: I was
>> fed up with low-level development in C/C++, and I was impressed by high-level
>> development in Python. All I did in C/C++ could be done in Python with one
>> significant difference: code was written much, much faster.
>>  Now, after several years of using Python, I decided to switch from Python to
>> Java. The reason is simple. Sometimes Python is too slow for my needs. Of
>> course, I can use C in those cases. But using C means using another language
>> and development becomes more complicated. In fact, I started to use Pyrex as
>> well... Three different tools, no documentation standard for all of them...
>> The hell.
>
> [snip]
>> So I ask myself a question today: should I invest in learning D? Is it worth
>> my efforts?
>
> It's the libraries.
> The thing C# really has going for it is the .NET libraries. Likewise Java. Their libraries are extensive, and were developed with massive budgets.
> Right now, D cannot compete with those libraries. We got nothin'.
>
> BUT...
>
> D is a language that seems to be made for writing libraries. It is exceptionally easy to write rock-solid code in D. The powerful template system, coupled with language features such as lazy evaluation, inner functions, etc make it possible to create extremely appealing syntax for library users. I believe it is possible to create nicer libraries in D than in any of those other languages you've mentioned.
>
> As a library developer, I reckon I'm about ten times productive in D as in C++. I predict we'll see a rapid expansion in D library development post-1.0.
>
> The bottom line:
> Don't use D right now unless you're prepared to do a lot of library development. But expect the situation to change rapidly.



-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
January 05, 2007
TPJ wrote:
> And now I have found D. What can I say about it?
> 
> Disadvantages:
> 
> 2) D might be perceived as an alternative to Java or C# (I don't count C/C++).
> But it is really the case? Java was born in 1995, today it's a very known
> language. C# was born in 1999, today it's popularity is still rising. And D?
> Mars was born in 1988, D in 1999. How many people have heard about D? In
> comparison, say, to C#? How many apps and libraries are written in Java, in
> C#, and in D?

C# is ~7 years old and on, what V2.0? It was developed by a group of people with gobs of funding and AFAIN not a lot of user input. I have known it to be described as a shell around the .Net framework.

D is alos ~7 years old, is at V1.00 and is being develuped by one man with gobs of user input and AFAIN not a lot of funding. It is useful for practically anything.

> 
> So I ask myself a question today: should I invest in learning D? Is it worth
> my efforts?

Yes, even if you don't start developing for-profit apps in it. It is also a good language to build personal toolkit apps in.

> 
> Therefore I post this message here. I'd like to know what you (the people who
> know D) say about it.

The language CORE is great!! DMD is good and getting better. The tool-chain, libs and documentation suck. But that will change (I expect).

I wouldn't build a big for-profit project on D, not quite yet. But it's getting there.
January 05, 2007
BCS wrote:
> D is alos ~7 years old, is at V1.00 and is being develuped by one man with gobs of user input and AFAIN not a lot of funding. It is useful for practically anything.

D's funding: $0
D's paid staff: 0
D's marketing budget: $0

<g>