www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Beginner ?. Why does D suggest to learn java

reply "RBfromME" <rbgn3 yahoo.com> writes:
I'm a newbie to programming and have been looking into the D lang 
as a general purposing language to learn, yet the D overview 
indicates that java would be a better language to learn for your 
first programming language. Why?  Looks like D is easier than 
Java...
Oct 16 2014
next sibling parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 10/16/2014 03:26 PM, RBfromME wrote:

 I'm a newbie to programming and have been looking into the D lang as a
 general purposing language to learn, yet the D overview indicates that
 java would be a better language to learn for your first programming
 language. Why?  Looks like D is easier than Java...
Here: http://dlang.org/overview.html "As a first programming language - Basic or Java is more suitable for beginners." I say, just ignore that comment. :) We should open a bug report for that page. I had great fun writing a programming book for complete beginners and found it very easy to use D for that purpose: http://ddili.org/ders/d.en/ Ali
Oct 16 2014
parent reply "MachineCode" <netorib94 gmail.com> writes:
On Thursday, 16 October 2014 at 22:42:21 UTC, Ali Çehreli wrote:
 On 10/16/2014 03:26 PM, RBfromME wrote:

 I'm a newbie to programming and have been looking into the D
lang as a
 general purposing language to learn, yet the D overview
indicates that
 java would be a better language to learn for your first
programming
 language. Why?  Looks like D is easier than Java...
Here: http://dlang.org/overview.html "As a first programming language - Basic or Java is more suitable for beginners." I say, just ignore that comment. :) We should open a bug report for that page. I had great fun writing a programming book for complete beginners and found it very easy to use D for that purpose: http://ddili.org/ders/d.en/ Ali
I don't understand. If at least it were C but java? why not D itself?
Oct 16 2014
next sibling parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Fri, 17 Oct 2014 00:52:14 +0000
MachineCode via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 I don't understand. If at least it were C but java? why not D=20
 itself?
