Concurrency, was Re: Doh! Stupid Programming Mistakes <humor>
Michael L Torrie
torriem at chem.byu.edu
Fri Oct 27 11:36:55 MDT 2006
On Fri, 2006-10-27 at 08:55 -0600, Shane Hathaway wrote:
> Your argument for threads is retarded. You're still assuming that you
> actually have control over the scope of all variables, but future
> maintainers will simply add the "static" keyword to one of your
> variables, breaking your model. This is no fantasy; I've seen bright
> programmers do just that. Or someone like me will come along and try
> very hard to understand your model, but then extend your model in a way
> that introduces subtle but nasty bugs. And it will cost a whole lot to
> fix the mess.
> Look at the rise of web services. Web services are little more than IPC
> across multiple machines. Apparently people find value in the concept.
> I'm sorry you don't.
> Now, don't forget this is a humor thread. This argument is for fun; in
> reality, you're exactly right WRT some kinds of problems.
Besides all this, computing is evolving to be distributed nowadays, with
a non-unified memory architecture. Nodes do not share memory; they
communicate with a protocol. There's a reason why in super-computing
MPI and other message-passing protocol schemes are king. Threads
obviously don't make sense in any kind of distributed architecture. Now
I believe that OSes and computing systems will be designed to hide this
fact from the programs, allowing normal programs to be spread
dynamically across nodes. Maybe through some system that emulates
shared memory and local devices (mapping remote ones). Even in a system
that emulates shared memory (say by swapping pages of memory across
nodes), your threads may think they are not copying memory (accessing it
directly) but are not. Besides that fact, I think it's probably a bad
idea to code with any particular assumptions about the underlying
machine architecture (vm or not).
> PLUG: http://plug.org, #utah on irc.freenode.net
> Unsubscribe: http://plug.org/mailman/options/plug
> Don't fear the penguin.
More information about the PLUG