Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

General REBOL questions

 [1/12] from: bgs:tas:verizon at: 15-Jun-2002 17:03


Hello, I've been looking into REBOL/View recently and it looks really terrific. I have some generic questions if someone knowledgable has a moment: 1) As everything in REBOL is compiled into a single executable (no seperate modules) and as more and more protocols, language enhancements, etc. are added, will the single executable ever get to the point where it's too large? Just keep getting bigger and bigger. At what point would it become too large and cumbersome? 2) How are obsolete features/protocols being retired? e.g. if REBOL supports a protocol that no one uses enough anymore to justify it being in the executable, will they keep it in there indefinitely for backwards compatibility or are they removing/retiring those types of features with new versions? 3) When I fire up REBOL it brings up the REBOL desktop. I assume the desktop is a REBOL script, but is this script imbedded into the executable itself? If so, what if you want to modify it? Shouldn't there just be some kind of default startup-script defined and the user can make that whatever they want without burdening the executable with a built-in script that they may not want to use anyways? 4) I did a search on Dice.com and didn't find 1 job for REBOL. Hopefully their new licensing terms I read about in the archives of this mailing list will change that. More Java-like licensing where REBOL still controls the design but developers are allowed to use it freely for commercial purposes. REBOL would then make their money licensing REBOL and associated applications to larger corporations for commercial purposes. FYI - REBOL/View is already pretty tiny, so for the fun of it I compressed it with the UPX executable packer and it shrank significantly more! It shrank from 503KB to 313KB! (38% smaller!) Here's the address for UPX: http://upx.sourceforge.net/ Thanks! Brian

 [2/12] from: carl:cybercraft at: 16-Jun-2002 15:33


On 16-Jun-02, Brian wrote: Hi Brian, Welcome to the REBOL List. A lot of tricky questions there. (: I'll have a go at one of them, anyway. (And I'm sure the others will get answers as well. They're not all new questions, I assure you.)
> 3) When I fire up REBOL it brings up the REBOL desktop. I assume the > desktop is a REBOL script, but is this script imbedded into the
<<quoted lines omitted: 3>>
> executable with a built-in script that they may not want to use > anyways?
I think the Desktop script is loaded when you launch View, though I'm not absolutely sure about that. But I believe it's quite small so I'd guess it wouldn't use up too many resources. However, it's easy to make it so View launches to just the Console, not the Desktop. Just change the... desktop: true line in View's "prefs.r" file to... desktop: false and the Desktop won't display. (Entering "Desktop" in the Console will still allow you to run it if you want to though.) As to a default startup-script, there is one. Look for a file called user.r . (It and the prefs.r file should be where you installed View.) You can have that launch any scripts you like at startup. Make a backup of the original though of course, to prevent any modifications you make to it mucking up the way View launches for you. Hope that's of some help. -- Carl Read

 [3/12] from: al:bri:xtra at: 16-Jun-2002 18:16


Brian wrote:
> ...will the single executable ever get to the point where it's too large?
Just keep getting bigger and bigger. At what point would it become too large and cumbersome? At the moment, most Rebol.exe are around 500KB. OpenOffice is around 100MB, Forte for Java is around 125 MB (I think it's called something else now). For some people too large could be when it exceeds the capacity of a 1.44MB floppy disk. So Rebol still has the capacity to expand to around three times it's original size. I don't think this is a limitation, IMO.
> FYI - REBOL/View is already pretty tiny, so for the fun of it I compressed
it with the UPX executable packer and it shrank significantly more! It shrank from 503KB to 313KB! (38% smaller!) Here's the address for UPX: http://upx.sourceforge.net/ See what I mean? :)
> 2) How are obsolete features/protocols being retired? e.g. if REBOL
supports a protocol that no one uses enough anymore to justify it being in the executable, will they keep it in there indefinitely for backwards compatibility or are they removing/retiring those types of features with new versions? Currently the NEWS protocol is optional. It can be loaded by 'do-ing the script. Also the 'if/else construct I believe is obsolete; people can use 'either or 'if instead. I believe the difference is small in size. Andrew Martin ICQ: 26227169 http://valley.150m.com/

 [4/12] from: petr:krenzelok:trz:cz at: 16-Jun-2002 11:06