C is *awful* as "beginner's language". never ever let people start with C if you don't hate 'em. as for D... current version of D can be used, but with some precautions. we now have excellent book by Ali. (it's great, really! i believe that it must be featured on the front dlang.org page!) but java has alot more books and tutorials. not that D is bad for beginners, it's just has a smaller userbase. and all that things with "classes are reference types and structs are not", "empty array is not empty array but is empty array" and so on D may be confusing a little. it's good to have some CS background to understood that things. just my cent and cent.
Oct 16 2014
parent reply "Paulo Pinto" <pjmlp progtools.org> writes:
On Friday, 17 October 2014 at 01:05:37 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 00:52:14 +0000
 MachineCode via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:

 I don't understand. If at least it were C but java? why not D 
 itself?
C is *awful* as "beginner's language". never ever let people start with C if you don't hate 'em. as for D... current version of D can be used, but with some precautions. we now have excellent book by Ali. (it's great, really! i believe that it must be featured on the front dlang.org page!) but java has alot more books and tutorials. not that D is bad for beginners, it's just has a smaller userbase. and all that things with "classes are reference types and structs are not", "empty array is not empty array but is empty array" and so on D may be confusing a little. it's good to have some CS background to understood that things. just my cent and cent.
Better, go with FreePascal http://www.freepascal.org/ and discover all that those features that many C advocates spread as being close to the machine and other C only features, aren't exclusive of it. Alongside support for real modules, OO and genericity. Then with a head clean of bad C influences, jump into D. -- Paulo
Oct 17 2014
next sibling parent reply "Jessica Rauth" <jess nonowhere.uk> writes:
On Friday, 17 October 2014 at 08:44:00 UTC, Paulo  Pinto wrote:
 On Friday, 17 October 2014 at 01:05:37 UTC, ketmar via 
 Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 00:52:14 +0000
 MachineCode via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:

 I don't understand. If at least it were C but java? why not D 
 itself?
C is *awful* as "beginner's language". never ever let people start with C if you don't hate 'em. as for D... current version of D can be used, but with some precautions. we now have excellent book by Ali. (it's great, really! i believe that it must be featured on the front dlang.org page!) but java has alot more books and tutorials. not that D is bad for beginners, it's just has a smaller userbase. and all that things with "classes are reference types and structs are not", "empty array is not empty array but is empty array" and so on D may be confusing a little. it's good to have some CS background to understood that things. just my cent and cent.
Better, go with FreePascal http://www.freepascal.org/ and discover all that those features that many C advocates spread as being close to the machine and other C only features, aren't exclusive of it. Alongside support for real modules, OO and genericity. Then with a head clean of bad C influences, jump into D. -- Paulo
One of the problem when starting out with FPC resides in the fact that's a completely different family of language (Ada, Pascal, Modula vs the C family), syntax and philosophy (for example in the RTL). Another one is that usually people use it in combination with Lazarus and as the RAD concept is no shit, people start building some applications very fastly. Then when they come to another lang. eg D or Cpp they take a big slap in the face. The fact is that Obj. Pascal and Delphi often give a wrong appreciation of its own skills and abilities. You talk about genericity but the genericity in Object Pascal is currently almost inexistant and doesn't provide a good idea of what "template-meta-programming" is. Actually this looks more like a patch to the lang. and some simple things just like casting a generic type or global generic functions simply don't work at all. While D2 has been written with this idea, FPC will never be good with TMP. Even in the commercial version (Delphi XE7) they start to add some kind of patchs eg with a compiler instrasic which is equivalent to D "static if" (which means that the lang. is not designed for that at all).
Oct 17 2014
parent Paulo Pinto <pjmlp progtools.org> writes:
Am 17.10.2014 um 16:14 schrieb Jessica Rauth:
 On Friday, 17 October 2014 at 08:44:00 UTC, Paulo  Pinto wrote:
 On Friday, 17 October 2014 at 01:05:37 UTC, ketmar via
 Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 00:52:14 +0000
 MachineCode via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
 wrote:

 I don't understand. If at least it were C but java? why not D itself?
C is *awful* as "beginner's language". never ever let people start with C if you don't hate 'em. as for D... current version of D can be used, but with some precautions. we now have excellent book by Ali. (it's great, really! i believe that it must be featured on the front dlang.org page!) but java has alot more books and tutorials. not that D is bad for beginners, it's just has a smaller userbase. and all that things with "classes are reference types and structs are not", "empty array is not empty array but is empty array" and so on D may be confusing a little. it's good to have some CS background to understood that things. just my cent and cent.
Better, go with FreePascal http://www.freepascal.org/ and discover all that those features that many C advocates spread as being close to the machine and other C only features, aren't exclusive of it. Alongside support for real modules, OO and genericity. Then with a head clean of bad C influences, jump into D. -- Paulo
One of the problem when starting out with FPC resides in the fact that's a completely different family of language (Ada, Pascal, Modula vs the C family), syntax and philosophy (for example in the RTL). Another one is that usually people use it in combination with Lazarus and as the RAD concept is no shit, people start building some applications very fastly. Then when they come to another lang. eg D or Cpp they take a big slap in the face. The fact is that Obj. Pascal and Delphi often give a wrong appreciation of its own skills and abilities.
Although I am biased to the Pascal family of languages, this has been done in real world for a couple of decades. When I joined the New University of Lisbon as a student in 1994, I was lucky that the professor heading the programming languages section, had a similar opinion as me in terms of programming languages. The first year students had introduction to programming with P2C/GNU Pascal in the first semester, followed by C++ with gcc in the second semester. There was no C, at all. It was expected that any student compent enough to use C++, would be able to code in straight C if asked to do so. On my last year at the university (1998/9), I one of the teachers giving those lab classes to students. By then, we were using Delphi and Visual C++ instead. The students didn't had much problems switching languages. They got to learn that using pointers doesn't need to be the dragon that C makes out to be. That there was a way to deal with strings, arrays and reference parameters without impact in the whole application. The most curious got to learn how to disable bounds checking. They learned how to write modular applications without having to prefix all their identifiers. They also learned that C wasn't the only way to touch the machine at all levels.
 You talk about genericity but the genericity in Object Pascal is
 currently almost inexistant and doesn't provide a good idea of what
 "template-meta-programming" is. Actually this looks more like a patch to
 the lang. and some simple things just like casting a generic type or
 global generic functions simply don't work at all. While D2 has been
 written with this idea, FPC will never be good with TMP. Even in the
 commercial version (Delphi XE7) they start to add some kind of patchs eg
 with a compiler instrasic which is equivalent to D "static if" (which
 means that the lang. is not designed for that at all).
I just referenced it, because I saw it mentioned a few times in Delphi documentation, but never came to use it. Since 2000 that I don't do anything in the Pascal world of languages, besides collecting Oberon related stuff. -- Paulo
Oct 17 2014
prev sibling parent "Mike James" <foo bar.com> writes:
On Friday, 17 October 2014 at 08:44:00 UTC, Paulo  Pinto wrote:
 On Friday, 17 October 2014 at 01:05:37 UTC, ketmar via 
 Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 00:52:14 +0000
 MachineCode via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:

 I don't understand. If at least it were C but java? why not D 
 itself?
C is *awful* as "beginner's language". never ever let people start with C if you don't hate 'em. as for D... current version of D can be used, but with some precautions. we now have excellent book by Ali. (it's great, really! i believe that it must be featured on the front dlang.org page!) but java has alot more books and tutorials. not that D is bad for beginners, it's just has a smaller userbase. and all that things with "classes are reference types and structs are not", "empty array is not empty array but is empty array" and so on D may be confusing a little. it's good to have some CS background to understood that things. just my cent and cent.
Better, go with FreePascal http://www.freepascal.org/ and discover all that those features that many C advocates spread as being close to the machine and other C only features, aren't exclusive of it. Alongside support for real modules, OO and genericity. Then with a head clean of bad C influences, jump into D. -- Paulo
Don't tell him that - he may discover Freepascal/Lazarus is the holy grail of GUI programming and may never try D... ;-) -=mike=-
Oct 18 2014
prev sibling next sibling parent spir via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On 17/10/14 03:05, ketmar via Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 00:52:14 +0000
 MachineCode via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
 wrote:

 I don't understand. If at least it were C but java? why not D
 itself?
C is *awful* as "beginner's language". never ever let people start with C if you don't hate 'em. as for D... current version of D can be used, but with some precautions. we now have excellent book by Ali. (it's great, really! i believe that it must be featured on the front dlang.org page!) but java has alot more books and tutorials. not that D is bad for beginners, it's just has a smaller userbase. and all that things with "classes are reference types and structs are not", "empty array is not empty array but is empty array" and so on D may be confusing a little. it's good to have some CS background to understood that things.
What you say here applies, I guess, to many other points. I applaud Ali for writing a tutorial like his but... Check it (just the first pages is enough) for literally the dozens of notions one must know and master for being able to understand, not only the features of D introduced, but even the tutorial itself. If I am not a programmer, and one who knows other static langs, and better of the mainstream procedural paradigm, if not D itself, then I do not understand more than few isolated words here and there. We are blind to the huge pile of concepts we know, I guess, because we know them, thus take them for granted... d
Oct 17 2014
prev sibling parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Fri, 17 Oct 2014 10:10:09 +0200
spir via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:

 What you say here applies, I guess, to many other points. I applaud
 Ali for writing a tutorial like his but... Check it (just the first
 pages is enough) for literally the dozens of notions one must know
 and master for being able to understand, not only the features of D
 introduced, but even the tutorial itself. If I am not a programmer,
 and one who knows other static langs, and better of the mainstream
 procedural paradigm, if not D itself, then I do not understand more
 than few isolated words here and there. We are blind to the huge pile
 of concepts we know, I guess, because we know them, thus take them
 for granted...
that's why i'm sure that basic programming must be teached in school. hey, the whole our civilization will collapse without computers! computer programming is the literacy of the new age.
Oct 17 2014
next sibling parent reply "eles" <eles eles.com> writes:
On Friday, 17 October 2014 at 13:59:03 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 10:10:09 +0200
 spir via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com> wrote:
 computer programming is the literacy of the new age.
Let's say, computer knowledge. There are also database administrators, package maintainers, network administrators etc. Knowledge of all is useful, not only the knowledge of programmers. Add builders, engineers, loggers (those with axes) and medics to the list...
Oct 17 2014
parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Fri, 17 Oct 2014 14:33:57 +0000
eles via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:

 On Friday, 17 October 2014 at 13:59:03 UTC, ketmar via=20
 Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 10:10:09 +0200
 spir via Digitalmars-d-learn=20
 <digitalmars-d-learn puremagic.com> wrote:
=20
 computer programming is the literacy of the new age.
=20 Let's say, computer knowledge.
yes, you are right. that was what i mean: not only programming, but "understanding of how computers works and how to control them".
Oct 17 2014
next sibling parent reply "Chris" <wendlec tcd.ie> writes:
On Friday, 17 October 2014 at 14:38:39 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 14:33:57 +0000
 eles via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com> wrote:

 On Friday, 17 October 2014 at 13:59:03 UTC, ketmar via 
 Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 10:10:09 +0200
 spir via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com> wrote:
 computer programming is the literacy of the new age.
Let's say, computer knowledge.
yes, you are right. that was what i mean: not only programming, but "understanding of how computers works and how to control them".
But then people won't trust them bloody machines an inch anymore! :-)
Oct 17 2014
parent ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Fri, 17 Oct 2014 15:40:24 +0000
Chris via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:

 But then people won't trust them bloody machines an inch anymore!=20
 :-)
most people believe that technology is magic. yes, maybe it's too cruel to ruin their illusions...
Oct 17 2014
prev sibling parent "olivier henley" <olivier.henley gmail.com> writes:
. D is pristine clean and immensely powerful.

. D is arguably the actual state-of-the-art programming language.

. Ali's book is a gem. Clear, concise and complete. 
http://ddili.org/ders/d.en/

. D is the best investment you can make for your career, right 
now.

. D has Java beans for breakfast. :D


your choice, my two cents.
Oct 17 2014
prev sibling parent reply "Joakim" <dlang joakim.fea.st> writes:
On Friday, 17 October 2014 at 13:59:03 UTC, ketmar via 
Digitalmars-d-learn wrote:
 that's why i'm sure that basic programming must be teached in 
 school.
 hey, the whole our civilization will collapse without computers!
 computer programming is the literacy of the new age.
This is nonsense and I see it repeated all the time, with code.org and other efforts. Do you know how to fix your car, washing machine, or refrigerator? No, yet your life would likely collapse far faster without those. You hire somebody to do the job if any of those mechanical systems breaks. Similarly, most people hire programmers to do the software work they don't want to do. I will agree that basic computer literacy is important, ie people should know their way around a computer or tablet, how to open and turn off apps, mouse or touch your way around the UI, etc. But beyond that it's a matter of interest: some people like Walter want to work on their car or computer, but most people don't. On Friday, 17 October 2014 at 14:00:43 UTC, ketmar via Digitalmars-d-learn wrote:
 yet Scheme will teach how to write functional code. it's a 
 valuable
 knowledge for D programmer.
My first programming language was Scheme in my freshman year of college (I wasn't one of those kids programming since middle school). Scheme was fine for the time, though the scads of parentheses were annoying, but I think we can do better decades later. D would work fine if it's presented at a level appropriate to a beginner, ie not assuming they know anything about programming to begin with.
Oct 17 2014
parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Fri, 17 Oct 2014 20:40:37 +0000
Joakim via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 On Friday, 17 October 2014 at 13:59:03 UTC, ketmar via=20
 Digitalmars-d-learn wrote:
 that's why i'm sure that basic programming must be teached in=20
 school.
 hey, the whole our civilization will collapse without computers!
 computer programming is the literacy of the new age.
=20 This is nonsense and I see it repeated all the time, with=20 code.org and other efforts. Do you know how to fix your car,=20 washing machine, or refrigerator?
i have no car, i know how to fix my wahing machine, i know how to fix my refrigerator.
 No, yet your life would likely collapse far faster without those.
my life is not the whole human civilization.
 You hire somebody to do the=20
 job if any of those mechanical systems breaks.  Similarly, most=20
 people hire programmers to do the software work they don't want=20
 to do.
...and pretty sure that computers are magical devices. oh, how many times i've seen people doing tedious repetetive work for hours, that kind of work that can be done in seconds by the simple script. actually, that's why people so love their pads: "no-brain-required". not only that, but "no easy way to made it do what i want" too. i still can't understant that kind of attitude.
 I will agree that basic computer literacy is important, ie people=20
 should know their way around a computer or tablet, how to open=20
 and turn off apps, mouse or touch your way around the UI, etc. =20
 But beyond that it's a matter of interest: some people like=20
 Walter want to work on their car or computer, but most people=20
 don't.
inability to write a simple script to automate some task is not different from inability to write some words on a piece of paper. yet i see how the argument "oh, well, i hire someone to write that for me" fits here.
Oct 17 2014
parent reply "Joakim" <dlang joakim.fea.st> writes:
On Friday, 17 October 2014 at 21:20:29 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 20:40:37 +0000
 Joakim via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:
 This is nonsense and I see it repeated all the time, with 
 code.org and other efforts.  Do you know how to fix your car, 
 washing machine, or refrigerator?
i have no car, i know how to fix my wahing machine, i know how to fix my refrigerator.
You do realize that most people are clueless about how to fix those also, right? Would you require that how to fix all that mechanical stuff be taught in schools too? Kids would never leave school if they had to learn all the stuff everybody says they should be forced to learn. ;)
 No, yet your life would likely collapse far faster without 
 those.
my life is not the whole human civilization.
Yet, civilization is made up of people like you, who would all miss those mechanical systems far more than computers.
 You hire somebody to do the job if any of those mechanical 
 systems breaks.  Similarly, most people hire programmers to do 
 the software work they don't want to do.
...and pretty sure that computers are magical devices. oh, how many times i've seen people doing tedious repetetive work for hours, that kind of work that can be done in seconds by the simple script.
They should use tools like Automator instead, no programming needed: http://en.wikipedia.org/wiki/Automator_(software)
 actually, that's why people so love their pads: 
 "no-brain-required".
 not only that, but "no easy way to made it do what i want" too. 
 i still
 can't understant that kind of attitude.
Tablets are optimized for basic usage, not saving files and document editing and whatever else you might want to do on a PC. Most people just need a basic appliance that isn't going to catch viruses or require registry hacks.
 I will agree that basic computer literacy is important, ie 
 people should know their way around a computer or tablet, how 
 to open and turn off apps, mouse or touch your way around the 
 UI, etc.  But beyond that it's a matter of interest: some 
 people like Walter want to work on their car or computer, but 
 most people don't.
inability to write a simple script to automate some task is not different from inability to write some words on a piece of paper.
It is completely different, because there are tools like Automator to help you automate your workflow without needing to write anything. If you need to communicate something on paper- well, nobody uses paper these days so let's say in text ;) - that's more basic and fundamental.
 yet i see how the argument "oh, well, i hire someone to write 
 that for
 me" fits here.
For most people, that is a better route, particularly if they don't need to modify the script as they go and just need it written once.
Oct 17 2014
next sibling parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Fri, 17 Oct 2014 23:31:45 +0000
Joakim via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 You do realize that most people are clueless about how to fix=20
 those also, right?
most people are stupid.
 Would you require that how to fix all that=20
 mechanical stuff be taught in schools too?
but it is! or at least it was. it's all simple physics, you know. not a rocket science.
 Kids would never=20
 leave school if they had to learn all the stuff everybody says=20
 they should be forced to learn. ;)
nobody should be *forced* to learn: it's pointless. yet kids are very curious, and they can be taught *alot* of things if they think that they are "just playing". make it interesting, and you'll be amazed how much kids can learn almost without problems.
 Yet, civilization is made up of people like you, who would all=20
 miss those mechanical systems far more than computers.
it's a huge difference between "i miss my washing machine" and "all our communication and data processing systems are foobared".
 They should use tools like Automator instead, no programming=20
 needed:
=20
 http://en.wikipedia.org/wiki/Automator_(software)
i wasn't talking about sorting out file mess. i was talking about tabular data processing, for example, with some logics and calculations that can't be done automatically without programming.
 Tablets are optimized for basic usage
what is "basic usage"? i really don't know what tablets are for. what i can do with it? watching movie? listening music? reading book? yes, tablets can do this... badly. what else? i can listen music with my N900, and it fits in my pocket. movies? on tablet screen? no, thanks. books? "electronic books" are better. tablets are like XML: bad for everything.
 Most people just need a basic appliance that isn't going to catch=20
 viruses or require registry hacks.
give 'em wooden board with painting. it's great!
 It is completely different, because there are tools like=20
 Automator to help you automate your workflow without needing to=20
 write anything.
oh, please. i can do batch renaming with wildcards, and for any task that is more complex than that there *is* a need to write logic. scripts. "graphic programming" is a dead end. people drop icons in favor of alphabet 'cause alphabet is just better.
 If you need to communicate something on paper-=20
 well, nobody uses paper these days
i wish that the goverment of my country knows about that. and banking. somehow they still insist to have everything written on paper.
 For most people, that is a better route, particularly if they=20
 don't need to modify the script as they go and just need it=20
 written once.
so instead of spending ten minutes to write the script they'll spend a day searching for someone to hire and pay him money. great. thanks to such people we have "don't put your pet into microwave"-like instructions. and that instructions are pointless 'cause such people never reads any instructions anyway. most people are stupid, but that's not what scares me alot. what really scare me is that most people *love* to be stupid and fight for the right to be stupid with passion. p.s. me too. i can't force myself to take English courses for five damned years!
Oct 17 2014
parent reply "Joakim" <dlang joakim.fea.st> writes:
On Saturday, 18 October 2014 at 00:06:10 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Fri, 17 Oct 2014 23:31:45 +0000
 Joakim via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:

 You do realize that most people are clueless about how to fix 
 those also, right?
most people are stupid.
No disagreement there, but even the smart ones can only learn so much.
 Would you require that how to fix all that mechanical stuff be 
 taught in schools too?
but it is! or at least it was. it's all simple physics, you know. not a rocket science.
Many people do not learn simple physics in school, and even if they did, wouldn't necessarily be able to figure out how to fix a specific mechanical system like a washing machine from the general physical principles.
 Kids would never leave school if they had to learn all the 
 stuff everybody says they should be forced to learn. ;)
nobody should be *forced* to learn: it's pointless. yet kids are very curious, and they can be taught *alot* of things if they think that they are "just playing". make it interesting, and you'll be amazed how much kids can learn almost without problems.
Yeah, we agree if you truly mean making most of what they learn optional, not just "fun" but still required. Most of the stuff we force on kids today, like multiplication tables, how to divide numbers by hand, or memorizing historical dates, is utterly useless.
 Yet, civilization is made up of people like you, who would all 
 miss those mechanical systems far more than computers.
it's a huge difference between "i miss my washing machine" and "all our communication and data processing systems are foobared".
Yet, I bet you they'll want that washing machine working far more than the internet.
 They should use tools like Automator instead, no programming 
 needed:
 
 http://en.wikipedia.org/wiki/Automator_(software)
i wasn't talking about sorting out file mess. i was talking about tabular data processing, for example, with some logics and calculations that can't be done automatically without programming.
Isn't that what people use Excel macros for? There are specialized tools for the job, that are more limited than full programming languages but easier to use for the average person.
 Tablets are optimized for basic usage
what is "basic usage"? i really don't know what tablets are for. what i can do with it? watching movie? listening music? reading book? yes, tablets can do this... badly. what else?
All of the above, anything you'd use a portable computer for that doesn't require much typing and would benefit from a larger screen than your smartphone. I wouldn't say they do it all badly: it's the most portable "TV" you could ever have, if you use it to watch video. And you're not limited to the junk on the idiot box, you can download any video from the web and watch on the go. Most websites benefit from a larger screen also.
 i can listen music with my N900, and it fits in my pocket.

 movies? on tablet screen? no, thanks.

 books? "electronic books" are better.
I've watched parts of movies on my 4.7" smartphone screen, which happens to have the best display I've ever used. Tablets are even better for video. I don't read books anymore, but with their high-res displays up to 200-300 ppi these days, reading text is very nice on tablets too.
 tablets are like XML: bad for everything.
Now that's just low, you can't compare anything to the utter junk that is XML. :)
 Most people just need a basic appliance that isn't going to 
 catch viruses or require registry hacks.
give 'em wooden board with painting. it's great!
It's a little better than that. ;)
 It is completely different, because there are tools like 
 Automator to help you automate your workflow without needing 
 to write anything.
oh, please. i can do batch renaming with wildcards, and for any task that is more complex than that there *is* a need to write logic. scripts. "graphic programming" is a dead end. people drop icons in favor of alphabet 'cause alphabet is just better.
Actually, the progression went the other way, people dropped text UIs for graphical UIs. :) I'm not saying _you_ need to leave the terminal, but for most people GUI tools like Automator are enough.
 If you need to communicate something on paper- well, nobody 
 uses paper these days
i wish that the goverment of my country knows about that. and banking. somehow they still insist to have everything written on paper.
Well, the government is the most backwards part of any country.
 For most people, that is a better route, particularly if they 
 don't need to modify the script as they go and just need it 
 written once.
so instead of spending ten minutes to write the script they'll spend a day searching for someone to hire and pay him money. great. thanks to such people we have "don't put your pet into microwave"-like instructions. and that instructions are pointless 'cause such people never reads any instructions anyway. most people are stupid, but that's not what scares me alot. what really scare me is that most people *love* to be stupid and fight for the right to be stupid with passion. p.s. me too. i can't force myself to take English courses for five damned years!
I wouldn't be so quick to call it "stupid" as much as learning takes effort and you only have so much time and effort to learn so much stuff. Better to focus on the stuff that interests you and leave the programming to others, at least for most people. On Saturday, 18 October 2014 at 00:11:18 UTC, ketmar via Digitalmars-d-learn wrote:
 On Sat, 18 Oct 2014 03:05:58 +0300
 ketmar via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:

 p.p.s. just in case: i'm not talking about personalities here, 
 sorry if
 i was offencive.
Nothing offensive about what you wrote.
Oct 18 2014
parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Sat, 18 Oct 2014 19:42:50 +0000
Joakim via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 most people are stupid.
No disagreement there, but even the smart ones can only learn so=20 much.
that's why we should teach kids alot of things while their minds are "clear" and ready to absorb alot of knowledge. and, of course, we must teach them how to *use* that knowledge.
 Many people do not learn simple physics in school, and even if=20
 they did, wouldn't necessarily be able to figure out how to fix a=20
 specific mechanical system like a washing machine from the=20
 general physical principles.
yes, figuring this out without manuals will be hard. but learning physics (proper learning of *anything* for that matter) will give 'em understanding of base principles (mechanics, electricity, etc) and the ability to extract information from books. it's enough for simple fixes that doesn't require to produce hi-tech parts.
 Yeah, we agree if you truly mean making most of what they learn=20
 optional, not just "fun" but still required.  Most of the stuff=20
 we force on kids today, like multiplication tables, how to divide=20
 numbers by hand, or memorizing historical dates, is utterly=20
 useless.
ah, i hated that so-called "history lessons" where i was forced to remebmer that in year i don't care about somebody who i don't care about did something i equally don't care about. ;-) yes, i'm sure that we should teach kids how to do things, not just making 'em remember that 4*8 is 32. tell 'em what multiplication is and then play games with them, games which involves using of multiplication. this way kids will learn how to use multiplication. no need to remember any tables. or let 'em build a simple robot and program it to do some funny things. it's exciting and they will learn many things about mechanics, electricity, programming... let 'em play a role of factory manager, for example, and they will develop a good understanding of how economics works. and so on.
 Yet, civilization is made up of people like you, who would all=20
 miss those mechanical systems far more than computers.
it's a huge difference between "i miss my washing machine" and=20 "all our communication and data processing systems are foobared".
Yet, I bet you they'll want that washing machine working far more=20 than the internet.
most people can't see a whole picture. it's bad. we must teach kids to understand how different things are interconnected too.
 Isn't that what people use Excel macros for?
aren't writing excel macros a programming?
 There are=20
 specialized tools for the job, that are more limited than full=20
 programming languages but easier to use for the average person.
i never meant that all people should learn "full programming languages". they have to know how to write algorithms, but not necessary what "pointer" is or what is the difference between manual memory management and garbage collecting. yet if i'll show 'em simple recursive fibonacci function, they must be able to understand it. hey, it's lambda calculus, and lambda calculus is so simple, that even 7-year kid can understand it! i checked that, kids are really able to understand it. ;-)
 All of the above, anything you'd use a portable computer for that=20
 doesn't require much typing and would benefit from a larger=20
 screen than your smartphone.
instagram and social networks. ;-) two of the most useless things on the planet.
 And you're not limited to the junk on the=20
 idiot box, you can download any video from the web and watch on=20
 the go.
