Stefan Ram wrote:
> »Your essay made me remember an interesting phenomenon I
> saw in one system I worked on. There were two versions of
> it, one in Lisp and one in C++. The display subsystem of
> the Lisp version was faster. There were various reasons,
> but an important one was GC: the C++ code copied a lot of
> buffers because they got passed around in fairly complex
> ways, so it could be quite difficult to know when one
> could be deallocated. To avoid that problem, the C++
> programmers just copied.
I suppose you can compare incompetent C++ programmers with lisp
programmers (in the sense that lisp may lead, by its very nature, to
efficient code without the need to create complicated designs). However,
generalizing from this that lisp produces faster code than C++ is a bit
unfair.
> A lot of us thought in the 1990s that the big battle would
> be between procedural and object oriented programming, and
> we thought that object oriented programming would provide
> a big boost in programmer productivity. I thought that,
> too. Some people still think that. It turns out we were
> wrong. Object oriented programming is handy dandy, but
> it's not really the productivity booster that was
> promised. The real significant productivity advance we've
> had in programming has been from languages which manage
> memory for you automatically.
Claiming that OOP has not improved productivity significantly is quite
far-fetched.
(Personally I feel there has been a counter-movement against OOP: In
the late 80's and early 90's OOP was the fad and the extreme hype. While
it did indeed improve productivity a lot, it was not, however, the final
silver bullet. In other words, in some ways it was a bit of a
disappointment after all that hype. This produced an odd
counter-reaction in some circles who, for some reason, can only see what
OOP did *not* deliver and close their eyes to all that it did. It's a
kind of anti-hype as a post-reaction to the hype. IMO this kind of
counter-movement is stupid and misguided.)