Brian wrote:
> Hello, > I've been looking into REBOL/View recently and it looks really
<<quoted lines omitted: 5>>
> the point where it's too large? Just keep getting bigger and bigger. > At what point would it become too large and cumbersome?
I think that it is just temporare state. Remember Carl designed AmigaOS and modularity and componentisation is his way to looking at how things should work. I believe, that rebol is pretty well modularised under the hood. So, separate components, pluggable in real-time will surely come, once there is some important one, which would enlarde rebol.exe significantly ... till then, however, - relax :-)
> 2) How are obsolete features/protocols being retired? e.g. if REBOL > supports a protocol that no one uses enough anymore to justify it > being in the executable, will they keep it in there indefinitely for > backwards compatibility or are they removing/retiring those types of > features with new versions?
Just one thing to remember - one thing is .exe file, and second completly unrelated thing is - how does it unpack itself into memory. Rebol/View is NOT started internally, untill some View related functionality is called. So - it just sits and takes its place in executable, not memory. The same could be probably said about network protocols. And if not, they are pretty tiny. You can use some tool/profiler available (IIRC DocKimbel did one, just look and find it on his reb-site) to play with it. You can use function 'free (/Command only?), 'unset, or just assign something to none!
> 3) When I fire up REBOL it brings up the REBOL desktop. I assume the > desktop is a REBOL script, but is this script imbedded into the > executable itself? If so, what if you want to modify it? Shouldn't > there just be some kind of default startup-script defined and the user > can make that whatever they want without burdening the executable with > a built-in script that they may not want to use anyways?
We can't modify it yet. I hope RT will a) separate it from exe in the future b) provide its source-code c) provides easy way of how to overload/replace it ...
> 4) I did a search on Dice.com and didn't find 1 job for REBOL. > Hopefully their new licensing terms I read about in the archives of
<<quoted lines omitted: 3>>
> licensing REBOL and associated applications to larger corporations for > commercial purposes.
Yes, licensing model ... We all complain to MS licensing, but to be fair, I find selling features pretty common in other languages for free (sound, shell and library), pretty limiting and one of factors of rebol unsuccessfull adoption. Other's are free to have their own opinion, just don't flame, please, or I will make even harder-to-swallow statements regarding mySQL, Fast-CGI etc. modules ;-)
> FYI - REBOL/View is already pretty tiny, so for the fun of it I > compressed it with the UPX executable packer and it shrank > significantly more! It shrank from 503KB to 313KB! (38% smaller!) > Here's the address for UPX: http://upx.sourceforge.net/
Yes, that's cool, isn't it? :-) Well, 1.44 is not limit for me. On my new computer, I already have no floppy instaled anyway. I use USB Pen device, 128MB and it mounts automatically from W98 to WXP, even Linux can find it. It's just so cool - no more crappy floppies :-) Cheers, -pekr-

 [5/12] from: jason:cunliffe:verizon at: 16-Jun-2002 4:13