and can't easily mark and categorize that until someone wrote "web-service" for it. 'cause for doing it locally i need... ah, to write some scripts. and i have no keyboard (no, that on-screen crap may be good for tweeting, but it's generally unusable). i.e. tablets *are* idiot boxes, just with fancy pictures from over the world.
 I don't read books anymore
even technical ones? ;-)
 but with=20
 their high-res displays up to 200-300 ppi these days, reading=20
 text is very nice on tablets too.
i prefer to use some specialised device to reading text. it's smaller, it was made especially for reading texts and it can last alot longer without recharging. i mean that tablets can do all that things, but specialised devices are just better. and if i know that i'll have to spend some time waithing for something, i'll take my player and "ebook" with me. or subnotebook -- hey, it has real keyboard!
 tablets are like XML: bad for everything.
Now that's just low, you can't compare anything to the utter junk=20 that is XML. :)
ah, you are right. tablets sometimes can be useful. ;-)
 Actually, the progression went the other way, people dropped text=20
 UIs for graphical UIs. :)
that's 'cause they never used good UIs and we have no truly component environments. Oberon system was great even with it's TUI, and it was really exciting with it's gadgets UI. i'm still missing my Oberon system. by the way, if D will develop good runtime reflection (which is required for precise and moving GCs anyway), we can resurrect Oberon gadgets with it. fast compiler + runtime reflection + dynamic modules =3D=3D excellent component system.
 I'm not saying _you_ need to leave the=20
 terminal, but for most people GUI tools like Automator are enough.
