From: Tracy R Reed <[EMAIL PROTECTED]>
Gabriel Sechan wrote:
for lack of inlines and const, now fixed. Side effects have a bad rap-
undocumented side effects are bad, but the ability to have side effects is
extremely useful (OO programming is based on side effects- changing a
member variable is a side effect).
Actually, I think the bad reputation of side effects is well deserved. My
recent forays into LISP/Scheme (and soon Haskell) have shown me that side
effects (documented and undocumented) do introduce bugs and they prevent
your code from being easily parallelized. If you code things in a purely
functional way the parallelism is inherent. There is now a parallelizing
Haskell compiler. With more and more cpu cores being added per chip
parallelism is becoming an important issue.
I don't like functional programming. I'm glad it exists, its always nice to
see a completely different approach (since in reality the OO and procedural
approaches are pretty damn similar). But it bears absolutely no resemblance
to my natural thought flow. My mind works procedurally, it has since I've
been a kid- I've always taken the break things into steps, then into
smaller steps approach. As such I avoid actually using them like the
plague. I'll pay the price of having to do my own locking gladly, it would
still be 10x more efficient for me in terms of programmer hours.
Every language is defficient. C just has the least of them.
C has the least number of deficiencies? Surely that is a religious belief,
not something provable.
Of course it is. The definition of deficiency is a religious belief, some
of what I call a language flaw is called a feature by other, and vice versa.
Gabe
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list