lupo leboucher ([info]lupoleboucher) wrote,
@ 2006-02-16 21:28:00
Previous Entry  Add to memories!  Share this!  Next Entry
Entry tags:science

On computer "science"
It is a periodic source of amusement contemplating the imbecilities of the various branches of computer science. AI is a favorite one.



You have to admire the pluck of "computer scientists" who think that, despite their inability to write decent high level compilers (like, say, natural language coding), or come up with a methodology which prevents common software bugs, they think they can reproduce the functions of the human brain with a tin can. I suppose it's a sort of giant solipsism in a sense; many people who attempt such things are often lacking in even vague knowledge of how human beings work.



Really, AI is the only branch of computer science with any pretensions of being a science these days; as such, the most interesting things show up here. It's kind of amusing to track via Peter Norvig's books on AI. They aptly demonstrate the active devolution of AI techniques. From reasonably interesting compiler tricks and techniques in knowledge representation in Lisp to insipid uses of Kalman filters (an averaging technique stolen from analog computing in missilery intertial navigation ... invented in the 1950s) and "logical agents" in Java. Just reading the books, you get the sensation of talking to an Alzheimer's patient who has forgotten more than he knows. And these are easily the best and most interesting computer science books I've yet read.

Finally some people are realizing what transparent quackery the whole field is. They went from grand predictions of being able to simulate the functions of a human brain by the year 2000 or so, to admitting they can't even write anything more sophisticated than 1960s style eliza programs in attempting to pass "the Turing test."

Even Marvin Minsky has finally come around to this view, "AI has been brain-dead since the 1970s.... For each different kind of problem, the construction of expert systems had to start all over again, because they didn’t accumulate common-sense knowledge.... Graduate students are wasting three years of their lives soldering and repairing robots, instead of making them smart. It’s really shocking.” The rest of the article is relatively good, and, as it was inspiration for today's rant, probably worth reading.

It's quite amusing how the average computer science graduate (who has probably never even peeked into AI ideas to see what they are all about) will loudly and indignantly insist that the computers are coming, that it is only a matter of time, blabbity blah blah. Such jingoism makes me laugh and laugh; not only do they have no sense of their own field's history, they have no sense of what they're talking about. Most of these guys don't even know what a real number is, or will assert something silly about them, like that they can be represented "just fine" by 64 bit integers, like they are in a computer. Anyone who tells me something like that doesn't understand the first thing about the world of dynamics. Real numbers (rather than continued fractions) have physical consequences that can be measured, actually. Go look up the Ford paradox if you don't believe me. Or, since someone mentioned simulated annealing today; go think about why it's so hard for a computer to do something which nature finds so easy to do (yet, it is powerful enough to do very impressive things, basically by representing very large chunks of information in a physical model, rather than a register -think enough about it, and you'll see why analog computers might be a good idea).

I suppose the average computer science geek is generally a sort of power mad fancy plumber. Such an analogy actually holds; plumbers in the 1800s were a lot like computer scientists today. They were and are clever working class guys whose cleverness bumps them up a couple of social and economic classes. In the 1800s, plumbing really came into its own, and it more or less solidified into the useful field it is today. But back then, it was seen as a high technology cure for all ills. Whether for piping water in, piping shit away, or piping power around in the form of steam; all technology was seen as involving lots of pipes in them days, and clever pipe fitters would come up with all kinds of contraptions. Now a days, it's all about computers. Just like in the old days, a piece of technology looked all the better with lots of pipes all over it, now a days, a piece of technology looks all the better with lots of microcontrollers or pentiums glued to it, running half-baked software. No doubt the old time plumbers thought they could do impossible things with their pipes, just as their modern counterparts do.




High tech with pipes


Really, whatever can be done now with a computer was in principle doable in 1965. There hasn't been any large breakthroughs in computer science cleverness since then. And I only chose that year as that's when Cooley and Tukey rediscovered (from Gauss; duh) the fast Fourier transform; the last big increase in computing power which came about due to an algorithm (barring that, 1962 or so was one of the last years of original computer science research). Everything else has been due to improved surface science techniques, making faster chips and better mass storage devices. So all those wonderful tasks of sorting, classifying and adding which modern computer scientists get paid to painfully teach computers how to do; they're all possible because some jerk knows how to make clean silicon wafers. Much like a lot of plumbing and steam technology came about because of improved metallurgy and machining techniques. Oh well; you can't blame the plumbers for thinking their plumbing is a source of ultimate power. For them, it is a source of personal power. But it ain't the answer to most questions.