terminal is not the best thing too. ;-) and i have nothing against automator-like tools when they allow flexible scripting when user needs it. but anyway such tools just trying to achieve what component system has out of the box. ;-) there is no such thing as "application" in true component system (nor even a "file" for that matter). user can combine and glue components in any way he wants, building anything he wants. e-mail reader? ok, create new document, drop treeview component into it, drop html viewer into it, drop "e-mail data source" into it, connect 'em and voila! you have a simple working e-mail reader! want some filtering? drop proxy data source into document, connect it to e-mail data source, reconnect tree view to proxy, write some filters and... voila, you have e-mail reader with filtering. save this document and voila: you have "e-mail reading application"! the magic works both ways: take complex e-mail reading application, replace some components, add another components -- and you have e-mail reading application which is customized to your tasks. open two documents -- and you'll have two automatically synchronized readers. have you ever seen BlackBox Component Builder? it's written in Component Pascal, but the basic principles are language-independent. i'm dreaming about BCB with D as base language...
 I wouldn't be so quick to call it "stupid" as much as learning=20
 takes effort and you only have so much time and effort to learn=20
 so much stuff.  Better to focus on the stuff that interests you=20
 and leave the programming to others, at least for most people.
simple scripting *is* programming! ;-) i'm not talking about "everybody must know how to write kernel module" here, as i mentioned above. it's more like writing in general: most people can write, but we still have professional writers. yet almost anyone can write a page of text describing what he did last evening. this will not be a bestseller ;-), of couse, but there's no need to hire a professional writer for such task.
Oct 18 2014
parent reply "Joakim" <dlang joakim.fea.st> writes:
On Saturday, 18 October 2014 at 20:50:42 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Sat, 18 Oct 2014 19:42:50 +0000
 Joakim via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:

 most people are stupid.
No disagreement there, but even the smart ones can only learn so much.
that's why we should teach kids alot of things while their minds are "clear" and ready to absorb alot of knowledge. and, of course, we must teach them how to *use* that knowledge.
So much of what's taught today is so worthless that I'm skeptical of anyone claiming kids should be taught "a lot," as if you know what that is. And given our long history of barely being able to teach any knowledge, with almost no success in getting people to "use" it for something original, that seems like a dead end too. Better to just let people take their own path and find what works best for them.
 Many people do not learn simple physics in school, and even if 
 they did, wouldn't necessarily be able to figure out how to 
 fix a specific mechanical system like a washing machine from 
 the general physical principles.
yes, figuring this out without manuals will be hard. but learning physics (proper learning of *anything* for that matter) will give 'em understanding of base principles (mechanics, electricity, etc) and the ability to extract information from books. it's enough for simple fixes that doesn't require to produce hi-tech parts.
I disagree, as there is a large gap of knowledge between the base principles and the complex systems we build on top. How many people would be able to diagnose and force reallocation of bad sectors in their hard disk if hit with that problem, given the basics of how hard disks work? I actually ran into this recently and found little info about it, meaning not many people do it.
 Yeah, we agree if you truly mean making most of what they 
 learn optional, not just "fun" but still required.  Most of 
 the stuff we force on kids today, like multiplication tables, 
 how to divide numbers by hand, or memorizing historical dates, 
 is utterly useless.
ah, i hated that so-called "history lessons" where i was forced to remebmer that in year i don't care about somebody who i don't care about did something i equally don't care about. ;-) yes, i'm sure that we should teach kids how to do things, not just making 'em remember that 4*8 is 32. tell 'em what multiplication is and then play games with them, games which involves using of multiplication. this way kids will learn how to use multiplication. no need to remember any tables. or let 'em build a simple robot and program it to do some funny things. it's exciting and they will learn many things about mechanics, electricity, programming... let 'em play a role of factory manager, for example, and they will develop a good understanding of how economics works. and so on.
We agree that practical application is a better way to motivate learning than absorbing theory from a book first, at least for most students. But some kids are just not going to enjoy those multiplication games or robot building and I'd say it's better for them to choose something else to pursue, rather than forcing them to pick up multiplication when it's a completely useless skill, now that everybody carries around a calculator with them in their phone these days.
 Yet, civilization is made up of people like you, who would 
 all miss those mechanical systems far more than computers.
it's a huge difference between "i miss my washing machine" and "all our communication and data processing systems are foobared".
Yet, I bet you they'll want that washing machine working far more than the internet.
most people can't see a whole picture. it's bad. we must teach kids to understand how different things are interconnected too.
At this point, _I_ can't see your "whole picture." :) I made a simple point, that building and fixing washing machines or software is something most people don't want to do. Saying they should learn those things anyway doesn't make sense.
 Isn't that what people use Excel macros for?
aren't writing excel macros a programming?
My understanding is that you can write simple mathematical formulas, which is as far as most probably go, even though it may also allow iteration and other programming constructs. My point, that I made below, is that people who need some of the power of programming without the training can use cruder tools like these most of the time.
 There are specialized tools for the job, that are more limited 
 than full programming languages but easier to use for the 
 average person.
i never meant that all people should learn "full programming languages". they have to know how to write algorithms, but not necessary what "pointer" is or what is the difference between manual memory management and garbage collecting. yet if i'll show 'em simple recursive fibonacci function, they must be able to understand it. hey, it's lambda calculus, and lambda calculus is so simple, that even 7-year kid can understand it! i checked that, kids are really able to understand it. ;-)
I wasn't going that far either, but I'd say even simple python is useless for most people. As for lambda calculus, I don't know what that is: I'm not a CS major. :) But even if some kids can understand it, that doesn't mean most should learn simple programming.
 All of the above, anything you'd use a portable computer for 
 that doesn't require much typing and would benefit from a 
 larger screen than your smartphone.
instagram and social networks. ;-) two of the most useless things on the planet.
I'm not on any of those, but I have occasionally seen them on other people's phones. People love checking each other out and those apps give them what they want. Just because you and I don't do it doesn't mean many people don't find it worthwhile. It's like TV, most of it is junk but there's some good stuff on there too.
 And you're not limited to the junk on the idiot box, you can 
 download any video from the web and watch on the go.
and can't easily mark and categorize that until someone wrote "web-service" for it. 'cause for doing it locally i need... ah, to write some scripts. and i have no keyboard (no, that on-screen crap may be good for tweeting, but it's generally unusable). i.e. tablets *are* idiot boxes, just with fancy pictures from over the world.
I believe that's what people use facebook and youtube "likes" and tags for. You may consider anything without a full keyboard an idiot box, but there's a lot of stuff on the web that's much better than anything on TV, but doesn't require text input.
 I don't read books anymore
even technical ones? ;-)
I think the only technical book I've read in the last decade is Andrei's TDPL, which I bought in print and got about halfway through. I've probably read bits and pieces of maybe five other non-technical books here and there in the same timespan, which were all given to me as gifts. I've never read an ebook, yet I read extensively online. Books are an outdated form, now that we have blogs.
 but with their high-res displays up to 200-300 ppi these days, 
 reading text is very nice on tablets too.
