

Computer Science: Smart People Have Weird Hangups - rams
http://jjinux.blogspot.com/2007/08/computer-science-smart-people-have.html

======
cperciva
Wow, I must be incredibly smart. I hate OOP (if you want function pointers,
just use function pointers, and forget all this modern "object oriented"
garbage); dislike databases (for the same reason as mentioned in the article
-- they're leaky abstractions where performance is concerned); scowl every
time someone mentions "web services" (tunneling RPC over HTTP? I was doing
that long before "web services", REST, or SOAP existed, and it has nothing to
do with the web); hate synchronous networking (for performance reasons, of
course) and avoid it even in places where it would be quite adequate; rigidly
stick to BSD style(9); and also (a hangup not mentioned in the article)
absolutely loathe garbage collection (I'm smarter than the garbage collector).

The fact is, however, that having hangups doesn't mean that you're smarter
than anyone else. Rather, it simply means that you're willing to refuse jobs
which don't meet your (arbitrary) requirements. People who are smart are more
able to be picky, because they have more jobs available to them; but people
who are independently wealthy can turn down jobs due to personal hangups; and
anyone who is employed in a field other than programming can afford to have as
many programming-related hangups as they want.

If you have to support a wife and children, and programming is your only
marketable talent, you're not going to have programming-related hangups for
long.

~~~
eru
"(if you want function pointers, just use function pointers, and forget all
this modern "object oriented" garbage)"

Why not use just functions as first class data?

~~~
cperciva
> Why not [just use] functions as first class data?

Because they're not. When you copy an object, you don't copy all of its
methods; instead, you copy all of its function pointers.

~~~
eru
I mean there are languages that have functions as first class data. Not
wrapped up in objects. Think Lisp, Scheme, Haskell. Even Python can do this -
otherwise map and filter would hardly work.

------
comatose_kid
Nice.... First imply that characteristic X means you are smart, and then give
examples of your intelligence by showing how you possess this characteristic.

~~~
eru
Yes, but he could have made his argument more convincing. It's too
transparent.

------
brlewis
I don't think most Lisp hackers actually hate OO. It's just that OO has been
oversold so much, as if you should use it for everything. I would use OO a lot
if I were writing a MUD or a graphical widget library. Inheritance is great.
For web sites I generally don't use OO, though.

I think it would be more accurate to say that if you use OO, many Lisp hackers
will ask why, in a tone that implies they don't expect a good answer.

~~~
ptn
I think that OOP has some great ideas and some bad ideas. I really like
polimorphism and inheritance, but I'm not that fond of encapsulation. OOP is
just another tool and, just like with any other tool, it isn't meant for
everything. The problem is, people seem to think that it really is meant for
everything.

------
mhartl
I can hardly work on code that's more than 80 characters across. Am I the only
one?

------
tjr
Hmmmm... you can run GNU/Linux on a MacBook, no? Or is he bothered by a non-
free BIOS, or some such thing?

~~~
david
I run it on a powerbook. The only problem is there are no drivers for the
nvidia video card, so no acceleration and suspend to ram doesn't work. Theres
no flash support either, but I don't think that applies to Intel MacBooks.

