Postmodern Computer Science
gnat writes "Two New Zealand computer scientists have a paper accepted for OOPSLA called Notes on Postmodern Programming, which identifies shortcomings in traditional views of computer science. With a section on the difference between "The Matrix" and the net, a bulleted list of new approaches called "We're All Devo", and a section called "Messy is Good" consisting of nothing but a scan of a hand-drawn diagram, this is not your father's computer science paper. It's thought-provoking stuff, though. And you know they did their homework--they cite Larry Wall's Postmodern Perl talk."
How the heck does a post which begins by admitting complete ignorance of the subject at hand get moderated up?
This paper is anything but high level. And that's one of its strengths, IMO. Although I'm not sure the authors would consider it publishable in a journal -- seems more like a conference presentation to me.
The beginning is a skillful emulation of manifesti such as that of the futurists. For that alone, it's worth reading.
cbd.
"Any sophisticated theory of the postmodern ought to bear something of the same relationship to Horkheimer and Adorno's old 'Culture Industry' concept as MTV or fractal ads bear to fifties television series."
If you don't know what this means, it's because your brain evolved to reject drivel. To be perfectly honest, I hope this is a hoax. Wouldn't be the first time.
But then, with postmodernism, you can't really tell the hoaxes from the honest nonsense.
Adam Gopnik of the New Yorker noted some time ago that the message of postmodern work is almost always trivial (like "violence is bad"), but couched in the most inscrutable and/or eye-catching terms (like "search for an interpretive skein within that overburdened word 'violence'" or "violence as style"). How about this one, from the paper: "Without a grand narrative, there will no be one common way to program, or even one common kind of interface between programs." More than one way to program? Sign me up for a grand narrative, post-haste!
I thought Slashdot was immune to this kind of idiocy. (Well...no, I didn't, but I can dream, can't I?)
...fuck are you smoking?
Programming is not the goal, nor the root, of computer science. Programming is the means, not the ends. Or, as Dijkstra (RIP) put it, "Computer Science is no more about computers than astronomy is about telescopes."
Programming is fun, and it's certainly the part of computer science which I tend to look forward to the most when starting a project, but your statement is like saying, "the actual root of architecture is trowling cement onto bricks."
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
Programming is a bit like chess; you can't point to anything specific that a bad chess player
does wrong. It is not that a bad chess player moves his pieces incorrectly - bad players are constrained by the same rules of the game that good players are; a bishop stays on its color for both the good and bad players. The only difference between good and bad players is that poor players make poor choices of moves.
In a similar fashion poor programmers use the same tools as good programmers - they both get their programs to compile and run - but poor programmers just make poor programming choices.
Here is an example of something which poor programmers don't seem to get. When you put a nice shiny new paint job on a layer of crap - it might look ok - but it is still a layer of crap.
That simple observation explains why Microsoft's operating systems stink.
Reading the paper, I get the impression that this is mostly typical undergraduate hand-wringing about the gulf between academia and industry. That's fine, as far as it goes, and I've certainly indulged in my fair share of it. However, as an occasional student of stuff other than computer science, I'm a bit worried by their choice of terminology.
To sum up: Post-freaking-modernism??? Do these people have any idea what a plague on the humanities the loose collection of intellectual conceits known as "postmodernism" has been?
I've tried my hand at reading Foucault/Derrida/Barthes/etc., and their secondary sources. It's exceptionally difficult, but not in the way that, say, a complex algorithm is difficult. It's difficult in the way religious texts, or David Lynch movies are difficult; i.e., the difficulty is a smokescreen to keep the reader from catching on that this is all a bunch of bullshit.
This sort of deal typically begins with, "I will argue that {truth,reason,science,gender} is {non-existent,socially constructed,a masculinist plot}." Several hundred extraordinarily poorly written pages follow in which the author, in varying degrees of good faith, actually tries to argue these points. Of course, if truth is socially constructed, we all have no basis upon which to discuss anything. Rather than calling one another on it, the postmodernists collectively wink at one another, and promise to take one another seriously, and quote one another every chance they get. It's academics by pyramid scheme.
I understand why humanities people, even bright ones, fall for this routine, since they might go through all of their undergraduate and graduate education without encountering a single academic who hasn't drunk from postmodernism's poisoned cup; but why on earth would computer scientists be visiting this curse on a journal I subscribe to?
To those posters above tempted to give in to the siren song of self-referentiality, who might be thinking, "Hey, some of my CS classes are boring, maybe we need some of this radical 'postmodern' stuff to kick boring old CS in the pants," remember: computer science is very, very young. New ideas and techniques are thick on the ground in fields as diverse as graphics, systems, theory, AI, and software engineering. Literary critics eventually turned to postmodernism in part because it seemed like there was nothing left to say, and this postmodernism stuff, bullshit or not, was at least different. In computer science, we are still learning how to write a well-structured novel.
It's true enough that "P"rogramming is not the root of things. Instead I think it is the heart, which is not quite what either of you are saying.
You say that "P"rogramming is the means, but then give a quote about "C"omputers which is not the same thing.
"P"rogramming is obviosuly much more than just the means. The actual running "P"rogram of just about any design can have so many facets of care and life put into things - the ease with which the "P"rogram might be built. The configurability of the "P"rogram. The API which one might access the "P"rogram through other "P"rograms. The interface that leans the user to interact with the "P"rogram are all entireley different than the abstract thoughts that gave birth to the "P"rogram, and breathe soul, if you will, into what once was abstract and souless, and are all aspects of how successful we consider the program regardless of how strict it adheres to original design, or even intent.
To argue this point further, I'll use as a basis the section of the paper where they speak of many approaches have been taking to working with computers. Software Engineering. Software Architecture. Computer Science.
All of these are similar in that they may produce "P"rograms, but the commonality is that all of them require "P"rograms in order to further themselves. Any of these approaches to software alone, without "P"rograms, leads to the approach becoming "dead", in the way that Latin is a "dead" language.
I think what the original poster is really saying (and what I agree with) is that Computer Science in some places is striving to seperate itself from the "P"rogram, and in doing so also harms the ability for the student to study or engage in Architecture or Engineering or whatever other approaches can be taken with software. To lean on the paper once more, good programming education is like bad art - you know it when you see it. I'm sure there are computer programs doing a great job even now (I know Rice did an excellent job with me years ago), but we (and here I speak of any means of learning, college, self-taught, or otherwise) need to be careful to provide both the heart and the brain when bringing life to an education in software development.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Is it just me, or does this sound like an Arts Faculty which is tired of seeing all the university funding go to those pesky IT faculties and wants to bring itself forward into the nineteenth century?
Actually, software engineering does need more *psychology* related input IMO. People can fight over languages and paradigms and design methedolies for years without ever agreeing. It is more like politics than say math.
In my observation, different software engineering approaches keep trying to model the practicioner's head rather than absolute external principles or the external world. (I am not saying that the latter is necessarily better.) For example, nobody has shown that OOP is objectively better than procedural/relational. Debates over which is better often expose different *fundimental* perceptions of reality and the change-patterns of reality.
In some of my debates with OO fans, if we ever figure out exactly where and why we differ, it tends to be things such as the likelyhood of certain events (change requests) happening. All the "training" in the world is not going to convince somebody that change X is more likely than change Y if their personal experience and observations tell them otherwise. OOP seems optimized for handling modification patterns that don't fit reality as I perceive it.
Paradigms and languages are a lot like ink-blot tests: they reveal a lot about our internal cognative thinking patterns and world view assumptions.
Thus, software engineering is more related to psychology than math (barring some breakthrough mathematical proof that X is objectively and practically better than Y).
So, let the psychology department play with computer science for a while, not just the art department. The math-heads have had their turn for long enough.
Table-ized A.I.