i prefer to use some specialised device to reading text. it's smaller, it was made especially for reading texts and it can last alot longer without recharging.
I've never understood the appeal of e-ink devices, but my 10", 1.3 lb tablet is fatiguing to hold for extended periods of time, constantly reloads webpages because it vacates their memory, and only lasts for about 5-6 hours of uninterrupted use, so I don't use it as much as I thought I would when I got it almost two years ago. I'm hopeful that a smaller, newer tablet will fix most of those issues, whenever I pick up my next one.
 i mean that tablets can do all that things, but specialised 
 devices are
 just better. and if i know that i'll have to spend some time 
 waithing
 for something, i'll take my player and "ebook" with me. or 
 subnotebook
 -- hey, it has real keyboard!
It sounds like you have different priorities than others. That's great, you can carry around all those devices and they can carry around their tablets. :)
 Actually, the progression went the other way, people dropped 
 text UIs for graphical UIs. :)
that's 'cause they never used good UIs and we have no truly component environments. Oberon system was great even with it's TUI, and it was really exciting with it's gadgets UI. i'm still missing my Oberon system.
I don't know much about Oberon, but that gadgets UI sounds like it's still a GUI.
 by the way, if D will develop good runtime reflection (which is
 required for precise and moving GCs anyway), we can resurrect 
 Oberon
 gadgets with it.
 fast compiler + runtime reflection + dynamic modules == 
 excellent
 component system.

 I'm not saying _you_ need to leave the terminal, but for most 
 people GUI tools like Automator are enough.
terminal is not the best thing too. ;-) and i have nothing against automator-like tools when they allow flexible scripting when user needs it. but anyway such tools just trying to achieve what component system has out of the box. ;-) there is no such thing as "application" in true component system (nor even a "file" for that matter). user can combine and glue components in any way he wants, building anything he wants. e-mail reader? ok, create new document, drop treeview component into it, drop html viewer into it, drop "e-mail data source" into it, connect 'em and voila! you have a simple working e-mail reader! want some filtering? drop proxy data source into document, connect it to e-mail data source, reconnect tree view to proxy, write some filters and... voila, you have e-mail reader with filtering. save this document and voila: you have "e-mail reading application"! the magic works both ways: take complex e-mail reading application, replace some components, add another components -- and you have e-mail reading application which is customized to your tasks. open two documents -- and you'll have two automatically synchronized readers.
I actually agree with you that some sort of component system like that is likely the future, even if it's only ultimately used to make developers' lives easier and largely unconfigured by users themselves, though I haven't looked much into the complex historical reasons why it hasn't happened yet.
 have you ever seen BlackBox Component Builder? it's written in
 Component Pascal, but the basic principles are 
 language-independent.
 i'm dreaming about BCB with D as base language...
No, never heard of it, sounds interesting.
 I wouldn't be so quick to call it "stupid" as much as learning 
 takes effort and you only have so much time and effort to 
 learn so much stuff.  Better to focus on the stuff that 
 interests you and leave the programming to others, at least 
 for most people.
simple scripting *is* programming! ;-) i'm not talking about "everybody must know how to write kernel module" here, as i mentioned above. it's more like writing in general: most people can write, but we still have professional writers. yet almost anyone can write a page of text describing what he did last evening. this will not be a bestseller ;-), of couse, but there's no need to hire a professional writer for such task.
I'd say simple scripting is more like learning how to use basic Photoshop, a niche skill that most people don't need and don't want to learn, so they pay the few people who enjoy doing it instead.
Oct 18 2014
parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Sat, 18 Oct 2014 23:38:35 +0000
Joakim via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

don't you think that we are going in circles now? not that i'm tired of
this conversation, but i see that we get each other's POVs, and have no
more arguments to convince each other. ;-)

i respect your opinions but just don't agree with them. ;-)
besides, it's increasingly hard for me to answer, 'cause my English
writing skill is awful. i can understand you but can't clearly express
myself.


 I don't read books anymore
even technical ones? ;-)
I think the only technical book I've read in the last decade is=20 Andrei's TDPL, which I bought in print and got about halfway=20 through. I've probably read bits and pieces of maybe five other=20 non-technical books here and there in the same timespan, which=20 were all given to me as gifts. I've never read an ebook, yet I=20 read extensively online. Books are an outdated form, now that we=20 have blogs.
i believe that blog posts and textbooks compliments each other. i prefer textbook for learning new language, for example, and read blogs to learn some interesting/funny/hidden features.
 I don't know much about Oberon, but that gadgets UI sounds like=20
 it's still a GUI.
sure, it's GUI, but with some "consolish" pieces dropped in. you can connect components and you can write some textual commands/scripts to modify component behavior. best from both worlds! ;-)
 I actually agree with you that some sort of component system like=20
 that is likely the future, even if it's only ultimately used to=20
 make developers' lives easier and largely unconfigured by users=20
 themselves
it's simple enough for users to modify. changing layouts by dragging components, embedding components into components and so on. this things are mostly "visual" and easy. people love to customize their working environment if it's easy enough. ;-)
 though I haven't looked much into the complex=20
 historical reasons why it hasn't happened yet.
'cause so-called "software industry" is not ready to die yet. ;-) with proper component system there will be no much sense in selling "applications". and selling components is much harder: how many people will buy "e-mail data source component"? it's not even visual! and selling "e-mail reader" is worthless, 'cause people will deconstruct it to basic parts and build their own "application", and will not buy "shiny new version with improved interface". they will not even buy the "full package" if they only need one part of it, like "faster e-mail data source component". so the only way to keep "software bussines" (as we know it) running is turning component system back to non-component one. take, for example, COM technology (which is badly done, but still usable component system). how much software uses COM to decouple application in reusable parts? even microsoft realised that this will be disaster and turned COM to "advancing scripting interface" instead of truly component system.
 have you ever seen BlackBox Component Builder? it's written in
 Component Pascal, but the basic principles are=20
 language-independent.
 i'm dreaming about BCB with D as base language...
No, never heard of it, sounds interesting.
try it, it's fun and free! ;-) you'll see "component programming system" in action. it's not "component OS", but it's great programming environment nevertheless. D is almost capable of powering such system. if only i had more free time and motivation... creating something BCB-like can be that "killer app" D needs.
Oct 18 2014
parent reply "Joakim" <dlang joakim.fea.st> writes:
On Sunday, 19 October 2014 at 04:55:55 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Sat, 18 Oct 2014 23:38:35 +0000
 Joakim via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:

 don't you think that we are going in circles now? not that i'm 
 tired of
 this conversation, but i see that we get each other's POVs, and 
 have no
 more arguments to convince each other. ;-)
I guess, when does anyone ever convince anyone else online? People usually just throw their arguments at each other and leave holding the same opinion. ;)
 I don't read books anymore
even technical ones? ;-)
I think the only technical book I've read in the last decade is Andrei's TDPL, which I bought in print and got about halfway through. I've probably read bits and pieces of maybe five other non-technical books here and there in the same timespan, which were all given to me as gifts. I've never read an ebook, yet I read extensively online. Books are an outdated form, now that we have blogs.
i believe that blog posts and textbooks compliments each other. i prefer textbook for learning new language, for example, and read blogs to learn some interesting/funny/hidden features.
That may be true now, but soon it will be just blogs.
 I don't know much about Oberon, but that gadgets UI sounds 
 like it's still a GUI.
sure, it's GUI, but with some "consolish" pieces dropped in. you can connect components and you can write some textual commands/scripts to modify component behavior. best from both worlds! ;-)
The desktop UI paradigm needs to be completely redone, from the ground up. Current desktop GUIs are too limiting and the terminal is powerful but antiquated. The problem is how best to combine the two, since one is focused on keyboard input whether the other mostly uses trackpad/mouse. I suspect voice will have to be the new input to this new desktop GUI.
 I actually agree with you that some sort of component system 
 like that is likely the future, even if it's only ultimately 
 used to make developers' lives easier and largely unconfigured 
 by users themselves
it's simple enough for users to modify. changing layouts by dragging components, embedding components into components and so on. this things are mostly "visual" and easy. people love to customize their working environment if it's easy enough. ;-)
I agree that customization should be made really easy, but what percentage of users ever configure their settings themselves now? I bet it's a negligible percentage. What I think is more likely is that they will pay someone to configure the component desktop you envision to suit them, but that person won't necessarily be a developer, more likely a power user.
 though I haven't looked much into the complex historical 
 reasons why it hasn't happened yet.
'cause so-called "software industry" is not ready to die yet. ;-) with proper component system there will be no much sense in selling "applications". and selling components is much harder: how many people will buy "e-mail data source component"? it's not even visual! and selling "e-mail reader" is worthless, 'cause people will deconstruct it to basic parts and build their own "application", and will not buy "shiny new version with improved interface". they will not even buy the "full package" if they only need one part of it, like "faster e-mail data source component". so the only way to keep "software bussines" (as we know it) running is turning component system back to non-component one. take, for example, COM technology (which is badly done, but still usable component system). how much software uses COM to decouple application in reusable parts? even microsoft realised that this will be disaster and turned COM to "advancing scripting interface" instead of truly component system.
I agree that the software business likely just didn't do it right, but I doubt that's all of it. Any component system isn't going to be as fast and efficient as a bespoke system. Maybe the hardware just wasn't fast enough for that lack of efficiency, but with how powerful hardware has gotten these days, maybe we're finally ready for it.
 have you ever seen BlackBox Component Builder? it's written 
 in
 Component Pascal, but the basic principles are 
 language-independent.
 i'm dreaming about BCB with D as base language...
