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

World: r3wp

[I'm new] Ask any question, and a helpful person will try to answer.

Gregg
31-May-2007
[443]
An important aspect of dialects, for me, is that they *don't* look 
like a series of function calls; there is often "implied state" which 
I think is powerful, but messes you up if you think in terms of functional 
programming.
RayA
3-Jun-2007
[444]
Since REBOL requires a programmer to "think differently", in general 
what type of person, skill set, and/or background is required for 
a person to be a good REBOL programmer?
Henrik
3-Jun-2007
[445x2]
you must be patient, definitely, particularly when learning PARSE. 
You must be willing to dive into how figuring out how REBOL works
you must accept that it does certain things differently, because 
there is usually a reason to why it does things differently. Some 
people won't accept this, and they won't figure out the true strengths 
of REBOL and go back to other languages.
btiffin
3-Jun-2007
[447]
RayA; I'm of two minds on this one.  I'm attempting to show construction 
site bosses 

how to be 'good' REBOL programmers.  Very simple, data driven code 
sequences.

If you want to be a 'good REBOL' programmer, hang out here and watch 
for posts

from the likes of Anton, Henrik, Gregg, Ashley, well...most of the 
players here.


But a 'good' REBOL programmer can be anyone, in my humble opinion.
RayA
3-Jun-2007
[448]
Thanks for the feedback. I'm not the "best" programmer (hopefully 
I have other strengths ;-) ), but I'm looking for different and better 
ways to solve problems and build applications. Therefore, would a 
programmer with a computer science background with NON procedural 
languages like Lisp or ML be more likely to "grok" and appreciate 
REBOL? Would it make sense to "hire" a young/new programmer out of 
college and get them involved with REBOL early so they have less 
"bad habits" to unlearn? Are any schools teaching their students 
REBOL? I appreciate the help and opinions of the group.
Henrik
3-Jun-2007
[449]
knowing PHP already did not help me in learning REBOL
btiffin
3-Jun-2007
[450]
I'll pipe up again and say anybody.  Now, if you wanted to hire someone 
that could

write say, a new LIST-VIEW or a dataflow engine, then there may be 
screening

required.  But if you wanted usable applications, I think the sole 
requirement may be
'willingness'.
Sunanda
3-Jun-2007
[451]
I got into REBOL from years of conventional languages: assembler 
mainly, plus some COBOL.
RayA
3-Jun-2007
[452]
Therefore is a persons prior background unimportant, and it's just 
more important that they are "open minded" and willing to try something 
very different and not mainstream, or dare I say it, be a risk taker? 
Also, don't some languages (and the teaching of them) encourage more 
open minded thinking? For example, ime, it's nearly impossible to 
get Java programmers to think outside their language and OO only 
mindset.


So what attracted everyone on this newsgroup to REBOL? And, in general, 
what type of applications are people trying to build?
Henrik
3-Jun-2007
[453]
I was an Amiga user and then anything Carl did, was interesting, 
by default. But I didn't start learning REBOL until trying out the 
View demos and the desktop.
btiffin
3-Jun-2007
[454]
RayA; You pretty much said what I was going to pipe up with again. 
 REBOL

encourages thinking outside the box.  So a good 'good REBOL' programmer 
is 

perhaps a little more rare, but anyone with a desire to simplify 
life is 'in'.

My first commercial app was in support of a volunteer fire department, 
the current

work is going to be 'the next big internet thing'...in a small town 
for a small town.  :)
Geomol
3-Jun-2007
[455]
I think, it is a plus to know functional programming. And if the 
programmer is used to do more than one thing in each line/statement, 
that will help also, when learning REBOL. Things like:

insert back tail serie somefunc + 1