Hi Brian Well Carl and Andrew answered your Qs 1,2,and 3.. but that leaves the hard one:
> 4) I did a search on Dice.com and didn't find 1 job for REBOL. > Hopefully their new licensing terms I read about in the archives of
<<quoted lines omitted: 3>>
> licensing REBOL and associated applications to larger corporations for > commercial purposes.
Firstly, I find REBOL is curiously 'hidden' from many web searches. For example there are many REBOL scripts which are published as rebsites, accessible through /View Desktop which don't appear at all via Google. This is a shame, and a nuisance too. Someone wrote a REBOL 'search' script a while back in response to this. But I still regard it as design deficiency in /View's Desktop that it does not have smarter listing, searching and sorting features for rebsites and their contents. Technically it would not be hard, but the UI design and initiative from RT has recently been oriented to building up REBOL/IOS and the company's small, but brilliant technical resources have all been focused on the same task. Which means that REBOL is still off the normal web 'radar' in many ways. That includes JOB listings. REBOL has a tiny programmer community still, with almost no other public presence, [but it did make to the Webbies], so it is unlikely that you will see job listings showing up in the obvious places soon. But if you look at problem solving, ie. the tasks those jobs are needed for, REBOL's features come shining forth. Not enough people know about REBOL yet. But when they learn about it, they often immediately want to use it. Project and application requirements. Just this week I presented a preliminary web site design to a company. It was all about core graphic design and interface ideas, and use of FlashMX. During the meeting I happened to show Flash menu tree loading and opening XML files served on another Vanilla site I am building. The client was soon interested in Vanilla. I showed some REBOL scripts for it I had written. They were immediately impressed by the simplicity and elegance of vanilla's design, and then by the tiny size and power of REBOL. Could we use this for small content management site for another client of ours...? [I smiled.] REBOL is a formidable and unique tool in any programmer's kit. Depending on the situation it can be your best secret weapon or best new chance to innovate. Many companies want only high profile technologies. Ones they can go to the books store for and fund shelves full of it. They want the freedom to hire any number of programmers trained in it. People are very often afraid of new tools, or ones which may seem to make them too dependent on an individual developer. Python and PHP were both in this Catch-22 position until a couple of years ago. Now they have turned the corner fully into public respectability. They have reached a plateau and are entering their golden years. REBOL is brilliant and already incredibly useful, but still very young. In these times developers will not be very likely to be asked/hired specifically to use it. Instead they will be the ones introducing it because it is the best tool for the job. Probably also the fastest and most fun to use. I hope it too gains the wider audience it deserves. Licensing and lack of certain features hold it back. IMO, it could/should be better promoted and needs to unlock the CALL library features for non-commercial free use. RT's website could be much better. More books are needed, especially for /View and IOS. Anyway, welcome to the list. ./Jason

 [6/12] from: kemp:extelligence at: 16-Jun-2002 10:59


Great questions, I've been wondering these myself. Here's a few more: 1. What's the execution model for Rebol? It seems to combine the best of my favorite HLL (Smalltalk) and LLL (FORTH), and I'm wondering if it's basically stack-based as in FORTH? Any docs on this? Any docs on in-memory structures, esp 'image ? 2. Is it purely interpreted, or runtime-compiled (Q1 above may answer this if FORTH is indeed the answer :) 3. To protect commercial applications, can Rebol scripts be precompiled or otherwise obfuscated? 4. Is there/could there be a 'Rebol Web Start' (I'm sure that true 'Rebols' would prefer 'Rebol NET Start' here!) to ease the initial deployment of web applications? 5. Any thoughts of Rebol's use in K-12 education? From language, ease of use, and deployment? Thanks, Kemp

 [7/12] from: rotenca:telvia:it at: 16-Jun-2002 20:03


Hi Brian
> 3) When I fire up REBOL it brings up the REBOL desktop. I assume the > desktop is a REBOL script, but is this script imbedded into the > executable itself?
Yes, like all the mezzanine code, the network handlers, bitmap images and so on.
> If so, what if you want to modify it?
All the stuff of desktop is in the block ctx-viewtop which becomes an objects when you first execute the function desktop. Here it is the source: desktop: func [][ if block? ctx-viewtop [ctx-viewtop: context ctx-viewtop] ctx-viewtop/init-desktop do-events ]
> Shouldn't > there just be some kind of default startup-script defined and the user > can make that whatever they want without burdening the executable with a > built-in script that they may not want to use anyways?
If you want to remove all the desktop code you can do: ctx-viewtop: none desktop: none You should gain a little more than 100 Kb, after the command recycle But the 118 words added by the desktop code to the global context cannot been recycled. --- Ciao Romano

 [8/12] from: joel:neely:fedex at: 16-Jun-2002 16:35