No, never heard of it, sounds interesting.
try it, it's fun and free! ;-) you'll see "component programming system" in action. it's not "component OS", but it's great programming environment nevertheless. D is almost capable of powering such system. if only i had more free time and motivation... creating something BCB-like can be that "killer app" D needs.
I've loaded up a chapter from this pdf book about it: http://www.cslab.pepperdine.edu/warford/ComputingFundamentals/ I'll take a look.
Oct 19 2014
parent ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Sun, 19 Oct 2014 23:34:17 +0000
Joakim via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 The desktop UI paradigm needs to be completely redone, from the=20
 ground up.  Current desktop GUIs are too limiting and the=20
 terminal is powerful but antiquated.  The problem is how best to=20
 combine the two, since one is focused on keyboard input whether=20
 the other mostly uses trackpad/mouse.  I suspect voice will have=20
 to be the new input to this new desktop GUI.
i'm not sure that voice is the way. but i'm very bad as a prophet. ;-)
 I agree that customization should be made really easy, but what=20
 percentage of users ever configure their settings themselves now?=20
   I bet it's a negligible percentage.  What I think is more likely=20
 is that they will pay someone to configure the component desktop=20
 you envision to suit them, but that person won't necessarily be a=20
 developer, more likely a power user.
that's 'cause people need to click some obscure checkboxes to change something. yet if they can just drag a color from color picker to paint element, move some parts of UI around, change size and all this without digging in "preferences" windows (which aren't very appealing to average Joe), they doing this. it's all about making simple things simple and complex things possible. ;-) when people see how easy they can change some visual aspects, they may eventually try to go deeper. add a button with a simple text command. add another button with two commands. and so on. ;-) sure, most people will just recolor their UIs and change some layout. but that's important too, 'cause small things can have a big impact.
 I agree that the software business likely just didn't do it=20
 right, but I doubt that's all of it.
ah, sure, that's not the *only* reason. everything has more than one reason. ;-)
 Any component system isn't=20
 going to be as fast and efficient as a bespoke system.
it's a common misconception based on wrong attempts to build component systems. having one uniform language (thus dropping attempts to build "one-size-fits-all" system) makes component system very fast. at least not slower than any other system with dynamic libraries, and sometimes even faster. Oberon system was really fast, even with it's very poor compiler. the key is the solid language foundation, and D can give us this.
 I've loaded up a chapter from this pdf book about it:
 http://www.cslab.pepperdine.edu/warford/ComputingFundamentals/
 I'll take a look.
you can download BCB itself, it has nice dox and full sources. and it works under wine.
Oct 19 2014
prev sibling next sibling parent ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Sat, 18 Oct 2014 03:05:58 +0300
ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

p.p.s. just in case: i'm not talking about personalities here, sorry if
i was offencive.
Oct 17 2014
prev sibling parent reply "Kagamin" <spam here.lot> writes:
On Friday, 17 October 2014 at 23:31:46 UTC, Joakim wrote:
 Tablets are optimized for basic usage, not saving files and 
 document editing and whatever else you might want to do on a 
 PC.  Most people just need a basic appliance that isn't going 
 to catch viruses or require registry hacks.
LOL http://wmpoweruser.com/infected-android-phones-now-outnumber-infected-pcs-on-mobile-networks/
Oct 20 2014
parent reply "Joakim" <dlang joakim.fea.st> writes:
On Monday, 20 October 2014 at 13:52:10 UTC, Kagamin wrote:
 On Friday, 17 October 2014 at 23:31:46 UTC, Joakim wrote:
 Tablets are optimized for basic usage, not saving files and 
 document editing and whatever else you might want to do on a 
 PC.  Most people just need a basic appliance that isn't going 
 to catch viruses or require registry hacks.
LOL http://wmpoweruser.com/infected-android-phones-now-outnumber-infected-pcs-on-mobile-networks/
Are you laughing because of this? :) "Android devices accounted for 60% of total mobile network infections, and 40% of mobile malware originated from Windows laptops connected to a phone or connected directly through a mobile USB stick or W-Fi hub. Infections on Windows Phone, iPhone and BlackBerry devices made up less than 1% 'Android smartphones are the easiest malware target,' said Kevin McNamee, security architect and director of Alcatel-Lucent’s Kindsight Security Labs, but noted 'but Windows laptops are still the favourite of hard core professional cybercriminals.'” Note my original reference to not being able to save files and the very low rate of infection on the iPhone. Android is a little different because it's so open, just like Windows, and I bet most of those infected Android devices were rooted or old. If you do the math, there are a lot more Android devices than Windows laptops, so the fact that there are almost as many infected Windows laptops means the infection rate of Windows is much higher.
Oct 20 2014
parent Mitch Crane via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Mon, Oct 20, 2014 at 2:40 PM, Joakim via Digitalmars-d-learn
<digitalmars-d-learn puremagic.com> wrote:
 On Monday, 20 October 2014 at 13:52:10 UTC, Kagamin wrote:
 If you do the math, there are a lot more Android
 devices than Windows laptops, so the fact that there are almost as many
 infected Windows laptops means the infection rate of Windows is much higher.
All the more, those numbers reflecting infection rates on mobile networks.
Oct 20 2014
prev sibling next sibling parent reply "Brad Anderson" <eco gnuk.net> writes:
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
 I'm a newbie to programming and have been looking into the D 
 lang as a general purposing language to learn, yet the D 
 overview indicates that java would be a better language to 
 learn for your first programming language. Why?  Looks like D 
 is easier than Java...
The Overview page is ancient and needs to be rewritten. The included example sieve program reflects this. It's almost C (you'd only need to make minor changes to 4 of the lines to make it build with gcc). I'd agree that C probably isn't a good first language. The overview also suggests learning BASIC first which also shows just how old the Overview is (where do you even get a BASIC compiler these days?). There are easier languages but modern, idiomatic D is perfectly approachable for beginners in my opinion. https://issues.dlang.org/show_bug.cgi?id=13624
Oct 16 2014
parent ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Thu, 16 Oct 2014 22:43:11 +0000
Brad Anderson via Digitalmars-d-learn
<digitalmars-d-learn puremagic.com> wrote:

 also shows just how old the Overview is (where do you even get a=20
 BASIC compiler these days?).
voila: http://www.freebasic.net/ ;-)
Oct 16 2014
prev sibling next sibling parent reply "bearophile" <bearophileHUGS lycos.com> writes:
RBfromME:

 I'm a newbie to programming and have been looking into the D 
 lang as a general purposing language to learn, yet the D 
 overview indicates that java would be a better language to 
 learn for your first programming language. Why?  Looks like D 
 is easier than Java...
Python is probably a better first language than Java. D is a little too much complex as first language. Bye, bearophile
Oct 16 2014
parent reply "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Friday, 17 October 2014 at 01:14:34 UTC, bearophile wrote:
 Python is probably a better first language than Java. D is a
 little too much complex as first language.
statically typed language as your first language has advantages, but all are good first languages: easy to find tutorials, easy to find educational example code, easy to find answers to typical beginner issues on Stackoverflow… I personally think Logo, Processing and Scheme would be more fun as learning tools, but they are throw-away languages. E.g. http://turtleacademy.com/programs/en http://www.processing.org/ and many more online programming sites.
Oct 16 2014
next sibling parent reply maarten van damme via Digitalmars-d-learn writes:
While d can be complex, there's nothing preventing you from starting out
simple and not using all features at first.
I don't understand why it's not suitable for a beginner if you use this
approach...

2014-10-17 6:51 GMT+02:00 via Digitalmars-d-learn <
digitalmars-d-learn puremagic.com>:

 On Friday, 17 October 2014 at 01:14:34 UTC, bearophile wrote:

 Python is probably a better first language than Java. D is a
 little too much complex as first language.
statically typed language as your first language has advantages, but all are good first languages: easy to find tutorials, easy to find educationa=
l
 example code, easy to find answers to typical beginner issues on
 Stackoverflow=E2=80=A6

 I personally think Logo, Processing and Scheme would be more fun as
 learning tools, but they are throw-away languages. E.g.
 http://turtleacademy.com/programs/en http://www.processing.org/ and many
 more online programming sites.
Oct 16 2014
parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Friday, 17 October 2014 at 05:38:51 UTC, maarten van damme via 
Digitalmars-d-learn wrote:
 While d can be complex, there's nothing preventing you from 
 starting out
 simple and not using all features at first.
 I don't understand why it's not suitable for a beginner if you 
 use this
 approach...
Anything that keeps you motivated is suitable, but for a beginner the goal should not be to learn a language, but to learn programming principles and learn how to write clean programs. Using a more uniform language that is suitable for teaching is better, and provides more educational resources. Where would you go to find examples of clean programming in D/C++? For the first few weeks getting instant feedback from a REPL is gratifying and being constrained by a functional/recursive paradigm is good. Getting instant visual feedback is motivating and makes it easy to see where you go wrong. Nice for the first steps if you are a visual person.
Oct 17 2014
prev sibling next sibling parent spir via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On 17/10/14 07:38, maarten van damme via Digitalmars-d-learn wrote:
 While d can be complex, there's nothing preventing you from starting out
 simple and not using all features at first.
 I don't understand why it's not suitable for a beginner if you use this
 approach...
