Path: utzoo!mnetor!uunet!husc6!hao!gatech!mcnc!thorin!steele From: steele@thorin.cs.unc.edu (Oliver Steele) Newsgroups: comp.sys.mac Subject: Re: LightSpeed C gripes Message-ID: <696@thorin.cs.unc.edu> Date: 14 Jan 88 23:38:02 GMT References: <10928@duke.cs.duke.edu> Reply-To: steele@thorin.UUCP (Oliver Steele) Organization: University of North Carolina, Chapel Hill Lines: 144 Keywords: LightSpeed C no good, Mac 2, Gnu Chess gleicher@duke.cs.duke.edu (Michael Gleicher) writes: >I recently purchased LightSpeed C (2.11, upgraded to 2.15 from over the >net upgrades), and I must say it is one of the poorest products that I >have seen for a computer. Mr. Gleicher has posted a number of objections that I suspect a few people share. Since some don't matter, and there are work-arounds to some, I've posted rather than mailed my response. >1) The documentation is awful. There isn't a lot of documentation, but there wasn't anything I had trouble with even though I'd never seen anyone use the package before so I don't think there's too little. > In general, I have not seen a well documented > product on the Mac (I'm used to the PC world). Most of the time > it isn't too important as Mac programs are easy to use. Not so > with something as complex as a C development system. What's so complex about a C development system? I've had far more trouble with word processors on the Mac. Assuming you know C, of course, and that's not what the manual for a particular implementation of a language is supposed to teach you. > All the lightspeed manual does is say how great the compiler is, > how it is the ultimate environment, how much better it ill make > programmers. > The library reference is incomplete, and doesn't say little things > like which headers & libraries you must include. The boldface word in parentheses below the function name at the top of the page is the library. If there's an include file, it'll be listed as '#include ' before the function declaration. Aside from that, you're right. > >2) The editor sucks and you're stuck with it. > The editor is so bad it isn't worth mentioning. Little things > like a key to go to the end of a line, clear to end of line. You are stuck with it (in fact, that's one of the advantages of LSC as a development system). If you don't like the editor, you really would have been better off buying any other system except perhaps MPW. By the way, option-right-arrow goes to the end of a line, and if you really need keys to clear to EOL, try return;shift-down-arrow;clover-X. However, ... > When writing code, I need my hands for typing, not to do everything > with the mouse. So get QuicKeys or Tempo. This is a point where you don't work well with the Mac user interface, so you need something that fits between you and the user interface, not a set of criticisms about each application. > I thought that under Multi-Finder I'd have MicroEmacs 3.8m (a > good editor with the mac interface) or some other thing running > side-by-side. But this won't work because lightspeed keeps everything > in memory. Run LSC and uEmacs. Edit a file in Emacs, save it, click on its name in the Project window, and press clover-K. If a window pops open in LSC, go to the same place in your Emacs window and close the LSC one. This is still simpler than vi and make on a Sun, and easier to figure out than emacs on a unix machine. >3) The system is extremely limited by memory constraints. > If I wanted to be limited to small code/data segments I'd have > saved $3000 dollars and bought a 386 PC. But I want to be able to > run Big programs on my Mac 2. I don't want to see Code Segment > too large, although this is bearable considering the Mac loader. > What isn't acceptable is seeing "Data Segment too Big". This is a flaw, but it's really hard to write 32K of data. If you just need it for arrays, just malloc or NewPtr() them and your object file will be smaller too. Sure, the compiler should be able to do this for you, but this isn't the major difference between a II and a 386 PC. >4) The system doesn't really handle Multi-Finder. [You mean MF doesn't really handle the system :-] > Under multifinder, I keep getting "Out Of Memory" when I try to > compile programs (the program is about 2800 lines long in one > file). Big programs won't run either. If you have more than a megabyte of memory, give LSC a bigger minimum size. If you don't, most other large programs won't run either and you probably shouldn't be running MF. I don't, so I don't. >5) The system doesn't support the 68881 > No gripe here. I knew that I was getting this when I bought it. > >6) I'm not sure how robust the compiler is. > The compiler seems to choke on some simple syntax things. > for example: > unsigned Book[][50]; doesn't work > or > extern unsigned Book[][50]; > Book = (void *) malloc(...) gives a bizzare error Do you mean unsigned Book[50][]; ? What you've written isn't valid C, and should have given an error on the PC; if it didn't, that's a PC compiler incompability, not an LSC one. >7) The error messages are useless. > The compiler stops on the first error. It gives this obnoxious > box to click in. The messages aren't too useful. It doesn't show you > exactly where the error is. The messages are more useful than cc gets me on Suns/Vaxen, and cc just gives a line too. They're less specific than tcc, so they aren't all they could be. However, they're better than cascading error messages (I can usually only use the first error from compilers that give me several), and porting code is the one area where they're really obnoxious. And if you like the keyboard better, just press 'return' instead of clicking. >Admittedly, I don't know the alternatives. I'm used to working on the PC, >but comparing lightspeed to TurboC (turboC costs half as much), we're not >talking the same league in product quality. > >Also, what I've been trying to do is to take a UNIX/MSDOS program >(GnuChess) and get it to run on the Macintosh. This is probably not >what lightspeed was meant for. It's probably a lot easier if you have the 2.15 stdio library. Earlier ones gave me a lot of problems with things like sscanf(stdin,...); I'm not sure how much better this has gotten. >But GnuChess should be easy compared to the next on I want to try. > >I don't at all regret making the jump into the 20th century and buying a >Mac ][. I do regret wasting the $95 bucks on LightSpeed C. > >Michael Lee Gleicher (-: If it looks like I'm wandering > Duke University (-: around like I'm lost . . . >E-Mail: gleicher@cs.duke.edu)(or uucp (-: >Or P.O.B. 5899 D.S., Durham, NC 27706 (-: It's because I am! ------------------------------------------------------------------------------ Oliver Steele ...!{decvax,ihnp4}!mcnc!unc!steele UNC-CH LING Senior steele@cs.unc.edu Life is a negative-sum game.