Path: utzoo!mnetor!uunet!lll-winken!lll-lcc!pyramid!prls!mips!hansen From: hansen@mips.COM (Craig Hansen) Newsgroups: comp.lang.misc Subject: Re: Perfect language features: how many languages? Message-ID: <1496@mips.mips.COM> Date: 4 Feb 88 20:04:32 GMT References: <3928@ames.arpa> <2400001@otter.HP.COM> <960@ssc-bee.ssc-vax.UUCP> <1535@uoregon.UUCP> Lines: 34 Summary: yet another useless analogy In article <1535@uoregon.UUCP>, markv@uoregon.UUCP (Mark VandeWettering) writes: > Now, back to Chris' analogy, one that I have used is "Ya don't use a > screwdriver to pound nails". Some languages are better for symbolic > processing, others are better for operating systems. The type of > problems you face dictate the tools you use to solve them. Another expression relevant to language design, is one I heard from Brian Reid: "When all you have is a hammer, everything looks like a nail." Which is to say that it is also the case that the tools that you have dictate the problems you work on and the way you try to solve them. There is a basic problem in language design: a single language that is good for all purposes will be very complex. A language designer, working alone will be unable to design such a language, and it isn't at all clear that a committee of language designers would bring any more effective intellect on the problem. On the other hand, a little language, that solves problems well in a limited problem domain, is within easy reach of an individual language designer. Now a little language, by itself, only works in a limited problem domain, and trying to pound nails with a screwdriver is a waste of effort. UNIX works well because it encourages many small tools and languages to be used together, using pipes and shell scripts as the glue between the little pieces. I think it also helps greatly that UNIX includes effective tools for developing little languages themselves: particularly awk, yacc, cpp. (Personally, I find lex to be utterly worthless, but it's a matter of taste.) [Use The Force: Don't let the Death Star take our UNIX away.] -- Craig Hansen Manager, Architecture Development MIPS Computer Systems, Inc. ...{ames,decwrl,prls}!mips!hansen or hansen@mips.com 408-991-0234