Hi, Kemp, Kemp Watson wrote:
> Great questions, I've been wondering these myself. > > Here's a few more: > > 1. What's the execution model for Rebol? It seems to combine the > best of my favorite HLL (Smalltalk) and LLL (FORTH), and I'm > wondering if it's basically stack-based as in FORTH? >
Simply think expressions. Forget stacks. They don't help you to understand REBOL behavior at all. (And I'm was an old FORTH hacker years ago...)
> Any docs on this? Any docs on in-memory structures, esp 'image ? >
No. Well-guarded secret, or something.
> 2. Is it purely interpreted, or runtime-compiled (Q1 above may > answer this if FORTH is indeed the answer :) >
Neither. When the interpreter LOADs REBOL source, it builds a structure that is essentially equivalent to what the source says. There's no assembly-like "byte code" or any such stuff. What you see is what it gets (conceptually). However, you can also write REBOL expressions that build up blocks and then cause their evaluation (as code) in much more interesting ways, since REBOL doesn't distinguish between "code" and "data". For example:
>> phrase: [print ["has" "letters"]]
== [print ["has" "letters"]]
>> foreach word ["my" "dog" "has" "fleas"] [
[ stuff: copy/deep phrase [ insert next second stuff length? word [ insert second stuff mold word [ do stuff [ ] "my" has 2 letters "dog" has 3 letters "has" has 3 letters "fleas" has 5 letters You can add print mold stuff at the end of the body of FOREACH if you want to see what got build, but the punch line is that conventional notions of translation don't apply (and are, in fact, harmful to learning to use REBOL). Hope that helps! -jn- -- ; Joel Neely joeldotneelyatfedexdotcom REBOL [] do [ do func [s] [ foreach [a b] s [prin b] ] sort/skip do function [s] [t] [ t: "" foreach [a b] s [repend t [b a]] t ] { | e s m!zauafBpcvekexEohthjJakwLrngohOqrlryRnsctdtiub} 2 ]

 [9/12] from: g:santilli:tiscalinet:it at: 17-Jun-2002 0:43


Hi Kemp, On Sunday, June 16, 2002, 4:59:55 PM, you wrote: KW> 1. What's the execution model for Rebol? It seems to combine the best of my KW> favorite HLL (Smalltalk) and LLL (FORTH), and I'm wondering if it's KW> basically stack-based as in FORTH? Any docs on this? Any docs on in-memory KW> structures, esp 'image ? Stack based AFAIK. No docs, but some of us have developed some models. :) KW> 2. Is it purely interpreted, or runtime-compiled (Q1 above may answer this KW> if FORTH is indeed the answer :) Interpreted. KW> 3. To protect commercial applications, can Rebol scripts be precompiled or KW> otherwise obfuscated? REBOL/Encap encapsulates your script with the interpreter. Regards, Gabriele. -- Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer Amigan -- AGI L'Aquila -- REB: http://web.tiscali.it/rebol/index.r

 [10/12] from: bgs::tas::gte::net at: 16-Jun-2002 18:33


Wow, great responses and lot of'em! Thanks, I appreciate it! Like everyone else here, between family and work I have limited free time available to learn new things and before I commit this precious time I wanted to be sure it was on something that was worthwhile and REBOL sure seems to fit that profile. Hopefully RT is healthy financially and will be around for sometime to continue to successfully promote/develop REBOL. I think that if REBOL can... - Stay small like it is. - Remain CONSISTENT and not become cluttered (e.g. remove the desktop script from the /View executable :-) - Improve the licensing (allow more commercial use), open up /Pro features for free also. - basically keep doing what they're doing! ...it has a very bright future ahead of it. If you're not bored of me yet I have a follow-up question: - I understand there is a REBOL 3.0 on the horizon and that it will be significantly different from the current version. Any information on 3.0 available yet? Thanks! Brian

 [11/12] from: greggirwin:mindspring at: 17-Jun-2002 10:18


Hi Brian, << - I understand there is a REBOL 3.0 on the horizon and that it will be significantly different from the current version. Any information on 3.0 available yet? >> There are always rumors of things to come. Some say async networking, some bugs are fixed in the current beta release (2.5.2) which will also apply to 3.0 of course, and there are a few new mezzanine functions. One of the big things that I think many people want to see is modules. I don't think anyone outside RT knows exactly how this will work, but it should make it easier to build large systems in pieces. Today you can use objects to create namespaces, but I bet Carl and the gang will make it even better with modules. --Gregg

 [12/12] from: greggirwin:mindspring at: 17-Jun-2002 10:21


Hi Kemp, << 4. Is there/could there be a 'Rebol Web Start' (I'm sure that true 'Rebols' would prefer 'Rebol NET Start' here!) to ease the initial deployment of web applications? >> I'm not sure what you're after exactly, but there are a few different deployment tools people have written. Some take all the scripts for your app, compress them, put them in a single file, and make that file a self-extracting REBOL script. As long as REBOL is installed on the machine, it does the rest. << 5. Any thoughts of Rebol's use in K-12 education? From language, ease of use, and deployment? >> I think it has great potential, like Logo, for that purpose. I think Carl mentioned that future licensing might have a special clause to allow REBOLs use for education. Not sure though. --Gregg

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted