www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Is it reasonable to learn D

reply Fabian <contact-fab freenet.de> writes:
Dear D Community,
is it reasonable to learn D?
I've found a lot of good points for D but I've found a lot of negative 
points too. I believe that I needn't to list all the point for D but I 
want to give a few examples against learning D I've read in some German 
and English boards:

	- The D compiler has only bad code optimization
	- There are no maintained GUI libraries
	- The development of the compiler is very slow
	- Only a small community
		=> no real German community

So I ask you - Is it reasonable to learn D?
I'm looking forward to your answers.

Greetings Fabian

PS: If you want to contact me you are allowed to write an Email to me.
contact-fab freemail.de
Jun 07 2011
next sibling parent reply Kai Meyer <kai unixlords.com> writes:
On 06/07/2011 01:47 PM, Fabian wrote:
 Dear D Community,
 is it reasonable to learn D?
 I've found a lot of good points for D but I've found a lot of negative
 points too. I believe that I needn't to list all the point for D but I
 want to give a few examples against learning D I've read in some German
 and English boards:

 - The D compiler has only bad code optimization
 - There are no maintained GUI libraries
 - The development of the compiler is very slow
 - Only a small community
 => no real German community

 So I ask you - Is it reasonable to learn D?
 I'm looking forward to your answers.

 Greetings Fabian

 PS: If you want to contact me you are allowed to write an Email to me.
 contact-fab freemail.de

I think your question is highly subjective. D is still a young language, which I think accounts for all of the negative feedback you've listed.
Jun 07 2011
parent reply Fabian <contact-fab freenet.de> writes:
 I think your question is highly subjective. D is still a young language,
 which I think accounts for all of the negative feedback you've listed.

I believe D isn't so young anymore. Version 1.0 was released 2007 and I believe 4 years are long enough to bring out some maintained GUI libraries. If someone says D doesn't aim at GUI development I must say that's not true because D is designed as a new object orientated language basing on C. And as a consequence of that D should support all the areas of application which C already supports. I hope you can understand my bad English. Connecting to that (my bad English) I have another stupid question: What does "think accounts" mean? Greetings Fabian
Jun 07 2011
parent reply =?ISO-8859-1?Q?Ali_=C7ehreli?= <acehreli yahoo.com> writes:
On 06/07/2011 01:55 PM, Fabian wrote:
 D is still a young language,
 which I think accounts for all of the negative feedback you've listed.


 What does "think accounts" mean?

I rephrase with apology: <rephrase>D is still a young language. I think that fact accounts for all of the negative feedback that you've listed.</rephrase> Ali
Jun 07 2011
parent Fabian <contact-fab freenet.de> writes:
Oh - yeah.
Thank you - English can be so easy :D
Jun 08 2011
prev sibling next sibling parent reply Timon Gehr <timon.gehr gmx.ch> writes:
Fabian wrote:
 Dear D Community,
 is it reasonable to learn D?
 I've found a lot of good points for D but I've found a lot of negative
 points too. I believe that I needn't to list all the point for D but I
 want to give a few examples against learning D I've read in some German
 and English boards:

  - The D compiler has only bad code optimization

It is not very bad, but does not match the sophisticatedness of modern C++ compilers. I think the optimizations on integer arithmetics are quite okay, but unfortunately the compiler cannot create floating point register variables. You can always resort to inline assembly/link in C or C++ if some part of your code is very performance-critical. D code can already outperform C++ code on similar tasks if you make smart use of D features. (without making your code ugly or unmaintainable). But it is true that this could be improved. (To the point where a D compiler could make MORE optimizations than C++, because it has immutable and pure).
  - There are no maintained GUI libraries

I don't know about this but I think QtD and DWT are still being maintained? Also, D is fully binary compatible with C/(C++) You can also do your GUI programming in C or C++ and use D for some program logic until the situation improves.
  - The development of the compiler is very slow

Have a look at the last changelog. The development is not lightning fast but quite steady. Also keep in mind that there is no big company behind D, all the compiler development is basically volunteering work.
  - Only a small community
   => no real German community

The community does not grow if people stay away because it is small. ;) *I* speak German btw.
 So I ask you - Is it reasonable to learn D?
 I'm looking forward to your answers.

 Greetings Fabian

 PS: If you want to contact me you are allowed to write an Email to me.
 contact-fab freemail.de

