Path: utzoo!attcan!uunet!lts!amanda From: amanda@lts.UUCP (Amanda Walker) Newsgroups: comp.protocols.appletalk Subject: Re: Macintosh TCP/IP, what is there? Summary: Familiar isn't always best Message-ID: <725@lts.UUCP> Date: 22 Nov 88 02:14:32 GMT References: <3fc47e41.129dc@blue.engin.umich.edu> <3fcd4c3b.1285f@maize.engin.umich.edu> Organization: InterCon Corporation, Reston, VA Lines: 67 In article <3fcd4c3b.1285f@maize.engin.umich.edu>, falken@caen.engin.umich.edu (David R Falkenburg) writes: > Ever wonder why not everyone understands/programs things which rely on > big parameter blocks, etc. on the Mac? They look big and scary. Seriously. They aren't The Unix (or whatever) Way, and so, like any other aspect of programming the Mac, you can't sit down and immediately start writing code by pretending it's another machine with the routine names spelled differently. For networking in particular, and an event-driven, asynchronous I/O system in general, I find Mac parameter blocks actually *easier* to use. They're certainly better than sockets, and I come from a heavy Unix background to boot... Ever try to teach someone to use sockets without giving them gobs of sample code and hoping they don't want to use OOB data or SIGIO? > Berkely Sockets are the ACCEPTED way of programming for networking > applications with as little pain as possible. Well, that's debateable. Let's say they are the COMMON way, under UNIX. Look, I'm glad the friendly folks at Berkeley did the 4.2 & 4.3 network code. Yeah, it's a little grody, but, by and large, it works. More importantly, it has been widely distributed to serve as a testbed and basis for further development. But just because it has done a good job at this doesn't mean it's The One True Way to do networking, especially on a machine that provides a different suite of basic services. The Mac is not a UNIX box (A/UX aside, and if you're running it, you get sockets...). The Mac doesn't have the cheap multitasking of UNIX, and UNIX doesn't have the cheap asynchronous I/O of the Mac. This difference, among others, is why how networking is done differently. > Ever HAVE to write a useful ioCompletion routine or DDP SOcket Listener? Sure. So? Most competent Macintosh programmers could do it with a little work. And most competent Unix programmers can write basic code using sockets after a little work. All this shows is that the programming environment is consistent on each side. This isn't a bad thing. > Apple's alternative would be to provide "high-level" calls which are similar > in nature to BSD sockets, but aren't... People want a high level interface > for networking, otherwise they won't program for it. Grin. Methinks you mean "I want a high level interface for networking, otherwise I won't program for it." Sure, there's a place for a socket library on the Mac, just as there is a place for a stdio library. But remember that MacTCP is aimed only at OEMs and research projects. It wasn't designed so that Joe Unix User can sit down and port sendmail to it. Personally, I don't think this is a big problem. If you really want sockets, you can use sockets. The CITI TCP/IP drivers are even free for the FTPing. If you want something to incorporate into a Macintosh PRODUCT, however, it's not the way to go, with all due respect to CITI. Answer me this: how much Unix software is out there that would be useful to have ported to the Mac, and where using sockets would be simpler and give better performance than doing things Macintosh style? Making the mac look like UNIX doesn't count--that's what A/UX is for, and good at :-). -- Amanda Walker ...!uunet!lts!amanda / lts!amanda@uunet.uu.net InterCon, 11732 Bowman Green Drive, Reston, VA 22090 -- "The best way to predict the future is to invent it." -- N. Negroponte