From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <757a63de546942340d005e0e4fcc471e@terzarima.net> To: 9fans@cse.psu.edu Subject: Re: [9fans] Re: Threads: Sewing badges of honor onto a Kernel From: Charles Forsyth In-Reply-To: <000901c3ff18$950fe250$26fea8c0@SOMA> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Date: Mon, 1 Mar 2004 08:19:16 +0000 Topicbox-Message-UUID: 061e9a34-eacd-11e9-9e20-41e7f4b1d025 >>i think it was rob, but i'm not sure, who said: > linear is programming is hard enough, but > concurrent programming is beyond the > 'average' programmer. actually, i'd say that programming generally is hard enough, and not just for the average programmer, and concurrent programming is just a special case within that. more seriously, some things are more clearly expressed and more easily implemented using concurrent processes or perhaps coroutines, so concurrency ought to be taught, and learned, and well. in contrast to the quote above, in an ancient usenet article, in the context of concurrent programming, i am reasonably certain that rob made the observation that as a discipline, we can learn. he used the example of fork(), which was considered `difficult' when it first appeared, compared to existing notions such as `jobs', but after being studied and taught in advanced programming for a time, it become familiar enough that it was suitable to be taught/used much earlier. that seems to me to be a better quote to use. i'd say from my experience that unless people insist on pronouncing themselves `full' and incapable of accepting any new ideas, which certainly does happen, they can typically learn. (otherwise, they end up saying things such as ``in every other X i've ever seen i could always do Y in this particular way''.) i think in many ways concurrent programming is more general than (say) object-oriented programming, and certainly the language constructions can be much simpler than some object-oriented ones. in other words: if you're capable of understanding `finalised virtual hyperstationary factory class', remembering the Java class hierarchy, and all the details of the Java Media Framework, you are (a) a better man than i am (b) capable of filling your mind with large chunks of complexity, so concurrent programming should be simple by comparison. go for it. ps. i made up the hyperstationary, but then again, it's probably a design pattern.