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

[REBOL] Re: Enabling the REBOL community

From: joel:neely:fedex at: 9-May-2001 14:21

Hi, Volker, Volker Nitsch wrote:
> Well, iam a rebol-recycler... > I can't remember a script which i havent changed a bit to fit my > needs. > So »download and use« would not work in my case. > > On the other hand, iam a dirty programmer in rebol, > more experimenting than planning. >
Sure, I understand. But to me, that's the difference between doing R&D and production-ready software engineering (and I do both). When I'm in R&D mode, I fiddle and tweak and stick in debug stuff to see what's going on (or to see what's NOT going on ;-). In that mode, there's certainly a role for cut-and-paste. However, once a unit of code is working (as far as I can tell at that point) I want to be able to re-use it as a black box, with no cut/paste effort and without messing with its innards. Finally, when using it in mode two above, if I do find something that needs fixing/improving/enhancing, I want to be able to do so with neither breakage of existing usages nor the need to remember where I used it and re-cut-and-paste to propagate the changes. (Note that I can't simply use grep to do that remembering for me, as I have code in multiple directores on multiple boxes.) Not to belabor the point, but I'm perfectly happy for cut/paste to exist for some purposes (and do it sometimes myself) but I consider it totally inadequate as a basis for large-scale software engineering involving multiple boxes, platforms, projects, people, and contributors. The last time I had work done on my house, the carpenter went to a lumber store (a known "place") and bought some standard, off-the-shelf parts with known characteristics and installed them. He did have to trim a couple of pieces of molding that fit around the door, and that's OK. However, I would have been VERY annoyed if he had chopped down a tree, rip-sawed it, planed it into boards, build a gluing jig, dug up some sand, melted it into glass, and assembled all of that into a hand-built door. Those can be bought from the store and used as delivered.
> I accept your system, but for me that is java: >
Let me suggest instead that my model here is Smalltalk; there's one OrderedCollection class, used throughout the system. If you need a variant of it, you subclass it and use that subclass. If you need to modify it (e.g., you discovered a way to speed up an internal hashing function, or some other such improvement), you modify the one copy and all usages of it from that point forward get the benefit of the improvement. What one DOESN'T do is keep cloning the system image to make different versions with slightly different variations on OrderedCollection, with all the overhead (storage-wise and mental-wise) that would be required,.
> It works -hm- if you are very experienced with designing > and spend some time in it. >
IMHO the best way to get experience in design is to have to do so. Reminds me of the an old saying, Good judgment comes from experience; experience comes from bad judgement!
> Its not so usable with reusing ad-hoc-scripts. >
Well, if you talk to almost anyone in the Smalltalk user community, I suspect they'd tell you that Smalltalk is very good BOTH for ad-hod R&D and for production development. I know that the Perl community would make the same assertion for Their Favorite Langage. I don't want to forbid anyone the right to experiment, play, and cut-and-paste. I just don't want to be told that I'm required to do so. I strongly feel that advancing beyond that level will help foster the wider use of REBOL. Thanks for the stimulating discussion! -jn-