There are basically two promising, unrelated (unless you believe Penrose, which I don't) areas in computer science today. Non Von Neumann architectures, generally phrased (generally wrongly) as "quantum computers" is one of them. The other one is neuro anatomy. Once one of them really begins to bear fruit, we'll see some real changes (such as happened when computers were first invented). Meanwhile, the latest fashion in objects or patterns isn't going to get you far. Hell, the guy who came up with the "patterns" idea is a Berkeley architect. And if you've ever spent time in Berkeley, you can see where that got us.



(24 comments) - (Post a new comment)


[info]ghosthacked
2006-02-17 07:15 am UTC (link)
You might enjoy this:
http://opal.cabochon.com/~stevey/blog-rants/polymorphism-fails.html

Beware any subject that calls itself a science!

(Reply to this) (Thread)


[info]lupoleboucher
2006-02-17 06:39 pm UTC (link)
Many such authors think "object oriented" or other fancy chinese words like polymorphism mean something which it doesn't, really.
Computer science is filled to the nostrils with such vague but impressive sounding words. A great way to spook the roobs I guess.

All you need for every "polymorphism" problem he mentions is eval() and {}; or defmacro() if you swing with parenthesis rather than indentation -functional programming was invented for evaluating inline code. Duh. Again, 1960s technology smokes the 21st century fashionista "object" way of doing things. I was given a similar problem in a job interview and broke my interviewers brain by showing them how to do what he asked in 3 sets of lisp parenthesis (I got the offer; w00t).

(Reply to this) (Parent)

Instead
[info]cema
2009-07-06 02:50 am UTC (link)
http://steve.yegge.googlepages.com/when-polymorphism-fails

(Reply to this) (Parent)

great achievements of computer science
[info]phygelus
2006-02-17 06:05 pm UTC (link)
Yes, CS has been moribund since the sixties, but it's not quite dead, and the "pure" CS people haven't had much to contribute, honestly.

I'm with Minsky on the "stupid little robots" thing. I built one out of a remote-controlled rat on Monday for fun, and to be able to argue that the hard part is the software. More on that later, I've been working up some bile. Damn you for getting to it first.



But just to be contrary, a very incomplete timeline:

1970 Relational databases (even if it's just a systemization of practice, it's an important one)
~1975-~1985 probably 90% of the algorithms used in computer graphics
1977 Public-key cryptography
1977-1979 the TeX/Metafont algorithms for typesetting
1977-1978 Lempel-Ziv compression
1979 Spreadsheets
1982 Sinistar
1988-onward Lossy compression schemes
2005 A bunch of teams complete the DARPA Grand Challenge contrary to your prediction a year before

There's got to be at least one cool thing from the nineties besides the evolution of lossy compression schemes, but I can't think of any right now.

The real irony behind the "patterns" thing is that the dude who wrote the architecture books came to the conclusion it was a bad idea. Richard Gabriel wrote a whole book trying to point this out to the CS types, but they're still not listening.

The most disgusting irony to the "object oriented programming" fad is that no one has figured out how to save objects to a disk yet. This is why there are all these things like "object databases", "object-relational mappings", "object persistence layers", and so on. If any of them worked, they'd be a standard part of object-oriented languages by now, after what, forty years already?

(Reply to this) (Thread)

Re: great achievements of computer science
[info]lupoleboucher
2006-02-17 07:31 pm UTC (link)
Addressing them one by one ...

"1970 Relational databases "

As you say, not really: they had actually been around lots longer.

"~1975-~1985 ... graphics"

Mmmm, I suppose at a more detailed level. Lots more was in the can than you think in the 1960s. I declare this a surface science side effect.

"1977-1979 the TeX..."

Was a freeware evolution of earlier things which did much the same thing (though not as well as TeX). I think the fontification used in Unix man pages, for example, is of much older provenance. Amusingly, millions of man hours are wasted inventing things like WordPerfect and Word that work worse than TeX does because most programmer people are too stupid to do TeX code generation on the fly (despite the fact that you can whip it up in Perl almost trivially, and people have).

"public key crypto"
It isn't a terrible idea, and is certainly original, even if you can do the same thing with trusted secure key distribution, like the NSA and diplomatic corps have been doing for decades previous (and probably still are).

"Lempel-Ziv compression"

While it was an unarguable advance, in 1949 Shannon and Fano did something pretty similar that was widely used in writing things like telex protocols. Also; Huffman coding; 1953. Both are much cooler and more original than L-Z compression.

"Spreadsheets"

You are baiting me. Ignore. And ... actually, they had been around in slightly different forms for a really long time before that. Surface science improvement.

"Sinistar" OK, you got me. Sinistar is the only improvement in computer science since the 1960s.

"Lossy compression" -has been around for longer than 1988, and isn't much of a trick. The telco has been doing the same thing for decades with filters.

"DARPA grand challenge" -so, you're telling me that it takes 50 programmers years of work and research, and millions of dollars to do a 6 hour drive crossing a featureless desert ... and this is impressive? I bet you could have spent the same money as a given team did, but instead of paying computer monkeys, you could just spend it buying SUVs, lashing the wheels in the general direction of the finish line, and putting a brick on the accellerator, and more trucks would have finished the race. I never made that prediction, by the way; but I did point out that cockroaches have been crossing deserts for a half billion years or so, and their brains are a lot more versatile than 40 computer scientists with $10million budgets.

"If any of them worked, they'd be a standard part of object-oriented languages by now, after what, forty years already?"

You make the mistake of thinking language writers know what they are doing. Case in point, the function "apply." Why does this supremely useful thing only exist in Lisp and friends? Weak typing, compiled eval(), blah blah blah, all kinds of useful shit, blah. Anyway, this is what my company more or less does, so, hush.

And, by the way, that's is a mighty cool rat. If it does something interesting, wanna sell me one?

(Reply to this) (Parent)(Thread)

my very own stupid little robot
[info]phygelus
2006-02-17 07:58 pm UTC (link)
And, by the way, that's is a mighty cool rat. If it does something interesting, wanna sell me one?

See, everybody thinks robots are cool. But they are not. Unless you are winning the DARPA Grand Challenge, basically, they are frivolous like remote controlled toys and model trains. Minsky is right: the whole toy robot fad in academia is really shocking.

Right now it doesn't do much but test out. The next thing on the agenda is to add an IR remote control receiver and start hacking up some kind of proximity sensor/rangefinder. It has as yet no sensors.

The mechanicals on this one are super cheap (it was a $15 impulse purchase at Halloween, when such things are in the stores) and slightly broken, so it actually looks like it has more intelligence than it really does, since it jams up and snuffles around a bunch. Even when the thing was new and worked somewhat better, it only really worked on nice flat surfaces like counters, kitchen linoleum, and tables.

If I run a PCB, and you can get your hands on such a rat, I'll let you have a board at cost.

(Reply to this) (Parent)

The "Sciences"
[info]ajsl8r
2006-02-17 07:28 pm UTC (link)
If a discipline is so insecure of its own legitimacy that it appends a "Science" suffix to its name (just so you don't forget), it probably isn't a science.

(Reply to this) (Thread)

Re: The "Sciences"
[info]lupoleboucher
2006-02-17 07:35 pm UTC (link)
That's probably got the force of natural law. Which is probably why they started calling "management science" something better: "operations research."

Welcome to my blog thingee, Hercules.

(Reply to this) (Parent)

Re: The "Sciences"
[info]erehweb
2006-02-19 06:59 pm UTC (link)
Computer science has the same relationship to science as the German Democratic Republic had to democracy.

(Reply to this) (Parent)(Thread)

Re: The "Sciences"
(Anonymous)
2006-02-20 12:36 am UTC (link)
Somewhere in the dark corners of my brain I recall a bit about the inverse relationship between national nomenclatore's explicit declaration of democratic ideals and actual practice. "People's Democratic Republic of the Congo" featured prominently as an example.

(Reply to this) (Parent)(Thread)

Re: The "Sciences"
[info]erehweb
2006-02-20 12:50 am UTC (link)
Is that a bit you did? I suppose Voltaire was there pretty early with his crack about the Holy Roman Empire.

(Reply to this) (Parent)


[info]soulrefraction
2006-02-17 10:31 pm UTC (link)
Natural language isn't deterministic enough for generating literal minded computer code. Too fuzzy.

Neuro anatomy, I assume you mean modeling neural nets? Yeah, that's interesting stuff, especially as we learn more about how memory, learning, etc. actually work at that level. If nothing else it is interesting for auto building a state machine. Maybe we're just big state machines? 10B neurons with up to 10K synapses each with 5ms maximal fire rate is a LOT of states if you count activity over time (which, uh, you have to because it works that way).

(Reply to this) (Thread)


[info]lupoleboucher
2006-02-17 10:59 pm UTC (link)

"Natural language isn't deterministic enough for generating literal minded computer code. Too fuzzy."

Yeah, but brains can do it.

When I say neuro-anatomy, I mean plain old neuro-anatomy.

Neural nets as used in comuter science are a red-herring as far as I can tell. They've been around since the 40s, and are still not useful for much other than parlour tricks. Despite the fact that they were originally influenced by how people thought brains worked, they really don't have anything to do with what we know about how brains work.

Brains ain't state machines. You can read about what we do know about how they work in this here book. The book is written in a most excellent fashion which all with a passing acquaintance with math should be able to read. Or you can skip the math and still get a lot out of it. Cosma wrote a pretty good review of it, which is why I had a look in the first place:
http://www.cscs.umich.edu/~crshalizi/reviews/spikes/

(Reply to this) (Parent)(Thread)


[info]soulrefraction
2006-02-18 01:16 am UTC (link)
Yeah, but brains can do it.
Isn't that the pretentious AI assumption you're ranting about again? :-)

The simplistic neural nets with only a few layers are indeed silly. Modeling brains isn't necessarily silly, at least if we knew what the hell to model...

Not static state machines in CS sense, no. Borrowing from the review you linked to "The task confronting a homunculus residing in the brain, having access only to the incoming trains of spikes, would be to guess --- that is, infer --- what the most likely state of the world is, given that the spike train is thus-and-so."
Oversimplification, yes. The Hebbian wired net is a bit like that but I'm ignoring the firing frequency, which of course matters quite a lot to the wiring process. And variation in neuron types. And arrangements. And cortical layers. And training (V1's striping happens before birth but isn't initially wired that way, each eye's retinas fire randomly to do the wiring). And the fact that quite a bit of the specific wiring is laid out in the womb, long since encoded in the genes. Speaking of which, Chompsky's belief that grammar rules are innate at birth has a bit more evidence:
http://www.seedmagazine.com/news/2006/02/ramparts_of_speech.php

