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


From: rebol:techscribe at: 22-Jan-2001 23:46

Hi Mat, As the (main) co-author of RTOG, perhaps I should respond with a word or two? You wrote:
> <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 this , 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 professional 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, yes? 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.
> What > 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. Take Care, Elan