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

[REBOL] Re: Rebol API to DyBASE

From: tim:johnsons-web at: 17-Dec-2003 8:01

* Konstantin Knizhnik <[knizhnik--garret--ru]> [031217 07:26]:
> > Rebol has awful implementation of hash tables. > First of all, it is very inconvenient that there are normal set/get > operations. You have to use something like this: > > h: find/tail hash key > either h [change h key value] [append append hash key value] > > instead of > > hash[key] = value
Grrr! I *hate* doing that, and in python I have to do it a lot! In rebol, I just do hash/que 'val key much nicer, it took me half a day to implement my own object, but it was well worth it.
> in most other high-level languages. > > And as far as Rebol hash is also series, appending element to it cause
Hmm! Are you not using to-hash ?
> a lot of reallocations, so complexity of insert operation seems to be > linear (instead of constant). And if we use "insert hash" instead of > "append hash" (not "insert tail hash"), then performance becomes > really awful - copying all series element increase complexity to > quadratic and insertion of 100000 integer elements in hash takes about > half an hour (less then second in all other languages).
I haven't run tests like that, but see my comment above.
> And as far as object cache is one of the main components of object > oriented database, such inefficient implementation of hash table leads > to poor performance of Rebol DyBASE API.
All language have their strengths and weaknesses, *and* their "best fits". Mysql is a best fit for rebol IMHO, rebol mysql access on our large, multi-language projects beats perl and python hands down both in access speed and in impelementation/coding. One of Rebol's strengths is TCP/IP is native (compiled into the binray) and the mysql-protocol exploits that splendidly. On the other hand, perhaps the native 'hash' of rebol is not is advanced as the btree approach that python uses. I do believe that a true hash datatype is a linked list, though. still, it is nice to see these tests and the work that you've done. regards tim
> C> regards > C> Cyphre > > C> ----- Original Message ----- > C> From: "Konstantin Knizhnik" <[knizhnik--garret--ru]> > C> To: <[rebol-list--rebol--com]> > C> Sent: Wednesday, December 17, 2003 12:15 PM > C> Subject: [REBOL] Rebol API to DyBASE > > >> > >> Hello all, > >> > >> First version of Rebol API to my object-oriented database DyBASE is > >> ready. It can be downloaded from my site: > >> http://www.garret.ru/~knizhnik/dybase.html > >> > >> DyBASE is embedded object oriented database for languages with dynamic > >> type checking. Rebol is fourth language for which DyBASE API is > >> provided. Data in database is stored in language independent format, > >> so (with some exceptions) data written by Python application can be > >> accessed by Rebol application (and visa versa). > >> > >> Please read Rebol section in DyBYSE manual to get more information of > >> about specific of Rebol interface to DyBASE. > >> > >> To use DyBASE at Windows in your Rebol application you need to include in > C> PATH > >> two libraries: DyBASE core dybasedll.dll (which is located in dybase\lib > >> directory) and Rebol wrapper - dybaseapi.dll (located in dybase\rebol > >> directory). At Unix you should first build these libraries. Use > >> makefile in dybase/src and dybase/rebol directories. > >> Then just load "dybase.r" module. > >> > >> Please look also at examples: > >> dybase/rebol/guess.r - game: "guess an animal" > >> dybase/rebol/testindex.r - test of indices > >> dybase/rebol/testlink.r - detail-order-supplier database > >> > >> All bug reports, change requests, suggestions are welcome. > >> > >> -- > >> Best regards, > >> Konstantin mailto:[knizhnik--garret--ru] > >> > >> -- > >> To unsubscribe from this list, just send an email to > >> [rebol-request--rebol--com] with unsubscribe as the subject. > >> > >> > >> > > -- > Best regards, > Konstantin mailto:[knizhnik--garret--ru] > > -- > To unsubscribe from this list, just send an email to > [rebol-request--rebol--com] with unsubscribe as the subject.
-- Tim Johnson <[tim--johnsons-web--com]> http://www.alaska-internet-solutions.com