I have a lot of books on neurology, but not Spikes. Looks good too so I ordered it.

(Reply to this) (Parent)(Thread)


[info]lupoleboucher
2006-02-18 05:07 am UTC (link)
Chomsky's ideas on inherent language abilities are cribbed from Aristotle and Montaigne. I'll give him credit for his research for the air force which came up with language heirarchies, but only because it is friday night and I don't feel like looking up the Shannon or Gauss papers which he got the ideas from.

Anyway, the book will give you some pretty good ideas of what to model. There are whole other fields out there which are rather far along in how brains work. There are several readers of this blog which get paid for it; it might be interesting if they speak up eventually.

(Reply to this) (Parent)


[info]ardito
2006-02-19 04:21 pm UTC (link)
I was glad to add you on my other account, but when you replied to one of my posts (it was about C compilers or some junk like that), I discovered that you were not only superior in high culture, but in computer science! I was waiting for you to post something relating to technology, and it paid off.

(Reply to this) (Thread)


[info]lupoleboucher
2006-02-19 08:41 pm UTC (link)
I ain't sure which is your other account, but anyway, I consider myself a crummy programmer. I console myself with the fact that my shitty code works just as good as someone's fancy code. Left to my own devices and toolbox, I might even get it done absurdly quickly.

I'm actually an experimental physicist by training, which sort of informs all this. Code is generally to get something done; nobody gives you a cookie for what idjit tricks it does inside. Favorite CS versus Plumbing story; I designed and implemented a control system interface in two or three man weeks. In that time, me and my coworker learned RPC, hacked up the stubs to work on VxWorks and in Labview on any OS, and made it all work properly. A CS imbecile (who was also a physicist by training, one with 20 years of experience, which means he should have known better) did the same thing in CORBA, which was the latest OO baloney at the time, over the course of a year, with several full time programmers, and to this day, despite their attempting to use it on a half dozen other projects which it helped face-plant, it still doesn't work right. Mine, on the other hand, has gone through 2 workstation upgrades, 4 workstation OS upgrades, one Labview upgrade, and 7 years of uptime without so much as a burp. At the other extreme, most of the control systems there are now done on dedicated Labview machines, which is almost as retarded as taking a year to develop a CORBA interface that doesn't work, if you have long term stability in mind, which we did.

