r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Rebol School] Rebol School

[unknown: 9]
4-Apr-2006
[36x2]
Hello Denis,


So, one of the things a group of us have been talking about is doing 
some group lessons (world wide).


We have researched some tools for making this possible.  We narrowed 
it down to Macromedia's Breeze.  In fact last week I talked for about 
2 hours with their team (meaning the people that actually designed 
and programmed it).


This week I'm talking to their OEM leads about integrating Breeze 
from Rebol into Web applications.


So our first Breeze interactive lesson will be in a few weeks is 
my guess.  WE have not idea how good it will be with more than 10 
people, and world wide, but we are going to try.


As to a road map.  Programming languages in general are difficult 
to learn in a methodical method.  Rebol being even more difficult 
(in my opinion), because learning the structure does not help very 
much.  Even learning how Rebol works is not all that usefull (compared 
to lets say Basic, or a Batching system).

I will make some simple suggestions though:


1.	Go to Rebol.com, and read what is offered there.  It actually 
is a good starting point.  Rebol Essentials" which is a PDF on the 
site is worth reading.


2.	Write your own dictionary.  Literally, pick a given word in Rebol, 
use it in a sentence.  And just work your way through all 400+ words. 
 You can do it in a few hours.  All you need to do is try to use 
it in a way the Rebol Dictionary does not use it.



3.	Build something you really want to build.  Unless you have a goal, 
working on anything is going to be boring.  Think of a utility, or 
a game that you have always wanted to understand better, or want 
to play with, and build it.  Another cool concept is to simply copy 
it from an existing version in some other language you already know, 
or that is more simple (like Basic).
I think you will find people here very helpful as well.  The signal 
to noise around here is about as good as it gets.
Pekr
4-Apr-2006
[38]
What do you mean by integrating Breeze from Rebol? btw - are Macromedia 
ppl aware of rebol at all? Or was it kind of  "re ...what?". Just 
curious ....
denismx
4-Apr-2006
[39x3]
I'm glad you agree that Rebol requires a different road map to learn 
than, say, C++ or Pascal, or even Prolog and such languages. I know 
a few languages, having been a programmer for a living in my younger 
days. Now I teach programming for young students starting in science 
(18 years old +)
My mastery is now more in teaching than in programming. I've thinkered 
with the idea of maybe teaching Rebol to some of our students. But 
I would have to understand it really well before tempting that. Sure 
I can learn and memorize some syntax. But C++ has something like 
40 basic instructions to master, not 400. And you can start to programm 
significant apps in C++ with a very limited set of instructions.
With Rebol, I do not see yet the "logic" or philosophy behind the 
syntax of instructions. Maybe there isn't one and I' m waiting to 
see something, a pattern, that is not there? So, in any case, I would 
like to be part of the "school" experiment you are planning, if possible. 
This is a good opportunity for me. And maybe I could supply some 
of my pedagogical experience in this project at some time in the 
future.
Pekr
4-Apr-2006
[42x2]
rebol's basic concept is - [    ] a block .... that is the only one 
significat element :-)
it is a series .... [this is what?] - now how can you tell what is 
inside? is it code? or literal data? try to execute it with "do" 
- if it fails, it was not code :-)
denismx
4-Apr-2006
[44x2]
And thanks for the ideas you have given me. I am taking note of them. 
And yes, I do have a project or two I want to write in Rebol. Maybe 
I should choose the instructions from the dictionary with the aim 
to integrate them in on of my projects.
Yes, Pekr, like lisp and other list processing languages.
Pekr
4-Apr-2006
[46]
hmm, I never thought about it, but you are probably right - I tought 
one of my friends rebol for quite some time, and he was always nervous 
a bit, when I told him - look, there is special function for that 
....
DideC
4-Apr-2006
[47]
The difference is that in C/C++ you have to build any simple function 
with the 40 basic instructions you have in the language. So any application 
become quickly huge in source code.


Rebol has so much words because, many simple functions are already 
built-in.

And in fact, most of them are in Rebol code (there are of function! 
type) and are build with basic (native! and op! type) and other simple 
one.


This is one of the reason why Rebol script are so tiny. Many things 
you need are already there.
denismx
4-Apr-2006
[48]
Maybe the thing would be to organise the functions in categories... 
"If you want to do this, here are the usefull functions..." ? I'm 
not sure this is possible, but I will keep this in mind when learning 
Rebol.
Pekr
4-Apr-2006
[49x2]
probably the fastest way to find out is to try console help system, 
it does also partial searches ... it could help novices .... >> help 
fo ..... and look what is printed .... that is how I started to see, 
if there is some named function according to what I think such a 
name could be ...
hmm, there is a Dictionary, and it is in categories, but not much 
of a categories ...
denismx
4-Apr-2006
[51]
Yes DideC, I realize that fully. And I think Rebol is interesting 
partly because of that. The problem now becomes less how to program 
my app, and more how to learn how to do it with Rebol.
Pekr
4-Apr-2006
[52]
have you tried Desktop/Rebol.com/Tools/Word-browser?
DideC
4-Apr-2006
[53]
Organisation : it's already done!

The online (html but not uptodate) dictionary and the Rebol one (In 
desktop / Rebol.com / Tools / Word browser) have categories.
[unknown: 9]
4-Apr-2006
[54]
What do you mean by integrating Breeze from Rebol? btw - are Macromedia 
ppl aware of rebol at all? Or was it kind of  
re ...what?". Just curious ...."