For some reasons, in my view: A beginner has to learn programming in addition to a first lang. A beginner has to learn a first lang in addition to programming. We learn languages by understanding valid, meaningful input, ie here reading code. All static langs introduce tons of complication only due to their "staticity". D is rather big & complex, in the field of static langs. Most code will use more than a theoretical minimal set of features. And this minimal set is far more in size, difficulty, complication than in langs partly designed for ease of learning (Lua, Python, Scheme...). Even plain C is far more difficult than say, Lua. d
Oct 17 2014
prev sibling next sibling parent reply "bearophile" <bearophileHUGS lycos.com> writes:
Ola Fosheim Grøstad:


The importance of the IDE for the first language is controversial. I think it's not so important.
 and using a statically typed language as your first language 
 has advantages,
While no one has determined scientifically that you are right, I too believe that static typing has some advantages for a first language. I think there are no perfect first languages. Bye, bearophile
Oct 17 2014
parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Friday, 17 October 2014 at 08:33:46 UTC, bearophile wrote:

The importance of the IDE for the first language is controversial. I think it's not so important.
Perhaps it depends on the person and the language, but I would think autocompletion hints and getting visual cues of syntax errors important. Error messages with line numbers can be overwhelming, hard to understand and discourage experimentation. Newbies often make many syntactical errors. Even when doing interactive stuff in python I find ipython a lot more convenient than regular python. Insepecting a class by hitting tab is very useful for learning I think.
 and using a statically typed language as your first language 
 has advantages,
While no one has determined scientifically that you are right, I too believe that static typing has some advantages for a first language. I think there are no perfect first languages.
That's probably right, because motivation is the most important factor. So even matlab can be a nice environment for learning if it fits your interests. In general I think Dart could turn into a nice language for beginners. It is dynamic and "a bit forgiving", but has static checking and you can see the results right in your browser (and debug it). But I think the IDE should be mandatory…
Oct 17 2014
prev sibling parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Fri, 17 Oct 2014 04:51:14 +0000
via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:

 I personally think Logo, Processing and Scheme would be more fun=20
 as learning tools, but they are throw-away languages.
yet Scheme will teach how to write functional code. it's a valuable knowledge for D programmer.
Oct 17 2014
parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Friday, 17 October 2014 at 14:00:43 UTC, ketmar via 
Digitalmars-d-learn wrote:
 yet Scheme will teach how to write functional code. it's a 
 valuable knowledge for D programmer.
I think spending a few days with Scheme is valuable for all programmers. By being a minimal language you get down to the essence of functional programming by reading some tutorials on Scheme and playing with the interpreter. (and you can more easily configure some open source apps who use guile/elisp/scheme, so it has some practical value…)
Oct 17 2014
prev sibling next sibling parent reply "Chris" <wendlec tcd.ie> writes:
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
 I'm a newbie to programming and have been looking into the D 
 lang as a general purposing language to learn, yet the D 
 overview indicates that java would be a better language to 
 learn for your first programming language. Why?  Looks like D 
 is easier than Java...
I agree with Ali. Give it a try, you don't need to use all the fancy features of D, features you only come to appreciate after years of programming (especially in other languages like Java, that are very restrictive). In D you can start out with very simple code like import std.stdio; void main() { auto i = 5; auto j = 2; auto sum = 5 + 2; writeln(sum); // prints 7 to console } In Java you already need a lot of boiler plate code for this (a class for main(), i.e. you have to understand object-orientation to begin with!). If D is too difficult for you, because the tutorials etc. assume that you already know how to program (to a certain extent), you can either ask people on the forum or try a "simpler" language for which there are very basic tutorials, and come back to D later, once you've grasped enough of the concepts that are common to all programming languages. An "instantly rewarding" language is Lua (lua.org). It was designed for people with no programming background, yet it is very fast and powerful (it's used in gaming a lot). It has some advanced features too (e.g. meta-programming), if you _choose_ to use them (it's not a "scripting for dummies" language). Personally, I wouldn't recommend an IDE for beginners. It can be confusing at times and even worse, it may spoil you as regards coding habits. The best way to get familiar with a language or coding in general is to use a simple text editor, type everything yourself (at the beginning), and soon it will become second nature to you. It's like learning an instrument, on the one hand you have to practise scales and patterns, and on the other hand you have to learn concepts (chords, chord progressions, harmonies). In order to be able to grasp the concepts, your brain shouldn't be concerned with what your fingers are doing, the fingers should move automatically (so that you can listen to yourself).
Oct 17 2014
parent reply "Kagamin" <spam here.lot> writes:
On Friday, 17 October 2014 at 09:31:45 UTC, Chris wrote:
 An "instantly rewarding" language is Lua (lua.org).
In basic you can easily get simple graphics too, it's really interesting for learning, because your program can perform simple visual tasks: http://www.freebasic.net/wiki/wikka.php?wakka=TutGettingStartedQB
 Personally, I wouldn't recommend an IDE for beginners.
In IDE you press F5 and see the program running.
Oct 17 2014
parent ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Fri, 17 Oct 2014 13:13:36 +0000
Kagamin via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 In IDE you press F5 and see the program running.
with REPL you typing code, pressing "enter" and see the code running.
Oct 17 2014
prev sibling next sibling parent "Jesse Phillips" <Jesse.K.Phillips+D gmail.com> writes:
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
 I'm a newbie to programming and have been looking into the D 
 lang as a general purposing language to learn, yet the D 
 overview indicates that java would be a better language to 
 learn for your first programming language. Why?  Looks like D 
 is easier than Java...
The answer is that teaching material for a very beginner is limited at the time of that writing we didn't have Ali's book. http://ddili.org/ders/d.en/ Feel free to give it a try and let the community know things you struggled with.
Oct 17 2014
prev sibling next sibling parent reply "RBfromME" <rbgn3 yahoo.com> writes:
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
 I'm a newbie to programming and have been looking into the D 
 lang as a general purposing language to learn, yet the D 
 overview indicates that java would be a better language to 
 learn for your first programming language. Why?  Looks like D 
 is easier than Java...
Thank you for taking the time to respond to my inquiry. I've been reading up on different languages for some time now. I have experimented with python some and have created a few minor scripts. It's fairly easy to get going with the basics , but i don't find the basics any easier to learn than D's. The biggest issue i personal find in getting deeper into a language is the docs and examples. The python examples, beyond the basics usually get write into OO so you find your self trying to figure out OO while trying to sift through the examples. Makes it a little harder to get going and figure out the available libraries while trying to figure OO at the same time. The second thing that would help a beginner move forward is the documentation on the libraries. I see D has standard libraries along with third parties. And I believe , if i read it properly, D can us C libraries. It would be helpful to see examples on how to use C libs with D since D is still new and its library packages is still small. Summing it up, I personally think the hardest part in learning to use a specific language is the docs and and examples because they all throw you write into OO and you spend more time trying to figure out OO instead of how to use the standard lib or third party lib to get a basic task done. Thank you Ali Cehreli for taking the time to write the D tutorial. It's appreciated by people like me.
Oct 17 2014
next sibling parent Rikki Cattermole <alphaglosined gmail.com> writes:
On 18/10/2014 3:00 p.m., RBfromME wrote:
 On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
 I'm a newbie to programming and have been looking into the D lang as a
 general purposing language to learn, yet the D overview indicates that
 java would be a better language to learn for your first programming
 language. Why?  Looks like D is easier than Java...
Thank you for taking the time to respond to my inquiry. I've been reading up on different languages for some time now. I have experimented with python some and have created a few minor scripts. It's fairly easy to get going with the basics , but i don't find the basics any easier to learn than D's. The biggest issue i personal find in getting deeper into a language is the docs and examples. The python examples, beyond the basics usually get write into OO so you find your self trying to figure out OO while trying to sift through the examples. Makes it a little harder to get going and figure out the available libraries while trying to figure OO at the same time. The second thing that would help a beginner move forward is the documentation on the libraries. I see D has standard libraries along with third parties. And I believe , if i read it properly, D can us C libraries. It would be helpful to see examples on how to use C libs with D since D is still new and its library packages is still small.
If you want to see shared libraries with a c interface bound to D DerelictOrg is a great place to look[0].
 Summing it up, I personally think the hardest part in learning to use a
 specific language is the docs and and examples because they all throw
 you write into OO and you spend more time trying to figure out OO
 instead of how to use the standard lib or third party lib to get a basic
 task done.
I and I'm sure others, will be happy to talk with you about any concepts and ideas that you have trouble understanding. Just let us know.
 Thank you Ali Cehreli for taking the time to write the D tutorial. It's
 appreciated by people like me.
[0] https://github.com/DerelictOrg
Oct 17 2014
prev sibling parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Saturday, 18 October 2014 at 02:00:42 UTC, RBfromME wrote:
 but i don't find the basics any easier to  learn than D's.  The 
 biggest issue i personal find in getting deeper into  a 
 language is the docs and examples. The python examples, beyond 
 the basics usually get write into OO so you find your self 
 trying to figure out OO while trying to sift through the 
 examples.  Makes it a little harder to get going and figure out 
 the available libraries while trying to figure OO at the same 
 time.
