[REBOL] Re: even further ... Re: Introducing REBOL/Base - FAQ
From: greggirwin:mindspring at: 29-Sep-2002 12:28
I'm not scared of DLL Hell, I'm *terrified* of it. :)
<< Carl, I would like to know your opinion on that, as that is the future
of Rebol as I can see it. We can't refuse to support new technologies
forever, just because it would add some space to our rebol.exe ;-)
What do others think about it? >>
I think there are a number of issues that RT has to wrestle with regarding
this topic. I certainly believe in the value of libraries (i.e. precompiled
components) but one of the best things about REBOL is the ability to
distribute a single EXE with no other dependencies.
DLLs and shared components can be both a blessing and a curse. In a
controlled environment, where you have a team building a large system, using
libraries is enormously beneficial, IMO. OTOH, I can't tell you how much
time I, and people I know, have wasted on DLL/OCX compatibility issues. It's
kind of like the arguments for, and against, open source in some ways. If
you write software that has to work across multiple versions of
components/OSs, just checking what's there becomes a big task in itself.
QuickBASIC/BasicPDS supported a thing called a "Quick Library" (.QLB). It
was a compiled set of procedures that was like a static LIB, but had some
extra info so it could be loaded into the QBX (their name for the IDE) where
you could see all the routine names, etc. just as if they were included as
source. You couldn't see the source for them because they were compiled. The
compiler would create a LIB file at the same time as the QLB, so you could
compile your app for deployment as a standalone EXE.
Unfortunately, there's a whole range of desires and requirements that change
along with the size and intended use of a product (read project). How do you
keep things simple for the guy who wants to write shareware games but also
allow the government, NASA, big commercial software vendors, etc. to
construct large, complex systems that are life and mission critical? Can it
run on everything from a PDA to a clustered supercomputer? Will it still be
portable? What are the features that are most important?
I'm digressing a bit :), but I guess my thinking is that we all have a
different set of needs and desires. Can it still be simple, support all of
them, and still retain all the attributes that make it special today? I
think Carl and RT probably have a lot of things mapped out about how this
all fits into their vision, and maybe some stuff doesn't. I believe they
know how important it is to balance the development and deployment aspects,
based on how REBOL works today.
What I hope for is a compact kernel, like today, that you can easily build
upon to incorporate the feature set you need in a consistent manner. I think
that's how they build Core, View, Command, IOS/Serve, and IOS/Link today.
Having an option to release, or even just use, precompiled libraries is not
much different than LOADing and DOing external scripts today.
What I hope doesn't happen is for REBOL to become like some other languages
that are really only good for programmers because it just requires too much
effort to set them up, use them, and learn about how things work.