Building a wrapper for Breeze so that it can be called.  You can 
treat Breeze like an API.
As to Rebol, yes, someone there knew of it.
denismx
4-Apr-2006
[55x4]
I have played mostly with Core because I would like my things to 
run on my pocket pc also. I have written short little programs too, 
4 ou 5 liners, maybe 10 at the most. The thing is I still do not 
know enough to plan out a more involved application. I feel I have 
to learn a lot before knowing what is there to use for my project. 
= a lot of learning befoire getting down to writing.
But I'm willing to lauch View for the learning if it helps, of course.
And I wish there will a a view for the pocketpc one day :-)
How would I be notified to apply for the upcoming online class?
Pekr
4-Apr-2006
[59x2]
hmm, strange ... we all mostly complain on rebol docs, but as I think 
about it - there is plenty of docs, maybe not very well organised 
- just sort out - do you need gui? do you need networking? etc. .... 
rebol.com contains how-tos, Core user manual, reference to other 
docs ....
we all hope for the View for pocket pc with rebol 3.0 :-)
denismx
4-Apr-2006
[61]
Yes Pekr, maybe it's all there, just not organised for the newcomer. 
I will keep that in mind as I forage trhu all the stuff. I'm pretty 
determined to become proficient.
Pekr
4-Apr-2006
[62]
how is that? Core Command View ... how-tos, cookbook, reference to 
outer docs - e.g. Viktor Pavls rebol-tutorial (iirc he is a teacher 
too or something like that ...)
[unknown: 9]
4-Apr-2006
[63x3]
I think of Rebol very differently than most people I assume, but 
I have created languages, so I look at them from the inside out.


To Rebol is a giant state-machine that operates on strings.  It is 
a statemachine because it "remembers" what you did to a string last.



Imagine if all you had was sets of strings: "abcdefghijklmnopqrstuvwxyz" 
"1234567890" "one two three four" "name: Bob phone: 123-4567 Age: 
46"


Rebol tracks these strings, and keeps some overhead information for 
them such as where the current pointer (cursor) is in them.  That 
is about it.

Now, lets create 400 variations of string commands.


We will want a way to pull just the age out of that last string. 
 We create a word called "Select"  you pass Select a word (a substring) 
such as "age", and it return the next separate substring, in this 
case "46"


So there really are not 400 commands, actually there are more like 
5, and all these other commands are variations.
To Rebol
 should have "So Rebol"
There is nothing really to sign up for.  We plan to blast all these 
outlets (Web, here, etc), when we are ready to try this out.  We 
might do a small test with 10 to 20 of the old timers first just 
to see how it all works.
denismx
4-Apr-2006
[66x3]
I don't think a good path to learning Rebol is the numerous examples 
and how-tos given. With each, you learn how to program the example 
shown, but they are of little help in helping create referents for 
the learner. One needs to grasp the overall "philosophy" of structure 
of the language at one point.
Ok, Reichart, this concept of Rebol as a giant state-machine helps. 
Only 5 basic instructions...? To identify some of these meta-functions 
would help.
Then, all the other 400 concrete functions could be related to these 
5 ou more proto-instructions. That would be one way of organising 
a learning schema for Rebol.
Pekr
4-Apr-2006
[69]
hmm, you said it is like lisp - so yes, it is so ... I explained 
to my friend, that everything is a series/block (strings in Reichart's 
post). And you have basic set of commands to operate on strings - 
insert, delete, change, append, remove, find, first ... tenth ....... 
and you have 'do to do the code ...
JaimeVargas
4-Apr-2006
[70]
All languages are a giant state machine, as matter of fact all computing 
is. The basic op is NAND. ;-)
Pekr
4-Apr-2006
[71x2]
that is the set of proto functions - those string manipulation functions 
- you do use them everywhere ... even in graphics ... you have face, 
which has pane (container), and you insert, append, find, replace 
another gui elements, and then you call 'show ...
series and its operations everywhere ... that is how I would start 
....
JaimeVargas
4-Apr-2006
[73]
denismx, are you new to programming?
denismx
4-Apr-2006
[74x3]
Interesting, Pekr. I will keep that in mind when opening up the docs 
soon again.
No JaimeVargas. I teach programming to beginners (18 year old and 
+) in Science. I teach C++. A long time ago, I was a programmer: 
Cobol, RGP, assembler on the IBM 370.
Oh, and Fortran also.
Anton
4-Apr-2006
[77]
Denis, I am not sure there is a shortcut to learning the philosophy 
or way of any language. A person simply has to read and write in 
that language a lot before the way is realised. Having said that, 
Carl Sassenrath wrote a long time ago a ten-point summary of rebol, 
which, being so short, had to be more philosophical, I think. Now 
to remember where that might be...
denismx
4-Apr-2006
[78]
But, my skills are getting rusty.
[unknown: 9]
4-Apr-2006
[79]
For example:



Find | Select | Pick | First | Second | Third | Forth | Fifth | and 
Sixth are all really the same command:


If you picture a master command with lots of settings (refinements) 
and even some conditional code (if refinement set, do x).
JaimeVargas
4-Apr-2006
[80]
Ok. So moslty imperative programming languages. To get the gist of 
rebol I think you need to study a bit of the functional approach.
Anton
4-Apr-2006
[81]
But, ok, you are looking for good resources. Fair enough.
denismx
4-Apr-2006
[82x2]
Anton, when you teach languages, you HAVE TO find the best way to 
do it. And there ARE bad ways...
well, I know and have written small programs in Prolog too.
[unknown: 9]
4-Apr-2006
[84]
All languages are a giant state machine, as matter of fact all computing 
is. The basic op is NAND. ;-)


True, in a Turning sort of way.  But I think Rebol is more so that 
C for example, where variables are forgotten, and functions tend 
not to have memory.
denismx
4-Apr-2006
[85]
(Turing)