Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!mit-eddie!media-lab!simsong From: simsong@media-lab.MEDIA.MIT.EDU (Simson L. Garfinkel) Newsgroups: comp.sys.next Subject: 2.0: Initial Reactions Message-ID: <4490@media-lab.MEDIA.MIT.EDU> Date: 14 Dec 90 00:52:10 GMT Organization: MIT Media Lab, Cambridge, MA Lines: 120 Well, I've just go 2.0 up and running on two of my cubes. Here are some initial reactions: * 2.0 is *much* faster than 1.0a. One of the reasons for this is that a lot of attention has been paid to the layout of objects in memory. * Although 2.0 is binary compatiable with 1.0a, it is not source-code compatiable. You will need to change your applications in order to get it to recompile. * In particular, the Bitmap object nolonger exists. Instead, there is a new object called NXImage that does everything that Bitmap did and more --- it will load EPS or TIFF, load from files, &c. For example, it can automatically the bitmap from your file to the memory-space of the window manager, without having to send the bits through your app! But it is not as easy to use. * This seems to be the case with a lot of the new things. Much more powerful. Much less easy to use. Well, at least the book I'm writing about Programming the NeXT is going to have an audience. (Now all I need is a publisher!) * Stuart 2.0 doesn't work properly. It leaves turds at the bottom of each line on redisplay. This is odd, and kind of flies in the face of binary compatiability. Well, at least it works. * I'm still using Stuart 2.0, however, because the insert-line/delete-line functions in Terminal are a little broken. You probably won't notice the problem unless you use EMACS. If you use EMACS (most of the people at NeXT don't, by the way), you'll get screwed alot --- especially if you scroll one-line-up or one-line-down a lot. (I have lisp functions that do this, bound to ^Z and meta-control-Z). * Speaking about META, the people at NeXT who made Terminal work don't seem to understand that META-F is not the same as . The problem, again, is EMACS. If ALT-F transmits ESC-F instead of META-F (that is, an F with bit-8 set, or ASCII 0xb6), you can't use ALT-F to terminate an incremental search. Instead, the first ESC gets gobbled by the incremental search and it goes into regular-search (and who uses that?) That's just one example. * Lisp doesn't work. At all. You can't rebuild Lisp for some obscure /bin/ld problem. I've been able to run words that I dumped with (dumplisp file:), but I can't really run them because the throw to the TOP-LEVEL::MAIN-LOOP (not its real name but close) doesn't work anymore. Apparently, the top-level loop isn't there. * Icon is *gone*. I don't know how to make an icon now. Make a backup of your program before doing the upgrade. * The spinning cursor is a real pain, and there is no way to turn it off (that I can figure). * Sound Effects (a la Apple's Sonic Finder) would be nice. Or has that idea been patented too? (Has anybody seen the article I wrote with Richard about why software patents are bad?) More good things: * The objective-C +new has been superseeded with an +alloc function, which allows you to specify which Mach Zone to allocate the object in. You set up your application so that objects used in the same part of the program are allocated in the same zone. As a result, applications have to swap a lot less. * Interface builder has more options/classes/other stuff. And the ability to dynamically load in a class, which means that you don't have to build "custom IB" anymore. * Edit is now in Retained mode, not Buffered mode. As a result, it flashes, but it draws faster. Be nice if you could set this. You probably won't see the flashing on an 040. * Application debugger lets you look into a bundled application (kind of like ResEdit on the mac). * Process debugger lets you open a running process and mess with its mind, or at least look at it. * Much better sound demos. * If you print to a LaserWriter, the NeXT now puts the pages in the right order. Thank you! * several very impotant security holes have been plugged. * WriteNow blazes. And it finally seems to use DPS to do its kerning, so things really look the same way on the screen that they do on the printer. * gdb now works with Edit. (Oh joy!) ================ A question to the net: how many people use Emacs and how many use Edit? *don't post what you use, and please don't start a flame war!* Just send me e-mail and let me know. I have a suspicion that emacs is far more popular. ================ In other news, I've gotten my News reader to the same level of completion that Will Shipley's is. Oh, I've got posting almost working too, Rich Text and all! The idea that I like best about dealing with the Rich Text / non-rich-text problem was suggested by Will: do a writeRichText: and a writeText:. Post the normal text, a ^l, and then a uuencoded, compressed, binary diff of the two. The only problem is that, well, I've done testing, and the overhead of doing a uudecode, an uncompress, and a binary ed is just, well, too high. So I think that well just post both the rich text. It's not *that* unreadable. If you can't read RichText on your Sun, buy a NeXT. Or I'll give you a copy of my Rich Text spec, and *you* can implement all of the tools from scratch that come as part of the package on the NeXT platform. Hopefully I'll have something that can be FTP'ed by January.