If you find D more fun, then use D, but OO is little more than representing aspects of real physical objects in the computer: If you want to write a program about cars you could group properties such as weight, top-speed and build-year and call that Vehicle, then add number of wheels and motorsize and call it Car or some other properties and call it Boat. Add a function print() to display all the info to each class Vehicle, Car and Boat. Then you can create a list of vehicles that store different properties for different types of vehicles while being able to treat all cars and boats the same when printing them. That's basically it. Nothing magic. The most important aspect of learning how to program is what universities tend to call "datastructures and algorithms". The basics is probably just 2-4 weeks. If you already know Python a little bit you could try to use educational resources for Python and translate it into D, e.g.: http://interactivepython.org/courselib/static/pythonds/index.html The nice thing about Python that it is very close to what is called "pseudo code", basically a shorthand used when sketching a program.
 Summing it up, I personally think the hardest part in learning 
 to use a specific language is the docs and and examples because 
 they all throw you write into OO and you spend more time trying 
 to figure out OO instead of how to use the standard lib or 
 third party lib to get a basic task done.
You don't need to learn more OO than I wrote above, and perhaps not even that. What you need to learn to be productive in any imperative language is: 1. What an aggregate (of values) is, they are often called "record", "struct" or "class" and how to create them. 2. Arrays and the provided operations on them (can be in language or libraries) 3. How to create links between aggregates (called "references" or "pointers") Then pick up an online course or book on data structures and algorithms. Introductory books and courses teach roughly the same stuff, so pick anyone you like. Understanding libraries and their documentation becomes much easier when you know the basic terminology about data structures and algorithms. One of the most entertaining and useful courses in computer science.
Oct 18 2014
prev sibling next sibling parent "HaraldZealot" <harald_zealot tut.by> writes:
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
 I'm a newbie to programming and have been looking into the D 
 lang as a general purposing language to learn, yet the D 
 overview indicates that java would be a better language to 
 learn for your first programming language. Why?  Looks like D 
 is easier than Java...
I have taught programming and programming language for several years, last 4 in University. In Belarus we have traditionally program that starts with C as subset of C++ (or even pure C), high-qualified programmers, who absolve such program. Thus we have a proof, that even C can be first language. But in my opinion C is not the simplest way in programming for beginners. D is perfectly suite education purpose (in place of C and C++ of our belarusian program), because it has C-like syntax (Pascal hasn't), it is multi-paradigmal and has procedural-structural start point of programing for years, D also has more convenient and clearer syntax than C and C++. The main objection vs. dlang is that D is unpopular and probably you can't find job offer in this language. But this objection is weak, if D is your first language, because IT-student learn much more than one language during education, and D is very good start and view point for professional languages. And many habits that will be learned in D (such is unittesting, contract programing and many others) will serve well in future for language without intrinsic support of these features. RBfromME, I have interest to teach D as first language and also to teach foreigner. So if you want, I can tutor you through e-mail and github totally free. harald_zealot tut.by
Oct 18 2014
prev sibling next sibling parent reply "Kapps" <opantm2+spam gmail.com> writes:
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
 I'm a newbie to programming and have been looking into the D 
 lang as a general purposing language to learn, yet the D 
 overview indicates that java would be a better language to 
 learn for your first programming language. Why?  Looks like D 
 is easier than Java...
1) They're simpler, no template magic, not as low level, etc. 2) Having an excellent IDE is very nice for starting out, seeing errors right as you type them, seeing all the methods and how to call them, having the documentation right there in your IDE, and not having to worry about whether what you just wrote is something that the IDE's parser can't handle or is actually invalid code. 3) Being significantly more popular is in general a boon, more tutorials are available (though D has some nice resources like Ali's book), and you're more likely to find a solution to a problem through Google as more people have come across it. 4) Having to deal with any compiler bugs would be very frustrating when starting to learn programming. D still has plenty, even if they're much less noticeable now. Trying to figure out why something doesn't work only to realize it's a compiler bug is frustrating. 5) Having a drag-and-drop GUI designer is very nice. D is still difficult to use for GUIs, and when starting it's really nice to see something significant on the screen right away. 6) You probably won't use most of D's features when you're just learning, so much of D's advantages are gone. D is an awesome language, but I would not recommend it for someone completely new to programming. Once you get the hang of programming, D is an excellent language, until then something simpler, more popular, and more supported, would be better.
Oct 21 2014
parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Tue, 21 Oct 2014 09:01:32 +0000
Kapps via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:

 no template magic
that's very bad. it's time to stop making people think that templates are inevitably arcane.
Oct 21 2014
next sibling parent reply "Paulo Pinto" <pjmlp progtools.org> writes:
On Tuesday, 21 October 2014 at 09:14:08 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Tue, 21 Oct 2014 09:01:32 +0000
 Kapps via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com> wrote:

 no template magic
that's very bad. it's time to stop making people think that templates are inevitably arcane.
People think templates are magic, due to their skillset. I see that all the time in the enterprise, when we get people on projects that would already have issues using something like Clipper/VB back in the day. -- paulo
Oct 21 2014
parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Tue, 21 Oct 2014 11:20:42 +0000
Paulo Pinto via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 People think templates are magic, due to their skillset.
and other people keep pointing at languages without templates and metaprogramming as "good for learing". it's closed circle.
Oct 21 2014
parent reply "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Tuesday, 21 October 2014 at 11:43:56 UTC, ketmar via 
Digitalmars-d-learn wrote:
 and other people keep pointing at languages without templates 
 and metaprogramming as "good for learing". it's closed circle.
The problem with template-programming in XSLT/C++/D is that if you want to learn functional programming you are better off using a good functional language.
Oct 21 2014
parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Tue, 21 Oct 2014 11:51:16 +0000
via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:

 The problem with template-programming in XSLT/C++/D is that if=20
 you want to learn functional programming you are better off using=20
 a good functional language.
templates arent about FP only. yet i agree that Scheme is a very good starting point, SICP rocks.
Oct 21 2014
parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Tuesday, 21 October 2014 at 12:19:43 UTC, ketmar via 
Digitalmars-d-learn wrote:
 templates arent about FP only. yet i agree that Scheme is a 
 very good starting point, SICP rocks.
It is available for free online: http://mitpress.mit.edu/sicp/ Scheme is good for teaching because it is a minimalistic language, so you quickly learn the semantic model which is more hidden in Haskell. But I really enjoyed this one: http://tryhaskell.org/ D should have a similar intro when the current quirks have been ironed out.
Oct 22 2014
prev sibling parent reply "Kapps" <opantm2+spam gmail.com> writes:
On Tuesday, 21 October 2014 at 09:14:08 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Tue, 21 Oct 2014 09:01:32 +0000
 Kapps via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com> wrote:

 no template magic
that's very bad. it's time to stop making people think that templates are inevitably arcane.
I like D's templates, it's one of the things that makes me like D limits templates to generic types, like List<int>, and for a beginner I think that's an easier way to handle things.
Oct 21 2014
next sibling parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Tue, 21 Oct 2014 21:48:14 +0000
Kapps via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:

 I like D's templates, it's one of the things that makes me like D=20

 limits templates to generic types, like List<int>, and for a=20
 beginner I think that's an easier way to handle things.
nobody forcec any beginner to write complex templates from the start. not even use them: alot of things can be done without phobos, as excercises. yet i think that it's good to start with the language that has powerful templates and metaprogramming, so more and more advanced features can be gently introduced when there is time. we can't (ok, we can, but this is very-very hard) teach people how to use metaprogramming properly if their language of choice aren't supporting metaprogramming at all, for example. start from using templates as generics, then add some sugar, some type "generics", 'cause there is no other things there.
Oct 21 2014
parent reply "Kagamin" <spam here.lot> writes:
On Tuesday, 21 October 2014 at 21:58:09 UTC, ketmar via 
Digitalmars-d-learn wrote:
 start from using templates as generics, then add some sugar, 
 some type

 after
 "generics", 'cause there is no other things there.
That's quite inadequate criticism. If you don't know, what features generics have, you can't criticize them.
Oct 22 2014
parent ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Wed, 22 Oct 2014 07:58:49 +0000
Kagamin via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 That's quite inadequate criticism. If you don't know, what=20
 features generics have, you can't criticize them.
i'm don't saying that "generics are bad", i'm saying that D has alot more anyway with it's CTFE magic. and generics aren't metaprogramming tool. but my memory can be weak, so feel free to correct me.
Oct 22 2014
prev sibling parent ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Wed, 22 Oct 2014 00:57:59 +0300
ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

 consitions
i don't even know what this word means. honestly.
Oct 21 2014
prev sibling parent "Dejan Lekic" <dejan.lekic gmail.com> writes:
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
 I'm a newbie to programming and have been looking into the D 
 lang as a general purposing language to learn, yet the D 
 overview indicates that java would be a better language to 
 learn for your first programming language. Why?  Looks like D 
 is easier than Java...
D is far more complex programming language than Java. I do D programming for over decade, and Java for ~9 years (before I was a C++ programmmer). Just take a look at number of types you have in D, storage classes, pointers, modules (that will soon come to Java too), etc... D generics are superior to Java. However, Java generics are superasy. Java is designed to be an easy programming language, D is designed to be pragmatic. If people new to programming were about to start with D as the first language, I suggest them to start with an easy subset of it, and I humbly believe that subset will look very, very similar to Java. PS. this is not Java advocacy here, I am just trying to be fair and realistic. I just love D but if I said D is as easy as Java, that would be a lie.
Oct 22 2014