Praetorian said:
Can somebody tell me just *why* there must be an
insidious installation of countless entries in the registry
data and elsewhere; some with multiple adjunct files
necessary for full operation?
Just want to add my 2 cents worth;
When MS released the spec for Windows 95, the first Windows with a real
registry, they specified that any program that wanted to be Windows 95
certified needed to have an uninstall program. This program needed to be
accessable from Add/Remove programs in the Control Panel. The only way I
know of to get an entry there is via the registry. Earlier versions of
Windows had no real registry, so application specific information was
stored in *.ini files. these files were often left behind when people
tried to get rid of the application. MS decided to get rid of the *.ini
files and use a central database called the registry. The registry is
nothing to be afraid of, the problem with it is that most programmers do
not take into account the registry entries a program itself creates and
have the uninstaller remove these upon uninstallation. It's basically
just a lack of forsight on the part of the programmer but it's bad
practice IMO nevertheless. I try to have the installer create all of the
registry entries my program needs, that way the uninstaller will always
remove them.
Why can't most programs be a single executable that
is standalone, requiring no adjunct files and no entries
anywhere on the computer?
Many programming languages require runtime files. Let's look at VB for
instance. It's an easy language to learn and therefore a lot of
freewares are created with this compiler. Every VB executable requires
the runtime files. Beyond that, if I want to add a feature not included
in the runtime files, like say a tabbed interface, I need to include and
register another file for installation. If I were really smart and could
spend countless hours programming in assembler, this wouldn't
necessarily be the case. But for many application I write, I can save
countless hours by using a language such as VB or VC++, and use other
already available tools by simply including the tools as files. There is
no way, for the most part, to include these pre-compiled tools in any
other form.
If somebody is going to try explaining many programs
use the very same .DLL and other adjunct files (so why
duplicate the efforts) .. then they are not living in the
modern world. The typical hard drive coming on a
computer today might be 80-120 megs .. and greater.
Who cares what the size or number of files? Most of
the garbage generated by Microsoft's registry system
accounts for the greatest waste of space.
If the .DLL is included with the OS then there isn't a problem, but if
it is not, there is no way for the developer to know if it is, or is not
already installed on your system. If it is then why install it again. I
get your point about drive sizes and such, but may people feel the exact
opposite, and feel very personal about any extra bytes being install on
their system. Besides, when the current Windows API structure was
designed, a 2GB hard drive was huge. The first Windows 95 saw only FAT16
partitions. Not sharing .DLL's would have resulted in a very large
amount of drive waste.
Remember peoples concerns regarding cluster size and wasted space with
Windows 95 and FAT16?
I often distribute my programs with and without the runtime files. It
provides smaller downloads for those that know they already have the
right files installed, but it does not registr another share so you
could break a program provided as such if you uninstall the last app
registered to share those files, they will then be ininstalled with the
app.
Is there a genuine, thoughtful commentary on why?
The best explanation for all of this is that, this is the way Windows is
designed, largely to make the platform easier to develop for. Unless the
developer goes to great lengths to avoid using the easy tools provided
and create a stand-alone all-in-one program, you will get this sort of
thing. I personally have a great deal of respect for those people who
can create such a program, they have reached the holy grail of
applications development.
HK