www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Using D is a win

reply BLS <nanali nospam-wanadoo.fr> writes:
Walter said : "D is not a language made for beginners"  and further : 
"They (the nubes) should start with Java, VB or someting similar."

I disagree. You can learn Programming using D. You can teach yourself 
advanced programming technics without having a too steep learing curve 
and  without having too much trouble in learning exotic language constructs.

You can start using and learning D wether you are coming from the Pascal 
language family (including all the 4GL derivats) or you feel more 
comfortable with C-ish languages.

Of course, a DEEP D understanding can easyly take you away from 
everything else for a year or so, but compare it to Cpp!

And even if D will never? be your Bread and Butter language I would 
suggest to stay tuned/ Try to follow the discussions here, even if you 
(like me) are not yet able to understand every topic. I have learned a 
lot within the last 18 month just by listening to the folks here at 
digitalmars.learn/d

I can say that I made my step from
Average Joe Coder to : Average++ Joe Coder
thanks to D and folks around.

..a while ago I was convinced that metaprogramming is bullsh... because 
you can do everything using OOP technics..Well the last is still true, 
but now I see that the overhead using OOP is sometimes not worth the 
effort; Using Metaprogramming in D is not a pain, it is easy. Compared 
to Cpp I have to say D metaprogramming is a piece of cake.
..

Just one thing remains to say (to ask for) Can you, D wizards, please 
explain what a new language feature is good for. In practice, pros and 
cons, having examples ?

Curious enough / Learning D gives me an better C sharp, Java understanding.

Just my 2 percent of a dead president
Bjoern
Jun 10 2007
next sibling parent reply Sean Kelly <sean f4.ca> writes:
BLS wrote:
 Walter said : "D is not a language made for beginners"  and further : 
 "They (the nubes) should start with Java, VB or someting similar."
 
 I disagree. You can learn Programming using D. You can teach yourself 
 advanced programming technics without having a too steep learing curve 
 and  without having too much trouble in learning exotic language 
 constructs.
Agreed. My first language in college was Pascal, the second, C++. D could have been used for both classes... certainly for the second, at least. Sean
Jun 10 2007
parent reply Daniel Keep <daniel.keep.lists gmail.com> writes:
Sean Kelly wrote:
 BLS wrote:
 Walter said : "D is not a language made for beginners"  and further :
 "They (the nubes) should start with Java, VB or someting similar."

 I disagree. You can learn Programming using D. You can teach yourself
 advanced programming technics without having a too steep learing curve
 and  without having too much trouble in learning exotic language
 constructs.
Agreed. My first language in college was Pascal, the second, C++. D could have been used for both classes... certainly for the second, at least. Sean
I'd have to say that D makes a good *second* language, but not so much a good first language. Something like Python definitely makes a better first language since it allows people to focus on learning how to solve problems. I personally think it's more important to get them used to problem-solving than "now, do I need a 32-bit or 64-bit int for this? Should I use a struct or a class?" But then, maybe that's just me :) -- Daniel
Jun 10 2007
next sibling parent reply "Jarrett Billingsley" <kb3ctd2 yahoo.com> writes:
"Daniel Keep" <daniel.keep.lists gmail.com> wrote in message 
news:f4h5em$uhf$1 digitalmars.com...
 I'd have to say that D makes a good *second* language, but not so much a
 good first language.  Something like Python definitely makes a better
 first language since it allows people to focus on learning how to solve
 problems.  I personally think it's more important to get them used to
 problem-solving than "now, do I need a 32-bit or 64-bit int for this?
 Should I use a struct or a class?"

 But then, maybe that's just me :)
