October 17, 2014
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).
October 17, 2014
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.
October 17, 2014
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...
October 17, 2014
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".


October 17, 2014
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! :-)
October 17, 2014
. 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.






October 17, 2014
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! :-)
most people believe that technology is magic. yes, maybe it's too cruel to ruin their illusions...


October 17, 2014
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…)
October 17, 2014
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
October 17, 2014
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.