is often seen in REBOL. Experience with scripting languages is probably 
also a plus. I too had a background on the Amiga, staring in 1987 
with an A500. In the 90'ies I started to explore the operating system 
more closely, and then it was natural to check out, what Carl was 
up to. Prior to REBOL, I've programmed in many languages incl. C, 
C++, 6502 ASM, PASCAL, COBOL, LOGO and sh and csh scripting. I develop 
many different things with REBOL from graphical applications, games 
and astronomical applications to tools, languages, databases, xml-stuff, 
word processor, etc. It's very few things, I would choose another 
language than REBOL to do.
DanielSz
3-Jun-2007
[456]
The more coding paradigms you know, the better it is. Rebol is great, 
but doesn't preclude you from investing tile in other languages. 
Rebol is one of the highest level language you will find, with maximum 
expressiveness. But learning Lisp is a whole experience, and OO coding 
is kind of vital these days as well (for GUI stuff, for example). 
Anyway, I got to Rebol because Carl sold it very well  to my ears. 
I was a Rexx scripter, coding also in javascript, actionscript, and 
lua. Lua  is great, as well. Compares well in some respect to Rebol. 
Good luck.
Geomol
3-Jun-2007
[457]
I remember, I found it hard at first to read and understand REBOL, 
but after some time I got it. My example above is maybe a good example. 
It is evaluated like:

insert (back (tail serie)) (somefunc + 1)


So 'insert' take 2 arguments, 1. and 2. outermost parenthesis. 'back' 
take 1 argument, so does 'tail'. 'serie' is a variable. 'somefunc' 
is a function taking no arguments. '+' is an operator connecting 
'somefunc' and '1'. If a programmer can think this way easily, REBOL 
should be no problem.
BrianH
3-Jun-2007
[458]
I first got into REBOL on a complete whim - back then I used to learn 
and make new programming languages for fun.


If you want to understand PARSE, it helps to have some background 
in parser generators, particularly recursive decent ones like Coco 
or Antlr. You can do more with PARSE, but the basic way you structure 
parse rules follows the LL model. Knowing regular expressions will 
not help.
[unknown: 9]
3-Jun-2007
[459]
Perhaps a great question to ask is not what is the best language, 
but rather,  but what feels the best to program in.
BrianH
3-Jun-2007
[460]
That's why I'm still here :)
[unknown: 9]
3-Jun-2007
[461]
Rebol is...........................fun.
Henrik
3-Jun-2007
[462]
I hang on, because of the enormous potential in it. Something like 
Rebcode and how it's implemented shows that. If Python or Ruby were 
a hand grenade, REBOL would be a nuclear bomb. :-) Not that direct 
comparisons are appropriate.
Sunanda
3-Jun-2007
[463]
Forgot, I used to write a lot of mainframe Rexx -- it sort of primes 
you for REBOL.

REBOL is so elegant; but it is more than a toy language designed 
for elegance....It can lift heavy weights too.
Maarten
3-Jun-2007
[464x4]
I think that REBOL "scales your mind" - that's both very god and 
very confronting.
god -> good
The fact that it's one small yet complete executable and rebol.org 
has scripts for things like XML etc. ... I have seen REBOL scale 
from netowrk management tools to e-bank prototypes to ...
Lisp let's you think thoughts previously not thought possible. REBOL 
makes you use them.

 In a way it may wreck a programmers view of the world because a lot 
 of other technologies may become.... annoying
