Path: utzoo!utgpu!watmath!att!tut.cis.ohio-state.edu!purdue!gatech!hubcap!billwolf%hazel.cs.clemson.edu From: billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe,2847,) Newsgroups: comp.lang.misc Subject: Re: Which language to teach first? Message-ID: <6264@hubcap.clemson.edu> Date: 15 Aug 89 18:50:13 GMT References: <1304@batserver.cs.uq.oz> Sender: news@hubcap.clemson.edu Reply-To: billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu Lines: 35 From paul@batserver.cs.uq.oz (Paul Bailes): > The answer is quite clear: a modern-style functional language [...] Since the ACM Task Force on the Core of Computer Science has specified parallel programming as one of the 11 major topics to be covered in an introductory course, the language used should be one in which parallel programming is supported. Quoting David M. Harland (Concurrency and Programming Languages, 1986): The history-sensitivity of the imperative languages contrasts with the total inability of functional systems to handle interactions with the outside world... It is interesting to ponder what would happen if processes were made explicit in functional languages. With the introduction of arbitrary interactions, sequentiality would return and this would remove the basis of their traditional implementation. There is far more to the issue than the fashionable 'single-assignment' approach would have us believe. Functional languages _rely_ upon the fact that they are not history-sensitive to evaluate expressions in parallel, and thereby are claimed to be inherently parallel languages. This is not so. They are not sequential, but this is far from being parallel. The only parallelism they offer is hidden in their implementation; it is implicit. A truly parallel language would make its concurrency explicit, and allow arbitrary computation over the agents of parallelism. Far from the applicative languages providing the most natural evolutionary path for future 'good' programming systems, they are, as currently defined, fatally flawed. But don't worry; Ada will be quite happy to take up the slack while you functional programming types run right back to the drawing board... Bill Wolfe, wtwolfe@hubcap.clemson.edu