I think it is very reasonable. But it depends on what you want to use it for. There are already companies out there that use D. If you have some time to spend, it is certainly valuable. D has some very nice design decisions. The _language_ itself is imho superior to the alternatives. Where D is arguably somewhat lacking (as you have already figured out.) is support/native libraries. It does make up some of that by being easily linkable with C libraries, but you often will have to write the bindings yourself. But again that does not get better if people don't learn D because of lack of support or native libraries. There are also some upsides to a language being less mature: You can still submit patches and get some of your very own code into the reference compiler implementation! ;) Timon
Jun 07 2011
next sibling parent reply Fabian <contact-fab freenet.de> writes:
 The community does not grow if people stay away because it is small.

Thank you for your answer. - You've got a big point!
 I don't know about this but I think QtD and DWT are still being
 maintained?

I can't see any changes on this web page: http://www.dsource.org/projects/dwt/wiki That's too bad :-( How do you use D? What are your fields of application? Greetings Fabian PS: Are you a native German speaker?
Jun 07 2011
next sibling parent Timon Gehr <timon.gehr gmx.ch> writes:
Fabian wrote:
 The community does not grow if people stay away because it is small.

Thank you for your answer. - You've got a big point!
 I don't know about this but I think QtD and DWT are still being
 maintained?

I can't see any changes on this web page: http://www.dsource.org/projects/dwt/wiki That's too bad :-( How do you use D? What are your fields of application?

I am quite new to D myself. I have been using D mostly for solving small algorithmic problems. I'd like to improve that situation though, I will definitely use D for some small/medium project soon. What are you looking for? Do you have any specific use in mind?
 Greetings Fabian

 PS: Are you a native German speaker?

Yes. Timon
Jun 07 2011
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On 2011-06-07 23:02, Fabian wrote:
  > The community does not grow if people stay away because it is small.

 Thank you for your answer. - You've got a big point!

  > I don't know about this but I think QtD and DWT are still being
  > maintained?

 I can't see any changes on this web page:
 http://www.dsource.org/projects/dwt/wiki

There's currently no reason to update the wiki, please see http://hg.dsource.org/projects/dwt2 for changelog. -- /Jacob Carlborg
Jun 16 2011
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2011-06-07 23:33, Jonathan M Davis wrote:
 On 2011-06-07 14:02, Fabian wrote:
 The community does not grow if people stay away because it is small.

Thank you for your answer. - You've got a big point!
 I don't know about this but I think QtD and DWT are still being
 maintained?

I can't see any changes on this web page: http://www.dsource.org/projects/dwt/wiki That's too bad :-(

http://hg.dsource.org/projects/dwt2 DWT was recently ported to D2. Also, QtD is definitely under active development. But I'm sure that there's still plenty of work to be done. - Jonathan M Davis

There is a lot of work to be done (for DWT) : * Fixing bugs * Finish porting the Mac version * Update to later versions of SWT * Port 64bit versions -- /Jacob Carlborg
Jun 16 2011
prev sibling next sibling parent "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On 2011-06-07 14:02, Fabian wrote:
 The community does not grow if people stay away because it is small.

Thank you for your answer. - You've got a big point!
 I don't know about this but I think QtD and DWT are still being
 maintained?

I can't see any changes on this web page: http://www.dsource.org/projects/dwt/wiki That's too bad :-(

http://hg.dsource.org/projects/dwt2 DWT was recently ported to D2. Also, QtD is definitely under active development. But I'm sure that there's still plenty of work to be done. - Jonathan M Davis
Jun 07 2011
prev sibling next sibling parent Trass3r <un known.com> writes:
Am 07.06.2011, 23:02 Uhr, schrieb Fabian <contact-fab freenet.de>:
 I can't see any changes on this web page:  
 http://www.dsource.org/projects/dwt/wiki

That doesn't mean anything. Development sometimes takes place behind the scenes or in forks at github or bitbucket.
Jun 07 2011
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2011-06-07 22:45, Timon Gehr wrote:
 Fabian wrote:
   - There are no maintained GUI libraries

I don't know about this but I think QtD and DWT are still being maintained?

DWT is still maintained, although very slowly. -- /Jacob Carlborg
Jun 16 2011
prev sibling next sibling parent Robert Clipsham <robert octarineparrot.com> writes:
On 07/06/2011 20:47, Fabian wrote:
 Dear D Community,
 is it reasonable to learn D?
 I've found a lot of good points for D but I've found a lot of negative
 points too. I believe that I needn't to list all the point for D but I
 want to give a few examples against learning D I've read in some German
 and English boards:

 - The D compiler has only bad code optimization

You must be thinking of dmd! There's also ldc and gdc using the llvm and gcc backends respectively, they're capable of producing code roughly as fast as the equivalent C/C++ applications.
 - There are no maintained GUI libraries

I don't know what the state of GUI libraries is in D, but I have used both GtkD and QtD without problem before now. There are also a couple of others which have recently had updates.
 - The development of the compiler is very slow

Very slow? dmd gets a new release about once a month with a huge of bug fixes - http://www.digitalmars.com/d/2.0/changelog.html - scroll down the page, there's a lot in each release. And, since the move the github, there's even more going on - https://github.com/D-Programming-Language/dmd/commits/master at least a few commits a day, by an increasing number of developers. The speed of development has increased a lot in the past months.
 - Only a small community

Well that's a catch-22 - if people chose not to learn it because it has a small community, the community will stay small! There's an increasing amount of awareness and adoption of D, particularly since Andrei released his book "The D Programming Language".
 => no real German community

You'd be surprised - while I don't think there's a dedicated German forum for D (perhaps you'd like to start one?) there are a lot of people from Germany using D - about 10% of the people in D's IRC channel on freenode are German, and there's probably more using the newsgroups. I think a lot of people chose to use English anyway as it's the language most of the people on the forums speak.
 So I ask you - Is it reasonable to learn D?

Definitely yes! Even if you don't end up using it as a primary language, it's a fantastic language with lots of great ideas - I find myself missing features from D when I use other languages.
 I'm looking forward to your answers.

 Greetings Fabian

 PS: If you want to contact me you are allowed to write an Email to me.
 contact-fab freemail.de

-- Robert http://octarineparrot.com/
Jun 07 2011
prev sibling next sibling parent reply Trass3r <un known.com> writes:
 - The D compiler has only bad code optimization

respectively.
 - There are no maintained GUI libraries

DWT.
 - The development of the compiler is very slow

definitely become faster. Also Don has more or less taken over development of the CTFE functionality. Nice trend.
 - Only a small community
   => no real German community

Manchmal sieht man sie nur nicht sofort ^^
 So I ask you - Is it reasonable to learn D?

especially C++0x sucks ass ;) The language and its potential is just great. In my experience you shouldn't use D for a particular project though if you - have pressing deadlines, cause compiler bugs might become very painful. - depend on C++ libraries or have to code a module for a big C++ framework. I tried using SFML but wasted a lot of time writing the wrapper code instead of actual application code. Apart from that it's perfectly possible to accomplish non-trivial projects with D, be it against all odds like http://h3.gd/code/nucleus/
Jun 07 2011
next sibling parent reply Fabian <contact-fab freenet.de> writes:
Calling all: Thank you.

I want to use Tango because a friend has lent me a book about learning D 
and using the Tango Software Library. So I'm forced to use D 1.x, aren't I?

At the moment I just want to learn D - I'm not going to code any big 
project with D next time so I think DMD is OK at the beginning. But I'm 
no coding newbie - I've already experiences with Delphi and I'm able to 
find a solution (also object orientated) for more or less complicated 
problems. (Network, Graphics, Threading, ...).

But if I want to start a bigger project like a small game (Jump 'n' Run, 
...) I would be very glad to know that my compiler has got a good code 
optimization.

Greetings Fabian

PS: I believe that's no big problem that there's no German community 
because my English is understandable - I think. But it's more 
comfortable to communicate in German.
Jun 08 2011
next sibling parent reply Fabian <contact-fab freenet.de> writes:
Hi
I'm using D on Windows so I'm not able to use LDC. But I believe DMD 
should be a good alternative too.
If the garbage collection makes trouble I can disable it - or?
http://stackoverflow.com/questions/472133/turning-off-the-d-garbage-collector

By the way: I've read that Digital Mars C++ compiler has got a bad code 
optimization. Is that true? In comparison with the Microsoft Visual 
Studio compiler.

Greetings Fabian
Jun 08 2011
parent reply Adam D. Ruppe <destructionator gmail.com> writes:
Fabian wrote:
 By the way: I've read that Digital Mars C++ compiler has got a bad
 code optimization. Is that true?

In general, no. There's some benchmarks where it loses, but there's also some that win. Overall, it isn't as good at optimizing as gcc and visual studio, but it still isn't bad. (The two places where it does the worst from what I've seen is floating point, which is bad, and inlining, which is ok but not great. Everything else it does pretty well.)
Jun 08 2011
parent Fabian <contact-fab freenet.de> writes:
Okay - Thank you.

Greetings Fab
Jun 08 2011
prev sibling parent reply Fabian <contact-fab freenet.de> writes:
Is D1.x still supported and under development?
Jun 08 2011
parent Adam D. Ruppe <destructionator gmail.com> writes:
 Is D1.x still supported and under development?

Yes, though it almost never gets new features anymore, just bug fixes about once a month. See the changelog here: http://www.digitalmars.com/d/1.0/changelog.html
Jun 08 2011
prev sibling next sibling parent "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Wed, 08 Jun 2011 07:11:03 -0400, Fabian <contact-fab freenet.de> wrote:

 Calling all: Thank you.

 I want to use Tango because a friend has lent me a book about learning D  
 and using the Tango Software Library. So I'm forced to use D 1.x, aren't  
 I?

At the moment, yes. I believe there are ports to D2 in the works.
 At the moment I just want to learn D - I'm not going to code any big  
 project with D next time so I think DMD is OK at the beginning. But I'm  
 no coding newbie - I've already experiences with Delphi and I'm able to  
 find a solution (also object orientated) for more or less complicated  
 problems. (Network, Graphics, Threading, ...).

This is a good way to start. But if you are planning on using Tango, why not use LDC (assuming you are on Linux)? LDC is built *expecting* Tango to be the runtime library, whereas DMD expects phobos to be the runtime (Tango is designed to work with both). Just remember if you need help, you can ask any questions here! D's community is usually very eager to help out newbies.
 But if I want to start a bigger project like a small game (Jump 'n' Run,  
 ...) I would be very glad to know that my compiler has got a good code  
 optimization.

Code optimization is likely not going to be an issue, DMD and LDC both are based on C++ compilers, so they have a lot of the same optimizations. I'd worry more about the GC for performance. -Steve
Jun 08 2011
prev sibling next sibling parent reply Kagamin <spam here.lot> writes:
Trass3r Wrote:

 http://h3.gd/code/nucleus/

I lol'd at the suggestion to upgrade my FF4 to a modern HTML5-compliant browser.
Jun 08 2011
parent Kagamin <spam here.lot> writes:
Andrej Mitrovic Wrote:

 No problem with FF3. You should upgrade FF4 to FF3 I guess. :P

Your FF3 seems to use Adobe Flash instead of HTML5 video.
Jun 08 2011
prev sibling next sibling parent Trass3r <un known.com> writes:
 http://h3.gd/code/nucleus/

I lol'd at the suggestion to upgrade my FF4 to a modern HTML5-compliant browser.

^^ No problems with Opera.
Jun 08 2011
prev sibling next sibling parent reply Don <nospam nospam.com> writes:
Trass3r wrote:
 - The D compiler has only bad code optimization

respectively.
 - There are no maintained GUI libraries

and DWT.
 - The development of the compiler is very slow

definitely become faster. Also Don has more or less taken over development of the CTFE functionality. Nice trend.
 - Only a small community
   => no real German community

Manchmal sieht man sie nur nicht sofort ^^

z.B. Don wohnt in Deutschland.
Jun 08 2011
next sibling parent Fabian <contact-fab freenet.de> writes:
I'm very surprised that there are so many Germans who use D. Maybe the 
German D book is a reason for that. I don't know but it's pretty cool.
Jun 08 2011
prev sibling parent reply David Nadlinger <see klickverbot.at> writes:
On 6/8/11 9:16 PM, Don wrote:
 Trass3r wrote:
 - The D compiler has only bad code optimization

respectively.
 - There are no maintained GUI libraries

and DWT.
 - The development of the compiler is very slow

definitely become faster. Also Don has more or less taken over development of the CTFE functionality. Nice trend.
 - Only a small community
 => no real German community

here. Manchmal sieht man sie nur nicht sofort ^^

z.B. Don wohnt in Deutschland.

Ein paar Österreicher sind auch mit von der Partie. :) David
Jun 08 2011
parent Fabian <contact-fab freenet.de> writes:
Das ist ja klasse.
Deutschland, Österreich, Schweiz - alle da
Jun 08 2011
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
No problem with FF3. You should upgrade FF4 to FF3 I guess. :P
Jun 08 2011
prev sibling next sibling parent "Lloyd Dupont" <ld-REMOVE galador.net> writes:
Let's learn together then! :P
http://galador.net/codeblog/?tag=/D

While my blog post are only about setting up the environment so far.. I have 
delved in the code for 2 weeks now! (Although I had some day off (work and 
programing) in Darwin) I'm right into it now, should have a new blog post 
soon! About programing this time!

My verdict: it's frustrating yes. But D has a couple of advantages and 2 
that you might like:
- D has event / delegate, just like C# (and unlike C++, or maybe C++ has 
them, (it has method pointer, right!?) but it's not taken advantage of!)
- the above point is probably what makes the C++ GUI so... difficult. 
Whereas I found a GUI API for D just like WinForm! (DGui!)

In short summary I found these cool things:

VisualD 0.3.24 (plugin for programing from Visual Studio)
http://www.dsource.org/projects/visuald

VisualD NOTE: (system tweaks)(required) : edit sc.ini
http://www.dsource.org/projects/visuald/wiki/KnownIssues#Librarysearchpathnotpassedtolinker

DGui 02052011 (WinForm like API)
http://code.google.com/p/dgui/

Doost (r88) (serialization)
http://www.dsource.org/projects/doost

Windows API r371
http://dsource.org/projects/bindings/wiki/WindowsApi

"Fabian"  wrote in message news:islvgf$1b61$1 digitalmars.com...

Dear D Community,
is it reasonable to learn D?
I've found a lot of good points for D but I've found a lot of negative
points too. I believe that I needn't to list all the point for D but I
want to give a few examples against learning D I've read in some German
and English boards:

- The D compiler has only bad code optimization
- There are no maintained GUI libraries
- The development of the compiler is very slow
- Only a small community
=> no real German community

So I ask you - Is it reasonable to learn D?
I'm looking forward to your answers.

Greetings Fabian

PS: If you want to contact me you are allowed to write an Email to me.
contact-fab freemail.de 
Jun 13 2011
prev sibling parent reply Jose Armando Garcia <jsancio gmail.com> writes:
On Mon, Jun 13, 2011 at 6:33 AM, Lloyd Dupont <ld-REMOVE galador.net> wrote:
 Let's learn together then! :P
 http://galador.net/codeblog/?tag=/D

 While my blog post are only about setting up the environment so far.. I have
 delved in the code for 2 weeks now! (Although I had some day off (work and
 programing) in Darwin) I'm right into it now, should have a new blog post
 soon! About programing this time!

 My verdict: it's frustrating yes. But D has a couple of advantages and 2
 that you might like:
 - D has event / delegate, just like C# (and unlike C++, or maybe C++ has
 them, (it has method pointer, right!?) but it's not taken advantage of!)
 - the above point is probably what makes the C++ GUI so... difficult.
 Whereas I found a GUI API for D just like WinForm! (DGui!)

Boost, GTK+ and QT have signals. E.g. http://www.boost.org/doc/libs/1_46_1/doc/html/signals.html
Jun 13 2011
parent "Lloyd Dupont" <ld-REMOVE galador.net> writes:
Too late! :P
I have been inspired by the simplicity of D and DGui.
Never happened before with earlier C++ experiments... my loss!

"Jose Armando Garcia"  wrote in message 
news:mailman.906.1308016642.14074.digitalmars-d-learn puremagic.com...

On Mon, Jun 13, 2011 at 6:33 AM, Lloyd Dupont <ld-REMOVE galador.net> wrote:
 Let's learn together then! :P
 http://galador.net/codeblog/?tag=/D

 While my blog post are only about setting up the environment so far.. I 
 have
 delved in the code for 2 weeks now! (Although I had some day off (work and
 programing) in Darwin) I'm right into it now, should have a new blog post
 soon! About programing this time!

 My verdict: it's frustrating yes. But D has a couple of advantages and 2
 that you might like:
 - D has event / delegate, just like C# (and unlike C++, or maybe C++ has
 them, (it has method pointer, right!?) but it's not taken advantage of!)
 - the above point is probably what makes the C++ GUI so... difficult.
 Whereas I found a GUI API for D just like WinForm! (DGui!)

Boost, GTK+ and QT have signals. E.g. http://www.boost.org/doc/libs/1_46_1/doc/html/signals.html
Jun 14 2011