DanielSz
3-Jun-2007
[468x10]
Rebol may become your most useful asset in your toolbox, because 
it's expressiveness and its ease of use, but it will not help you 
understand computer science, precisely because it is so intuitive. 
Anyone trying to grasp the fundamentals of programming will have 
to delve in other languages and paradigms. Also, Rebol didn't spring 
from the void. It is grounded in what Carl knows and he knows a lot. 
I think the link with Lisp is obvious. Parsing comes from the BNF 
grammar. I greatly benefited from studying S-expressions. Look at 
how Lua implements associative arrays (tables), it is very instructive, 
very powerful, they are better than hashes in Rebol, (Carl has expressed 
interest in his blog to revise them). Another thing Lua got right 
is size, it is smaller than Rebol. Lua can be ported more easily, 
it is available on the palm platform for years now. Rebol still promises 
this. Learn Rebol, but don't stop with Rebol.
The integrated internet protocols in Rebol is a great strenth. S-
S-expressions shows that code is data, and data is code. Blocks are 
conceptually the equivalent in rebol. I don't know if they are on 
par, though. It's an interesting topic.
OO in Rebol is prototype based, like in javascript, actionscript, 
lua. Unlike Smalltalk or Java, which are class based.
The guru in terms of explaining programming concepts in Rebol is 
Ladislav Mecir. His articles are a must.
Carl said in his rebol 3.0 front line blog: In REBOL 3.0, closure 
functions are implemented with the closure! datatype and a new mezzanine 
function called closure. That is significant in terms of programming 
techniques.   Ladislav shows how you can achieve them in Rebol 2. 
http://www.fm.vslib.cz/~ladislav/rebol/contexts.html
The thing is, you don't have to understand advanced concepts in order 
to use Rebol. Anyone with some willingness is ready to roll some 
Rebol code. That is great, and if one continues to learn on the side, 
one wins on all the fronts.
In the preface to Structure and Interpretation of Computer Programs, 
Abelson and Sussman state 

“First, we want to establish the idea that a computer language is 
not just a way of getting a computer to perform operations but rather 
that it is a novel formal medium for expressing ideas about methodology. 
Thus, programs must be written for people to read, and only incidentally 
for machines to execute.”
Lots of the fun with Rebol comes from its readability. To be fair, 
lots of people testify the same with Ruby.
Sorry for my ramblings. I'm done now.
Chris
3-Jun-2007
[478x2]
I'm intrigued by Ruby's ability to minimize statements (for example 
here -- http://www.softiesonrails.com/2007/5/22/ruby-101-clear-code
)  There does seem to be cases where Ruby can be more concise/expressive 
than Rebol.
Perhaps that should be concise -- the expressive I guess is the ability 
to set the condition after the action, in a way that is easier for 
our brains to parse.  Of course, the core of Rebol's expressiveness 
is that the language is built on top of a consistent, robust vocubulary 
(datatypes), though it can take time to learn how to construct the 
most expressive statements.  Ruby is not instinctively reflective 
(is this the right term)?  Now I'm rambling...
Oldes
3-Jun-2007
[480]
I still prefere:

shutter_clicked: does [while [camera.on? and camera.memory_available?][capture_image]]
DanielSz
3-Jun-2007
[481]
Nice article, shows how modifiers are used in Ruby, a fine language 
by all accounts. I suppose you would resort to the dialecting facilities 
of rebol to achieve similar constructions.
Chris
3-Jun-2007
[482]
(someone already posted that link in AltME, don't remember who, sorry)
Oldes
3-Jun-2007
[483]
using...

def go_crazy
    capture_image until @camera.memory_card_full?
end


...seems to be useless if you need to do more than just call one 
function.... but I don't know Ruby at all, so maybe I'm wrong
Chris
3-Jun-2007
[484x3]
Yes, but in this instance, it is easy to read.
In dialects, it is possible to order things as you wish.  In filtered-import.r, 
a rule can be followed by a condition message:

foo: integer! else "Not an integer!"


But that is limited to dialects.  In Rebol proper, you'd be limited 
to:

while [camera/memory-available?][capture-image]
or
until [capture-image camera/memory-full?]
until [capture-image camera/memory-full?] -- is an awkward construct.
Oldes
3-Jun-2007
[487x3]
REBOL: while [camera/memory-available?][capture-image]

RUBY:    def go_crazy capture_image until @camera.memory_card_full? 
end
I still prefere Rebol:)
and I don't know if you can write it all at one line in Ruby
Chris
3-Jun-2007
[490]
To be fair:

REBOL: while [camera/memory-available?][capture-image]
RUBY:     capture_image until @camera.memory_card_full?
Oldes
3-Jun-2007
[491]
ok.. that's true
Sunanda
3-Jun-2007
[492]
As Oldes says: it looks great until you need to change the action 
[capture_image] with something more complicated....Say two functions: 
What then in Ruby?