I totally agree. I worked last semester as a sort of "tutor" for the lower-level computer science classes at my university, so I'd help the students who were in some of the intro classes with their assignments and such. What always amazed me was that CS0007, the basicest of basic programming courses, used Java. Doing _anything_ in Java is a verbose chore, and I realized that you really have to know a lot about programming already in order to do anything worthwhile in Java. The most common questions I'd get were things like "what does 'public static void' mean?" and "why do I have to use this 'new' thing?" Just compare the code to ask the user for their name and print it back out, in Java: import java.util.*; public class Program { public static void main(String[] args) { System.out.print("Enter your name: "); Scanner input = new Scanner(System.in); String name = input.nextLine(); System.out.println("Hi, " + name); } } And in a simpler language, say MiniD (though it'd look similar in JavaScript or so): write("Enter your name: "); local name = readln(); writefln("Hi, ", name); No types, no protection attributes, no obscure syntax, no knowledge of OOP necessary -- just pure, simple logic.
Jun 10 2007
parent Jari-Matti =?ISO-8859-1?Q?M=E4kel=E4?= <jmjmak utu.fi.invalid> writes:
Jarrett Billingsley wrote:
 Just compare the code to ask the user for their name and print it back
 out, in Java:
 
 import java.util.*;
 
 public class Program
 {
     public static void main(String[] args)
     {
         System.out.print("Enter your name: ");
         Scanner input = new Scanner(System.in);
         String name = input.nextLine();
         System.out.println("Hi, " + name);
     }
 }
 
 And in a simpler language, say MiniD (though it'd look similar in
 JavaScript or so):
 
 write("Enter your name: ");
 local name = readln();
 writefln("Hi, ", name);
 
 No types, no protection attributes, no obscure syntax, no knowledge of OOP
 necessary -- just pure, simple logic.
I'd say Ruby is even better (simpler) than Python or MiniD as an educational language. The syntax is very forgiving and user friendly and "scales" well when the user learns new stuff. It's also much more powerful (syntactically) than Java. Previous example converted to Ruby: print "Enter your name: " name = gets print "Hi, ", name Or some "advanced" stuff: a = [] 3.times { a << gets.to_i } a.map { |i| 42 - 2 * i }
Jun 10 2007
prev sibling next sibling parent reply Sean Kelly <sean f4.ca> writes:
Daniel Keep wrote:
 
 Sean Kelly wrote:
 BLS wrote:
 Walter said : "D is not a language made for beginners"  and further :
 "They (the nubes) should start with Java, VB or someting similar."

 I disagree. You can learn Programming using D. You can teach yourself
 advanced programming technics without having a too steep learing curve
 and  without having too much trouble in learning exotic language
 constructs.
Agreed. My first language in college was Pascal, the second, C++. D could have been used for both classes... certainly for the second, at least. Sean
I'd have to say that D makes a good *second* language, but not so much a good first language. Something like Python definitely makes a better first language since it allows people to focus on learning how to solve problems. I personally think it's more important to get them used to problem-solving than "now, do I need a 32-bit or 64-bit int for this? Should I use a struct or a class?" But then, maybe that's just me :)
I think it depends on how an individual learns (though it's difficult to build a curriculum to account for that). Some people have difficulty focusing on higher level issues until they know how the underpinnings work. Others are the opposite. My wife did best learning architecture, then assembler, and so on. Sean
Jun 10 2007
parent BCS <ao pathlink.com> writes:
Reply to Sean,

 Daniel Keep wrote:
 
 Sean Kelly wrote:
 
 BLS wrote:
 
 Walter said : "D is not a language made for beginners"  and further
 : "They (the nubes) should start with Java, VB or someting
 similar."
 
 I disagree. You can learn Programming using D. You can teach
 yourself advanced programming technics without having a too steep
 learing curve and  without having too much trouble in learning
 exotic language constructs.
 
Agreed. My first language in college was Pascal, the second, C++. D could have been used for both classes... certainly for the second, at least. Sean
I'd have to say that D makes a good *second* language, but not so much a good first language. Something like Python definitely makes a better first language since it allows people to focus on learning how to solve problems. I personally think it's more important to get them used to problem-solving than "now, do I need a 32-bit or 64-bit int for this? Should I use a struct or a class?" But then, maybe that's just me :)
I think it depends on how an individual learns (though it's difficult to build a curriculum to account for that). Some people have difficulty focusing on higher level issues until they know how the underpinnings work. Others are the opposite. My wife did best learning architecture, then assembler, and so on. Sean
I whish they would teach it that way more often. I think that it would benefit the world at large to have more people that look at computers the way that makes you think of them.
Jun 10 2007
prev sibling parent Alexander Panek <a.panek brainsware.org> writes:
Daniel Keep wrote:
 
 Sean Kelly wrote:
 BLS wrote:
 Walter said : "D is not a language made for beginners"  and further :
 "They (the nubes) should start with Java, VB or someting similar."

 I disagree. You can learn Programming using D. You can teach yourself
 advanced programming technics without having a too steep learing curve
 and  without having too much trouble in learning exotic language
 constructs.
Agreed. My first language in college was Pascal, the second, C++. D could have been used for both classes... certainly for the second, at least. Sean
I'd have to say that D makes a good *second* language, but not so much a good first language. Something like Python definitely makes a better first language since it allows people to focus on learning how to solve problems. I personally think it's more important to get them used to problem-solving than "now, do I need a 32-bit or 64-bit int for this? Should I use a struct or a class?" But then, maybe that's just me :) -- Daniel
Oh, ..well.. strong typed languages might be not as easy in the beginning, but I do think they require quite some *important* discipline. Apart from that, D is a rather intuitive language (for me, at least), which could be helpful in someone's case. Kind regards, Alex
Jun 13 2007
prev sibling parent Dan <murpsoft hotmail.com> writes:
Sean Kelly Wrote:

 Daniel Keep wrote:
 
 Sean Kelly wrote:
 BLS wrote:
 Walter said : "D is not a language made for beginners"  and further :
 "They (the nubes) should start with Java, VB or someting similar."

 I disagree. You can learn Programming using D. You can teach yourself
 advanced programming technics without having a too steep learing curve
 and  without having too much trouble in learning exotic language
 constructs.
Agreed. My first language in college was Pascal, the second, C++. D could have been used for both classes... certainly for the second, at least. Sean
I'd have to say that D makes a good *second* language, but not so much a good first language. Something like Python definitely makes a better first language since it allows people to focus on learning how to solve problems. I personally think it's more important to get them used to problem-solving than "now, do I need a 32-bit or 64-bit int for this? Should I use a struct or a class?" But then, maybe that's just me :)
I think it depends on how an individual learns (though it's difficult to build a curriculum to account for that). Some people have difficulty focusing on higher level issues until they know how the underpinnings work. Others are the opposite. My wife did best learning architecture, then assembler, and so on. Sean
Yeah, I went: HTML JavaScript C x86 Assembler <-- this is when it clicked C++ CSS Pascal Java XML D ... After x86 assembler <-> html I was able to understand the efforts to obfuscate complexity. I was also able to understand where we had failed in this task. Programming = new Exercise( in caching && in obfuscating complexity);
Jun 13 2007