Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!wuarchive!emory!gatech!purdue!haven!ni.umd.edu!uc780.umd.edu!cs450a03 From: cs450a03@uc780.umd.edu Newsgroups: comp.lang.misc Subject: RE: Dynamic typing (part 3) Message-ID: <12APR91.08192346@uc780.umd.edu> Date: 12 Apr 91 08:19:23 GMT References: <1707@optima.cs.arizona.edu> <1991Apr11.053440.13401@comp.vuw.ac.nz> <11APR91.08052192@uc780.umd.edu> <1991Apr12.015814.28888@comp.vuw.ac.nz> Sender: usenet@ni.umd.edu (USENET News System) Organization: The University of Maryland University College Lines: 54 Brian Boutel > Me >| >| My experience is that I can develop a program about 6 times as fast >| in a dynamically typed language ... [and more anecdotal stuff] >You might be familiar with Fred Brookes' book "The Mythical Man Month". >In this he says > Productivity seems constant in terms of elementary > statements,... Programming productivity may be increased by > as much as five times when a suitable high-level language is > used >So APL would be expected to lead to greater productivity than C >because APL programs are shorter than C programs. And this is not do >do with the absence of declarations. Anyway, static typing does not >imply a requirement to declare everything. (1) Since when are declarations not elementary statements? (2) While static typing does not require that you declare everything, it does require declarations. (3) Static typing tends to make expensive the kind of generalization that I've seen in high-level languages. >Besides, my concern is with reliability, safety, not how fast you can >hack something together. Let's talk about the software engineering >aspects of this topic. >| Incidentally, I'd have to say C takes the cake as having the WORST >| run-time-error behavior of any language I've seen (besides machine >| language/assembly language). Please don't confuse the sort of >| things C does with its "dynamic types" with the sort of things that >| happen in a "true" dynamically typed language. >Did I even mention C? Wow, that was a fun talk about the software engineering aspects of this topic ;-) (And I left out FORTH again .. oops) But no, you (Brian Boutel) didn't mention C. (Or any other language.) A number of other people did though. Just for fun, the software engineering aspects of this topic: (1) runtime vs purely static type checking (2) local declarations (e.g. functions) vs nonlocal declarations (e.g. storage allocation for later operations). (3) degrees of abstraction (can we look at operation blarg() as pure computation, or must it have side effects and/or be effected by other side effects). You can carry any of these concepts to heights of absurdity which I don't care to contemplate... Raul Rockwell