Lesson learned: use tools which work now and have been around for a while, don't write stupid "cutting edge" shit that other people have already written (CS imbecile had to write a CORBA server for VxWorks, when RPC had worked since they invented VxWorks and did the same thing), and don't follow fashions or depend on software vendors not being dumber than you.

(Reply to this) (Parent)(Thread)


[info]ardito
2006-02-22 08:11 pm UTC (link)
I have always been very picky about my tools, so to speak... not necessarily against "re-inventing the wheel" exactly, but I trust what is small, tested and works cleanly. I really do shy away from all the new languages and styles. They all leave a bad taste in my mouth. Stick to what works!

My code is sloppy-- but I try to clean it up. But whether it WORKS or not is my primary motivation; the second being the ammount of time invested in it. I am impatient when told to sling code.

Love to write more, but my head is frazzled, as we say in Canada. I am writing a research paper on, well, CS.

(Reply to this) (Parent)(Thread)

Nap time
[info]ardito
2006-02-22 08:11 pm UTC (link)
I know saying I am writing a paper on CS is ridiculously vague, too.

(Reply to this) (Parent)


[info]lupoleboucher
2006-02-22 08:51 pm UTC (link)
You might be entertained by this if you've never read it before:

http://www.dourish.com/goodies/futman.html

(Reply to this) (Parent)


