This site is about programming languages in general, and is designed to be a starting point for people interested in learning more about a given programming language.
I'd be really grateful for people to look at the site and let me know any feedback about the content and how it is presented.
Also, under the Resources section, there are a set of posters (including one for Ruby). These posters are designed for class rooms where they will stimulate interest in programming languages. The posters are likely to have at least one more iteration, so any feedback on them would be appreciated (including corrections or improvements).
Does this mean you've given up on creating teaching materials for Ruby?
The referenced website is such a comprehensive undertaking that it must
interfere with steady progress on Ruby teaching, right?
-----Original Message-----
From: Samuel Williams [mailto:space.ship.traveller@gmail.com]
Sent: Sunday, May 02, 2010 7:28 AM
To: ruby-talk ML
Subject: Teaching Programming Languages (including Ruby)
Hello,
This is a follow up from previous postings about teaching Ruby in the
class room.
This site is about programming languages in general, and is designed to
be a starting point for people interested in learning more about a given
programming language.
I'd be really grateful for people to look at the site and let me know
any feedback about the content and how it is presented.
Also, under the Resources section, there are a set of posters (including
one for Ruby). These posters are designed for class rooms where they
will stimulate interest in programming languages. The posters are likely
to have at least one more iteration, so any feedback on them would be
appreciated (including corrections or improvements).
I don't find your description of Java accurate. For one, it has a slightly negative tendency ("This can make it difficult to write short and concise Java programs."). I'd rather stick with descriptions as factual as possible. I would only put such a statement in a later chapter but not directly on the introductory page.
Then, you could argue that Ruby is even more object oriented than Java because it does not have primitive types. Also, the ascription that it is an interpreted languages is at least incorrect in two ways: it insinuates that it is slower than compiled languages - which it is not - and it misses the point of modern HotSpot JVM's with dynamic compilation of byte code into machine code.
This site is about programming languages in general, and is designed to be a starting point for people interested in learning more about a given programming language.
I'd be really grateful for people to look at the site and let me know any feedback about the content and how it is presented.
In particular interest to this group is the Ruby page: Programming Dojo
The introductory sentence misses the phrase "object oriented" which I consider at least as important as the others (if not more important). I'd probably write "Ruby is a dynamically typed, object oriented programming language ..."
If anything this seems to be an ambitious project. Good luck!
I just think having a side by side comparison of closer related methods
might help.
Good luck with the project! I'll probably use it if you throw
Objective-C or Lua on there I really want to learn those two, and the
resources I have found aren't that great.
yeah the links given are good..
but i have opened one of the books on wikibooks and there was no option to
download that book..
so if you can provide with some downloadable material then it will be
great...
···
On Sun, May 2, 2010 at 6:34 PM, James D. Maher <jmaher@jdmaher.com> wrote:
Awfully ambitious!
But what? No COBOL?
Does this mean you've given up on creating teaching materials for Ruby?
The referenced website is such a comprehensive undertaking that it must
interfere with steady progress on Ruby teaching, right?
j
James D. Maher
jdmaher@jdmaher.com
-----Original Message-----
From: Samuel Williams [mailto:space.ship.traveller@gmail.com]
Sent: Sunday, May 02, 2010 7:28 AM
To: ruby-talk ML
Subject: Teaching Programming Languages (including Ruby)
Hello,
This is a follow up from previous postings about teaching Ruby in the
class room.
This site is about programming languages in general, and is designed to
be a starting point for people interested in learning more about a given
programming language.
I'd be really grateful for people to look at the site and let me know
any feedback about the content and how it is presented.
In particular interest to this group is the Ruby page: Programming Dojo
Also, under the Resources section, there are a set of posters (including
one for Ruby). These posters are designed for class rooms where they
will stimulate interest in programming languages. The posters are likely
to have at least one more iteration, so any feedback on them would be
appreciated (including corrections or improvements).
Cobol could be considered, but my goal was mostly to try and get a sample of existing and educationally relevant languages, rather than a historically accurate resource.
One thing which you might be interested in is on the Resources page there is a link to programming language history poster: Computer Languages History
This is quite a good poster if you are interested in the historical aspect of programming language evolution.
I have not given up on producing teaching materials for Ruby. This is simply stepping back and looking at the bigger picture. However, the goal for this site in the future will be the addition of tutorials teaching Ruby. The original tutorial (in need of a bit of TLC) is still under development: http://programming.dojo.net.nz/study/learn-ruby
It still requires a lot more work.
Thanks for your feedback.
Kind regards,
Samuel
···
On 3/05/2010, at 1:04 AM, James D. Maher wrote:
Awfully ambitious!
But what? No COBOL?
Does this mean you've given up on creating teaching materials for Ruby?
The referenced website is such a comprehensive undertaking that it must
interfere with steady progress on Ruby teaching, right?
j
James D. Maher
jdmaher@jdmaher.com
-----Original Message-----
From: Samuel Williams [mailto:space.ship.traveller@gmail.com]
Sent: Sunday, May 02, 2010 7:28 AM
To: ruby-talk ML
Subject: Teaching Programming Languages (including Ruby)
Hello,
This is a follow up from previous postings about teaching Ruby in the
class room.
This site is about programming languages in general, and is designed to
be a starting point for people interested in learning more about a given
programming language.
I'd be really grateful for people to look at the site and let me know
any feedback about the content and how it is presented.
In particular interest to this group is the Ruby page: Programming Dojo
Also, under the Resources section, there are a set of posters (including
one for Ruby). These posters are designed for class rooms where they
will stimulate interest in programming languages. The posters are likely
to have at least one more iteration, so any feedback on them would be
appreciated (including corrections or improvements).
This is a follow up from previous postings about teaching Ruby in the class room.
I've now come full circle, and put together this website: http://programming.dojo.net.nz/
I don't find your description of Java accurate. For one, it has a slightly negative tendency ("This can make it difficult to write short and concise Java programs."). I'd rather stick with descriptions as factual as possible. I would only put such a statement in a later chapter but not directly on the introductory page.
Yes I agree with you. I've removed the statement.
Are there any other issues which you feel are not correct? I'd prefer to make it as good as possible, so if there are other inaccuracies it would be good to improve.
Then, you could argue that Ruby is even more object oriented than Java because it does not have primitive types. Also, the ascription that it is an interpreted languages is at least incorrect in two ways: it insinuates that it is slower than compiled languages - which it is not - and it misses the point of modern HotSpot JVM's with dynamic compilation of byte code into machine code.
Are you saying that I should not describe Ruby as an interpreted language? Or, should I discuss that interpreted languages can be as fast as compiled languages through advanced techniques such as hotspot compilation?
The latter seems like the best option to me.. what do you think?
This site is about programming languages in general, and is designed to be a starting point for people interested in learning more about a given programming language.
I'd be really grateful for people to look at the site and let me know any feedback about the content and how it is presented.
In particular interest to this group is the Ruby page: Programming Dojo
The introductory sentence misses the phrase "object oriented" which I consider at least as important as the others (if not more important). I'd probably write "Ruby is a dynamically typed, object oriented programming language ..."
Yes this makes sense, I wonder how I missed that... to many late nights I've updated it with this new text.
If anything this seems to be an ambitious project. Good luck!
I just think having a side by side comparison of closer related methods
might help.
Good luck with the project! I'll probably use it if you throw
Objective-C or Lua on there I really want to learn those two, and the
resources I have found aren't that great.
The Starting Points are mostly external links and not something I can control unfortunately. I've tried to select ones that are generally good for beginner to intermediate.
Thanks for your feedback.
Kind regards,
Samuel
···
On 3/05/2010, at 1:15 AM, AAMIR KHAN wrote:
yeah the links given are good..
but i have opened one of the books on wikibooks and there was no option to
download that book..
so if you can provide with some downloadable material then it will be
great...
On Sun, May 2, 2010 at 6:34 PM, James D. Maher <jmaher@jdmaher.com> wrote:
Awfully ambitious!
But what? No COBOL?
Does this mean you've given up on creating teaching materials for Ruby?
The referenced website is such a comprehensive undertaking that it must
interfere with steady progress on Ruby teaching, right?
j
James D. Maher
jdmaher@jdmaher.com
-----Original Message-----
From: Samuel Williams [mailto:space.ship.traveller@gmail.com]
Sent: Sunday, May 02, 2010 7:28 AM
To: ruby-talk ML
Subject: Teaching Programming Languages (including Ruby)
Hello,
This is a follow up from previous postings about teaching Ruby in the
class room.
This site is about programming languages in general, and is designed to
be a starting point for people interested in learning more about a given
programming language.
I'd be really grateful for people to look at the site and let me know
any feedback about the content and how it is presented.
In particular interest to this group is the Ruby page: Programming Dojo
Also, under the Resources section, there are a set of posters (including
one for Ruby). These posters are designed for class rooms where they
will stimulate interest in programming languages. The posters are likely
to have at least one more iteration, so any feedback on them would be
appreciated (including corrections or improvements).
Then, you could argue that Ruby is even more object oriented than Java because it does not have primitive types. Also, the ascription that it is an interpreted languages is at least incorrect in two ways: it insinuates that it is slower than compiled languages - which it is not - and it misses the point of modern HotSpot JVM's with dynamic compilation of byte code into machine code.
Are you saying that I should not describe Ruby as an interpreted language? Or, should I discuss that interpreted languages can be as fast as compiled languages through advanced techniques such as hotspot compilation?
The latter seems like the best option to me.. what do you think?
Sorry, that was not clear enough: the paragraph refers to your
description of Java. Java is not an interpreted language - at least
not completely.
Thanks for your feedback.
You're welcome!
Kind regards
robert
···
2010/5/3 Samuel Williams <space.ship.traveller@gmail.com>:
I have looked at wikibooks link on PHP learning part..but i don't fond a
book there just some information but no downloadable book
···
On Sun, May 2, 2010 at 6:56 PM, Samuel Williams < space.ship.traveller@gmail.com> wrote:
Dear Aamir,
Can you tell me exactly what link you looked at?
The Starting Points are mostly external links and not something I can
control unfortunately. I've tried to select ones that are generally good for
beginner to intermediate.
Thanks for your feedback.
Kind regards,
Samuel
On 3/05/2010, at 1:15 AM, AAMIR KHAN wrote:
> yeah the links given are good..
> but i have opened one of the books on wikibooks and there was no option
to
> download that book..
> so if you can provide with some downloadable material then it will be
> great...
>
> On Sun, May 2, 2010 at 6:34 PM, James D. Maher <jmaher@jdmaher.com> > wrote:
>
>> Awfully ambitious!
>>
>> But what? No COBOL?
>>
>> Does this mean you've given up on creating teaching materials for Ruby?
>> The referenced website is such a comprehensive undertaking that it must
>> interfere with steady progress on Ruby teaching, right?
>>
>>
>>
>> j
>>
>> James D. Maher
>> jdmaher@jdmaher.com
>>
>> -----Original Message-----
>> From: Samuel Williams [mailto:space.ship.traveller@gmail.com]
>> Sent: Sunday, May 02, 2010 7:28 AM
>> To: ruby-talk ML
>> Subject: Teaching Programming Languages (including Ruby)
>>
>> Hello,
>>
>> This is a follow up from previous postings about teaching Ruby in the
>> class room.
>>
>> I've now come full circle, and put together this website:
>> http://programming.dojo.net.nz/
>>
>> This site is about programming languages in general, and is designed to
>> be a starting point for people interested in learning more about a given
>> programming language.
>>
>> I'd be really grateful for people to look at the site and let me know
>> any feedback about the content and how it is presented.
>>
>> In particular interest to this group is the Ruby page:
>> Programming Dojo
>>
>> Also, under the Resources section, there are a set of posters (including
>> one for Ruby). These posters are designed for class rooms where they
>> will stimulate interest in programming languages. The posters are likely
>> to have at least one more iteration, so any feedback on them would be
>> appreciated (including corrections or improvements).
>>
>>
>> Programming Language Posters - Programming Dojo
>>
>> If anyone has any suggestions about particular resources or reading
>> material, please let me know. Keep in mind this is a site for absolute
>> beginners.
>>
>> Thanks,
>>
>> Kind regards,
>> Samuel
>>
>>
I see. Yes, Java isn't always interpreted, strictly speaking. But.. in the general case it is interpreted before it is optimized. However, I will think about the best way to address this.
It is kind of like how C isn't always compiled... its a very gray area.
I think the definition has to be such that interpreted is basically the opposite of compiled.. but even then, we compile Java to bytecode, which is then interpreted, which might then be compiled to native code.. heh
Kind regards,
Samuel
···
On 3/05/2010, at 10:43 PM, Robert Klemme wrote:
2010/5/3 Samuel Williams <space.ship.traveller@gmail.com>:
Then, you could argue that Ruby is even more object oriented than Java because it does not have primitive types. Also, the ascription that it is an interpreted languages is at least incorrect in two ways: it insinuates that it is slower than compiled languages - which it is not - and it misses the point of modern HotSpot JVM's with dynamic compilation of byte code into machine code.
Are you saying that I should not describe Ruby as an interpreted language? Or, should I discuss that interpreted languages can be as fast as compiled languages through advanced techniques such as hotspot compilation?
The latter seems like the best option to me.. what do you think?
Sorry, that was not clear enough: the paragraph refers to your
description of Java. Java is not an interpreted language - at least
not completely.
On the right hand side of that page is a link which says "Download as PDF"
This might be what you are after?
Kind regards,
Samuel
···
On 3/05/2010, at 1:37 AM, AAMIR KHAN wrote:
I have looked at wikibooks link on PHP learning part..but i don't fond a
book there just some information but no downloadable book
On Sun, May 2, 2010 at 6:56 PM, Samuel Williams < > space.ship.traveller@gmail.com> wrote:
Dear Aamir,
Can you tell me exactly what link you looked at?
The Starting Points are mostly external links and not something I can
control unfortunately. I've tried to select ones that are generally good for
beginner to intermediate.
Thanks for your feedback.
Kind regards,
Samuel
On 3/05/2010, at 1:15 AM, AAMIR KHAN wrote:
yeah the links given are good..
but i have opened one of the books on wikibooks and there was no option
to
download that book..
so if you can provide with some downloadable material then it will be
great...
On Sun, May 2, 2010 at 6:34 PM, James D. Maher <jmaher@jdmaher.com> >> wrote:
Awfully ambitious!
But what? No COBOL?
Does this mean you've given up on creating teaching materials for Ruby?
The referenced website is such a comprehensive undertaking that it must
interfere with steady progress on Ruby teaching, right?
j
James D. Maher
jdmaher@jdmaher.com
-----Original Message-----
From: Samuel Williams [mailto:space.ship.traveller@gmail.com]
Sent: Sunday, May 02, 2010 7:28 AM
To: ruby-talk ML
Subject: Teaching Programming Languages (including Ruby)
Hello,
This is a follow up from previous postings about teaching Ruby in the
class room.
This site is about programming languages in general, and is designed to
be a starting point for people interested in learning more about a given
programming language.
I'd be really grateful for people to look at the site and let me know
any feedback about the content and how it is presented.
In particular interest to this group is the Ruby page: Programming Dojo
Also, under the Resources section, there are a set of posters (including
one for Ruby). These posters are designed for class rooms where they
will stimulate interest in programming languages. The posters are likely
to have at least one more iteration, so any feedback on them would be
appreciated (including corrections or improvements).
<snip>
I was reading this with quite some interest when it struck me that you
might consider the audience as a tie breaker. If I understood
correctly you are talking to beginners. In that case I suppose there
is not really much room for sophistication. Considering that almost no
interpreted language is really purely interpreted (MRI 1.8 being one
of the exceptions, but one could argue that it is compiled into an AST
first[1]) but compiled into some sort of bytecode first, Java clearly
qualifies as an interpreted language. It is probably necessary to hide
some details from the beginners.
Cheers
Robert
[1] As a side node JRuby is a nice example of how complicated stuff
can become. IIRC it is interpreting the AST, compiling hot parts into
Java bytecode, and then depending on the JVM of course all sort of
other optimizations (including another potential JIT) are taking
place. Thus interpreted and compiled just become a matter of the
viewpoint.
R.
···
On Mon, May 3, 2010 at 12:51 PM, Samuel Williams <space.ship.traveller@gmail.com> wrote:
--
The best way to predict the future is to invent it.
-- Alan Kay
FWIW, there are a number of C++ interpreters too: UnderC, Ch, CINT, to mention just these three. Although these have minority use, and C++ is almost always compiled, I guess they have particular merits in a teaching/learning context.
Alec
···
In message <35D31281-C741-411C-AA3B-0C51C2303B0A@gmail.com>, Samuel Williams <space.ship.traveller@gmail.com> writes
Dear Robert,
I see. Yes, Java isn't always interpreted, strictly speaking. But.. in the general case it is interpreted before it is optimized. However, I will think about the best way to address this.
It is kind of like how C isn't always compiled... its a very gray area.
--
Alec Ross, A-Train http://www.a-train.co.uk
+44 (0)1689 829163 +44 (0)7710 656955 (m)
A Ross Computing Services (Arcs) Ltd.
30 Cathcart Drive, Orpington, KENT, BR6 8BX UK
Even thought the audience is a beginner, many people will have questions about these topics; it is important to have a good resource which has a basic explanation of what is happening under the hood - a diagram might be suitable on the page which explains interpretation.
I've updated the Ruby page with better example and structure. If you have any suggestion about "Why would I learn this language?" section, please let me know
(I've appended ?new just in case the page is cached).
Kind regards,
Samuel
···
On 3/05/2010, at 11:50 PM, Robert Dober wrote:
On Mon, May 3, 2010 at 12:51 PM, Samuel Williams > <space.ship.traveller@gmail.com> wrote:
<snip>
I was reading this with quite some interest when it struck me that you
might consider the audience as a tie breaker. If I understood
correctly you are talking to beginners. In that case I suppose there
is not really much room for sophistication. Considering that almost no
interpreted language is really purely interpreted (MRI 1.8 being one
of the exceptions, but one could argue that it is compiled into an AST
first[1]) but compiled into some sort of bytecode first, Java clearly
qualifies as an interpreted language. It is probably necessary to hide
some details from the beginners.
Cheers
Robert
[1] As a side node JRuby is a nice example of how complicated stuff
can become. IIRC it is interpreting the AST, compiling hot parts into
Java bytecode, and then depending on the JVM of course all sort of
other optimizations (including another potential JIT) are taking
place. Thus interpreted and compiled just become a matter of the
viewpoint.
R.
--
The best way to predict the future is to invent it.
-- Alan Kay
I think C++ is generally not a good language for teaching programming It probably depends on the level of the student and what they are trying to achieve.
But thanks for pointing that out.
Kind regards,
Samuel
···
On 4/05/2010, at 4:20 AM, Alec Ross wrote:
In message <35D31281-C741-411C-AA3B-0C51C2303B0A@gmail.com>, Samuel Williams <space.ship.traveller@gmail.com> writes
Dear Robert,
I see. Yes, Java isn't always interpreted, strictly speaking. But.. in the general case it is interpreted before it is optimized. However, I will think about the best way to address this.
It is kind of like how C isn't always compiled... its a very gray area.
FWIW, there are a number of C++ interpreters too: UnderC, Ch, CINT, to mention just these three. Although these have minority use, and C++ is almost always compiled, I guess they have particular merits in a teaching/learning context.
Alec
--
Alec Ross, A-Train http://www.a-train.co.uk
+44 (0)1689 829163 +44 (0)7710 656955 (m)
A Ross Computing Services (Arcs) Ltd.
30 Cathcart Drive, Orpington, KENT, BR6 8BX UK
I think C++ is generally not a good language for teaching programming It probably depends on the level of the student and what they are trying to achieve.
Well, that's another debate, that I'll not plan to join here - only to say that I agree w/ your second sentence; and that I've seen a successful Introduction to Programming course using C++ as its main vehicle. (It only used a simple subset of the language, for simplicity.) And that for sufficiently mature, and capable, students, IMHO it has a lot to recommend it.
But thanks for pointing that out.
That was my intent.
Regards,
Alec
···
In message <C2B48F22-22C0-4FDC-9809-FAA2E224B7C2@gmail.com>, Samuel Williams <space.ship.traveller@gmail.com> writes
--
Alec Ross, A-Train http://www.a-train.co.uk
+44 (0)1689 829163 +44 (0)7710 656955 (m)
A Ross Computing Services (Arcs) Ltd.
30 Cathcart Drive, Orpington, KENT, BR6 8BX UK
Just to reinforce the point. Computer language are neither inherently
interpreted nor compiled. This is an aspect of an implementation.
There's also a bit of fuzziness in what compilation vs. interpretation
means. At one end of the spectrum is an implementation which compiles
source code into the native machine instructions for the target
platform, at the other end is one which re-parses source code every
time and interprets it. There are very few implementations at the
second end of the spectrum, most 'interpreters' actually 'compile'
source code into some intermediate representation for
execution/evaluation.
The MRI implementation of Ruby pre-1.9 'compiles' ruby source into an
abstract syntax tree. Ruby 1.9 compiles to what are effectively
instructions for an 'artificial' virtual machine, this is similar to
how most Java implementations work, with detail differences.
Similar 'byte' coded VMs have been used for implementations of
languages such as C/C++ which are normally compiled to machine code.
And there are cases where such implementations can outperform
'traditional' implementations on some platforms, because the
executable code is more compact, keeping the working set size down and
reducing virtual memory swapping/paging overhead.
Lisp one of a triumvirate of the earliest programming languages (along
with FORTRAN and COBOL) has a traditional implementation similar to
Ruby 1.8, aided by the fact that Lisp is a homoiconic language which
makes the 'compile' part particularly early. However, Lisp too can be
compiled, the Scheme dialect, developed by Guy Steele and Gerald
Sussman at the M.I.T. AI lab in the mid 1970s-early 1980s provided a
hotbed for such activities.
Sussman and Steele's original 'Lambda Papers' are seminal works which
have informed quite a few language designers.
On Mon, May 3, 2010 at 12:35 PM, Samuel Williams <space.ship.traveller@gmail.com> wrote:
Dear Alec,
I think C++ is generally not a good language for teaching programming It probably depends on the level of the student and what they are trying to achieve.