[REBOL] Re: REBOL Books
From: rebol:techscribe at: 22-Jan-2001 23:46
As the (main) co-author of RTOG, perhaps I should respond with a word or
> <shrug> I wasn't writing a critique. I was writing a recommendation on
> what books I think he should buy in order to best learn Rebol.
I take it that you mean to make a distinction between a critique, and
offering your advice. I don't see why this distinction would have any
relevance regarding the statements you make about my book.
> it says Rebol the Official Guide on the
> cover. It doesn't say Rebol and Distributed Databases. I guess that's
> what annoyed me.
The chapters dealing with the construction of a distributed database are
an example for REBOL in action within the context of relatively large,
complex and complete application. After we cover the basics of REBOL
programming, parsing, debugging, objects, contexts, CGI programming,
ports, catching exceptions, making custom errors, and other features, we
exercise REBOL's features and demonstrate REBOL's scalability by
implementing a traditional application - a dbms.
These chapters provide a wealth of code snippets that showcase how REBOL
can be used in the real world. DBMSs are traditionally one of the three
most widely used classical applications, the other two being
spreadsheets and wordprocessors. The console based REBOL interpreter
does not allow us to implement a wordprocessor. In the tradition of
Turbo Pascal that shipped with an example spreadsheet program, we chose
to demonstrate REBOL programming using the third of the three classical
mainstream applications. Don't read these chapters as - aha, so this is
how you implement a dbms in REBOL. That's not what these chapters are
about. Read these chapters as - aha, "thats" how you can accomplish
, and "this" is what you have to watch out for when you do "that".
(See for instance work-arounds for storing paths in words, and using
paths in objects, converting between paths and blocks (at the time REBOL
did not yet support path to block conversion, for instance), stepping
through objects, serializing objects, navigating through multi-level
objects without knowing their structure, and more.
> It has skimpy documentation of network protocols,
I beg to differ. The network protocols are based on ports, and
a) ports are discussed in some length,
b) the book shows you how to explore the port-based network protocols
implementation, and how to add your own protocols. That's pretty cool!
> pretty much no reference section at all which as an 'Official Guide' I
> would have thought mandatory. I bought this before that User Guide PDF
> became available.
> IE when I wanted to know about X in Rebol, I flipped to the index and
> tried to look it up and more often than not it wasn't there at all.
I'm very disappointed with the index. We had negotiated with Osborne to
provide the index, and later found out that they had hired a
indexer instead. I didn't even get to see the index
before the book shipped, even though I requested that I get a chance to
edit it, before it is included in the book. I take this criticism (even
though you do not mean it as a critique) very serious.
> The official guide is for the advanced? Now it's my turn to
> respectfully differ.
> Chapter 1. The Rebol Programming language (because you didn't know
> before you bought the book apparently)
Thank you. You are very smart! This is part of advice, not of critique,
I called this chapter "The REBOL Programming Language" to announce that
- unlike the other chapters - this chapter does not deal with some
specific aspect of REBOL, but instead provide an overview of the
language as a whole. This chapter conversationally covers differet
aspects of the complete language. This is the chapter you turn to if you
are a seasoned programmer, you're not quite sure if REBOL is for you,
and you want to get a feel for the language. What are the goals of this
language? Which language features does this language support? What can
you do with the language? How does the language feel?
> Chapter 2. Installing Rebol (yes it's that hard)
Perhaps not for you.
> Chapter 3. Taking the First Steps (which includes such classics such
> as 'Loading Rebol under Windows' and 'Using Print')
> Chapter 4. Rebol Basics (etc et etc)
> It reads like a highschool guide to BASIC (along with how to complete
> your first project) quite frankly.
REBOL has often been hailed as a user-friendly language. I believe that
- besides being a fine tool for any gracefully aged (or ageing)
programmer - REBOL, because it really is a user-friendly language, could
empower people who have never dreamed of programming, people who are
barely computer literate, to make more creative use of their computers,
and take control of what their computer can do for them, instead of
relying on Bill Gates and his merry gang to provide them with yet
another point-and-click off-the-shelf feature that almost - but never
quite - does what they need it to do, provided they add another 256MB of
RAM, another 10Gigs, and another 500 MHz to their system. Believe it or
not, after watching a few real, live people who fall in this category
give up as soon as they had to unzip the REBOL distribution, I decided
that we'd have to guide these people through that process, if they were
ever to advance to the point of finding out just how easy it is to make
REBOL do some useful tricks.
> Granted the entire sections on
> handling data are good, well that's basically the bulk of the book.
Data handling is at the heart of REBOL.
> Now in *my* opinion there's no way you'd use Rebol for coding a
> database anyhow - it's just not suitable for that sort of thing.
Now is *that* so? I guess that's "*my* opinion", is it? Did you EARN the
starts you use to point at yourself?
I think REBOL is an excellent basis for a multivalue distributed dbms,
for small or medium requirements. The dbms we implemented in the book is
not quite up to par, because it was written to showcase REBOL coding
techniques, and it is not optimized for dbms transactions, nor does it
include any "defensive" error detection, trapping, and handling, because
they would have distracted the reader from the essential algorithms.
(Try, catch and throw are discussed in a different chapter). But -
considering today's PC computing power - a REBOL based dbms could easily
perform as well as a dbms written in a compiled language for a 4.77 MHz
8088 IBM PC. And guess what, the 4.77 MHz 8088 IBM PCs did some very
useful things in their time.
> it *is* good for is advanced data mining of the Web and utility
> scripting etc especially the native net support. That's not catered
> for very well here at all.
Well, chapters 12 and 22 should have come in handy. They discuss parsing
in some length and some detail.
> IE it doesn't even tell you how to delete a mail from a pop3 box
> except to say that you need to use low-level port functions to do it.
> It's not a bad book at all, it just wont suffice as an only book.
<shrug> It depends on your needs. If it's only going to be one book,
then I'd say it's a pretty good choice. But, in all fairness, as its
author, I may be a little biased.