Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!necntc!ames!aurora!labrea!decwrl!decvax!tektronix!reed!keith From: keith@reed.UUCP (Keith Packard) Newsgroups: comp.arch Subject: Re: Small is beautiful Message-ID: <7313@reed.UUCP> Date: Wed, 23-Sep-87 19:46:32 EDT Article-I.D.: reed.7313 Posted: Wed Sep 23 19:46:32 1987 Date-Received: Sat, 26-Sep-87 11:03:46 EDT References: <121@quick.COM> <3460005@hpsrla.HP.COM> Reply-To: keith@reed.UUCP (Keith Packard) Organization: Reed College, Portland OR Lines: 39 > No program over 10,000 lines long can ever be made to work (correctly). ... > I hereby don my asbestos suit and set my autodialer to 911 --- Actually, I would only agree with this statement about C. I'd rate maximum program size differently with different languages. Data hiding and run-time checks can substantially reduce the number of bugs caused by mysterious interactions. Object oriented programming often lets substantial portions of a program to be borrowed from an already working system (code sharing) which makes the actual amount of new code substantially smaller while still ending up with a giant system. Here's how I rate them: Forth: 1 line Basic: 10 lines Asm: 50 lines Fortran: 100 lines Pascal: 1000 lines (standard pascal w/o modules) lisp: 3000 lines C: 10000 lines Modern Pascal: 20000 lines (w/ modules and type bashing) C++: 20000 lines Modern Pascal and C++ trade problems -- C++ doesn't have run-time array bounds checking and some people have a tendancy to use pointers a bit wildly. Pascal, on the other hand, has poor support for initialization and no real code-sharing possibilities (as well as no object support). I know of no system useful in designs > 20000 lines. SmallTalk comes close, but most SmallTalk systems would run that amount of code at a snail's pace (if it could hold all of it in the object table anyway). I've worked on too many 100000-200000 line C programs... -- Keith Packard tektronix!reed!keith