Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!samsung!noose.ecn.purdue.edu!dirac!gibbs.physics.purdue.edu!sho From: sho@gibbs.physics.purdue.edu (Sho Kuwamoto) Newsgroups: comp.sys.mac.programmer Subject: Re: what I want to see in future Apple computers Message-ID: <5294@dirac.physics.purdue.edu> Date: 17 Jun 91 16:58:06 GMT References: <5282@dirac.physics.purdue.edu> <1991Jun17.145312.20601@ux1.cso.uiuc.edu> Sender: news@dirac.physics.purdue.edu Organization: Purdue Univ. Physics Dept, W.Lafayette, IN Lines: 137 In article dorner@pequod.cso.uiuc.edu (Steve Dorner) writes: >In article sho@gibbs.physics.purdue.edu (Sho Kuwamoto) writes: >> >>I want a new toolbox >>written for a real object oriented language. Instead of installing a >>wdef proc, we should be able to subclass the window class and override >>the draw method. > > [try NeXT] Can you really do the above (subclassing the window class and overriding the draw method to change the shape and look of a window) on the NeXT? It's a minor point, but I think it says something about the desgin philosophy of the library. A couple people have sent me email telling me that what I'm describing is a NeXT. I think it's a neat machine. However, I'm afraid that buying a NeXT would not make me disgustingly happy either. A little happier, maybe.... What I'm getting at is that the NeXT machine is *not* the kind of machine that will make us drool in four years. None of today's machines are. I'm hoping that in four years, even the lowly mac will be able to do some tricks that today's NeXTs can't do. I also expect that tomorrow's NeXTs will be improved as well. If my description sounded like a NeXT (and upon rereading, it kind of does) it's only because I lacked the imagination and typing stamina to paint a better picture. It means that I'd love to have a NeXT now, but I really want something even better. Language: I'd like to see the toolbox tailored around a nice high-level object oriented langauge. By high-level I mean this: C is low-level. Smalltalk is (from what I've heard) high-level. C++ is medium-level. No matter how many times we call C++ methods messages, they just aren't messages. They're functions which have been cleverly disguised. That's why these class libraries feel to me as if they were shell applications written in an object oriented style. It seems to me that I should be able to write code that said, "If this error condition is true, send all incoming messages except clear() to this other object." What I really want is a real object oriented library written for this fictional language. All method calls would be resolved at runtime, and all data would be hidden. This would allow you to do things like run ResEditII, replace an object with a replacement, and run the program without recompiling. We would be able to swap code like this since the behavior an object would be defined strictly by the behavior of its methods. The toolbox would be a set of these objects in ROM. The NeXT uses an object oriented library, but I've never had the pleasure of writing for it. However, knowing what little I know about Objective C, I feel that it won't be as flexible and elegant as what I'm envisioning in my head. Remember what I said (in my original article) about an object oriented language in which sending messages to other applications was easy as sending messages to objects in your own program? Well, that comes from some place in the back of my head which tells me that the programming environment should be integrated with the system in such a cool way that I couldn't possibly think of it no matter how much fish I'd eaten. Interface: The NeXT machine seems evolutionary to me instead of revolutionary. I see it as a sleeker version of the mac. It's faster, it has a neater class library, it runs on top of UN*X. Somehow, this is not the vision that I have for the next generation of Macs. If I wanted a sleeker mac, I could buy a NeXT, I could buy a Sparc with OpenLook (except for the fact that I hate OpenLook), I could buy an SGI machine, I could do a lot of things. When I say, "rewrite the Toolbox" I mean rewrite it from the metaphor on up, not "get rid of the bugs and make it nicer." I don't remember exact dates, but the first Apples were coming out around 1974. The first IBMs came out in the early '80s. As much as we like to poke fun at IBM, I think it's fair to say that the IBM was an improvement over the Apple IIs. The macs came out around 1984. These were the first low-price machines with windows. And it's not just the windows. The mac seemed to have a fundamentally different philosophy than the IBMs or the Apple IIs. I think this is lost on many people. Look at Microsoft Windows. Some of the things are done right, some other things are just ridiculous. For that matter, look at some of the window managers and widget sets for X windows. OpenLook is proof positive that Sun doesn't have anyone in their art department. Either that or they are kept incommunicado from their user interface group. I like the NeXT's 3Dish interface. Besides looking nice, it makes the objects which you manipulate with the pointer stand out from the rest of the screen. In OpenLook, random things are given 3D shadows. When you make a menu selection, an ovalish depression follows your mouse down the menu indicating which item is currently selected. The reason I bring all this up is that we have systems now which have user interfaces built by copying things from other systems for all the wrong reasons. Before this tirade, I was talking about how IBM was like a better Apple II. In my view, the NeXT is a better Mac. Before you tell me that I'm being blasphemous, remember how much difference there was between an Apple II and an IBM. The Apple II had grown to become a bunch of anachronisms from the days when 4K was a lot of memory and hard disks were legendary devices known as "Winchesters." To find out what was on your disk, you typed CATALOG. There were no directories, no nothing. If you wanted a professional OS for the Apple II, you bought a CP/M card. If you wanted upper and lower case or 80 columns, you bought another card. All real programming was done in assembly. The one program I remember as having been written in a high-level language was Wizardry, which was written in Pascal. Of course, there are things the Mac does *better* than the NeXT, but that doesn't really affect my argument. I think it's about time that someone shook up the house a little. I'm not at all sure that Apple is the company to do it, either. Maybe NeXT will provide us with the user interface for the 90s. Hell, maybe it'll be Xerox or SRI. My long term wish for the future of the mac is an ineffable vision of things being done "the right way." I don't know exactly what I mean, but I have some faint notions. We want to look at the mouse and decide if we want to keep that. Then, we want to look at windows and decide if we want to keep them. We go on down this list until we know what we like. We look at hundreds of programs and try to pick out the good from the bad. We try to find new ideas which would make the interface better. We wrap this all up in a beautiful programming environment and top it with a creamy cheese sauce. -Sho -- sho@physics.purdue.edu