From: Peter <[EMAIL PROTECTED]>
Date: Sat, 09 Jun 2001 13:08:21 +1000
- There is the window within window concept. StarOffice and Microsoft
Works both open a window containing multiple windows. I do not like
those instances of windows within windows because they group unrelated
applications and documents together. I would rather have Word files in a
group with RTF documents but not mixed with spread sheets or database
files.
I personally detest this interface. It pretty much means that I can't
do anything else while I'm using whatever application insists on doing
this. Fortunately, multiple desktops can make this bearable, but it
makes cut & paste between different applications very unpleasant.
Something I liked, back in the days when I was learning to tie
shoelaces and program in Assembler (which is the easier of the
two), OS/360 had what is effectively read only memory for
applications. I know 98% of programmers, including most of IBM's,
did not understand the concept, but it meant you could load an
entire application in to memory, or just the frequently used bits,
without executing the program, or using any variables, then
reference the code from other tasks, The other tasks would then be
extremely small and totally independent, as each would open it's
own read/write memory for variables but have almost no code.
Writing a well formed program was actually easier than writing the
code typically sold by the big software companies. A 100,000 people
could use well formed code at the same time and not have a single
collision. I do not understand why companies like Netscape work so
hard to make one instance crash other or why Jasc have one instance
update other.
This sounds a lot like how shared libraries (and indeed, shared text
in general) work, but it's not enough to solve the problem. If you
run multiple copies of an application (on most UNIX-like operating
systems, and even Windows is probably smart enough these days), there
will be only one copy of read-only memory, and read-write data will be
copied on write. That's strictly an efficiency issue, though; it
doesn't change the programming model.
Netscape actually runs only one instance, with multiple windows (and
multiple threads sharing one address space). You'll note that if you
try to start a second Netscape from the command line with one running
you'll get a warning that it won't be able to use your history,
certificates, or anything else. This is because Netscape isn't able
to arbitrate between multiple instances modifying the same file
concurrently (or even accessing it where one instance might change
something). Multi-threaded programming is considerably more difficult
than single threaded programming, and I guess Netscape decided to only
go so far (make the application MT, but not arbitrate between multiple
instances). The problem with MT programming, of course, is that if
you get the synchronization wrong things blow up in your face, usually
in very hard to debug ways.
--
Robert Krawitz <[EMAIL PROTECTED]> http://www.tiac.net/users/rlk/
Tall Clubs International -- http://www.tall.org/ or 1-888-IM-TALL-2
Member of the League for Programming Freedom -- mail [EMAIL PROTECTED]
Project lead for Gimp Print/stp -- http://gimp-print.sourceforge.net
"Linux doesn't dictate how I work, I dictate how Linux works."
--Eric Crampton
_______________________________________________
Gimp-developer mailing list
[EMAIL PROTECTED]
http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-developer