[info]lupoleboucher
2006-02-19 11:24 pm UTC (link)
ah, I know who you are now. Anyway; give yourself some credit: I am twice your age!

(Reply to this) (Parent)(Thread)


[info]ardito
2006-02-22 08:05 pm UTC (link)
Sorry I did not make it more evident before!

(Reply to this) (Parent)


[info]eminence_gris
2006-02-26 11:16 pm UTC (link)
I frequently refer to many of the tasks I do (when I'm working) as "code plumbing". It's not very exciting, but it needs to get done. If I do the job well, people push a button, and their problem quickly and efficiently goes away. If I do the job poorly, I probably don't need to explain the analogy.

In many ways, it's the plumbing aspect of the job I enjoy more than the supposedly sexy architecture/cool technology aspect. This is my competitive advantage. While all the other guys were off chasing the sexy "changing the way people think about foo" jobs, I went and worked for companies that actually made money, and made their computers do what needed to get done.

(Reply to this) (Thread)


[info]lupoleboucher
2006-02-27 01:33 am UTC (link)
Amen to bringing home the bacon.

The thing about jobs is, people pay you to do them because others don't want to. While plumbing of all types can be quite intellectually challenging, once you start fooling yourself that you are an artiste you're likely to not only do a shittier job (I am a great artist! worship me even when I err!), you're likely to be underpaid for it (starving artiste!). Plumbing is a good hearty professional thing: people expect the shit to get piped away, and they pay you well for it.

I had a "science" job which everyone was awfully impressed with (the facility was pretty awesome looking) which was actually very much and very literally a plumbing job. I spent my days fixing vacuum chamber leaks. Which was a lot like being an auto mechanic. We even had snap-on tools. Mechanics made more money though.

(Reply to this) (Parent)


(24 comments) - (Post a new comment)

Image by [info]delightedly. Join the contest in [info]remixed!
Create an Account
Forgot your login or password?
Log in with OpenID
English • Español • Deutsch • Русский…