Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!rutgers!orstcs!ruffwork From: ruffwork@orstcs.CS.ORST.EDU (Ritchey Ruff) Newsgroups: comp.lang.misc Subject: Re: software ICs vs. libraries Message-ID: <700@orstcs.CS.ORST.EDU> Date: Fri, 23-Oct-87 09:25:52 EST Article-I.D.: orstcs.700 Posted: Fri Oct 23 09:25:52 1987 Date-Received: Sun, 25-Oct-87 15:37:19 EST References: <3405@ece-csc.UUCP> <638@its63b.ed.ac.uk> Reply-To: ruffwork@orstcs.CS.ORST.EDU.UUCP (Ritchey Ruff) Organization: Oregon State University - CS - Corvallis, Oregon Lines: 52 In article <244@gethen.UUCP> farren@gethen.UUCP (Michael J. Farren) writes: >In article <3349@uw-june.UUCP> bnfb@uw-june.UUCP (Bjorn Freeman-Benson) writes: >>A "software-IC" would seem to be a more thoroughly thought out, better >>designed, unit of software that could be used for multiple purposes. > > You have said that the Macintosh Toolbox routines aren't what you >are talking about, and it seems to me that they, as well as the similar >libraries available on most complex machines today... >...If the routines are going >to be flexible enough to be used for different purposes, they are also >going to be complex enough to be difficult to use correctly for any of >them. If they are simple enough to be used correctly by "the masses", as >you put it, then it seems to me that they will also be much less flex- >ible. How do you propose to solve this dilemma? Examples, please. You asked for it! I have used both the Macintosh Toolbox routines to work with windows and the Interlisp-D windowing system. Both will do almost exactly the same types of things, but I can write a program to do windowing in Interlisp-D about 10 times faster! The keys here are - (1) Graceful defaults - if I don't want to anything nonstandard then all I do is make a simple call or two and there it is. Scroll bars, selection, shrinking to an icon, everything. (2) Message-base paradigm - when I do want to do something nonstandard I attach a function to the property on a window. Lets say I want the mouse pointer to change when it enters window A, I just putprop a routine to do that on the "enter-window" property of window A and now every time the mouse cursor enters window A that function is called and the cursor changes. All there is to it!!! Example - I like the "zoom" feature for windows (moving quickly between the last two window sizes). I wrote one for my mac (after I was an experienced mac-hack) and it took me about 2 days. I wrote one as a first windowing program for Interlisp-D and it took about 3 hour. The mac one is buggy and the Interlisp-D one has not been touched after that 3 hours work. I'm ramblin' on so will wrap it up saying "what you want is not JUST a powerful interface, but a WELL THOUGHT OUT powerful interface. This does not mean one that does everything you want: it means one that does everything you want with the LEAST amount of programming effort." (That's the hard part.) --ritchey ruff ruffwork@cs.orst.edu { hp-pcd | tektronix }!orstcs!ruffwork It's against my programming to impersonate a diety! -- C3PO