G
gong
hi
i recently looked at alexandrescu's book on c++, and i found it pretty
much unintelligible. i have a few points which i wonder about.
1. as a developer, it is important, from a bottom line standpoint, to
make code as transparent as possible. through its lifecycle, code
inevitably becomes larger and more complex to cope with unexpected
demands. if the starting point looks like alexandrescu's code, it
will require very specialized and costly people to maintain, and will
likely be brittle, perhaps not because of the software architecture
itself (though with such unproven techniques it is likely), but rather
because nobody will be able to do the work to get the code to adapt to
its new requirements; ultimately resulting in a rewrite. the trend
towards outsourcing means that code will likely be changing hands even
more rapidly and amongst ever more diverse groups of programmers;
unnecessarily difficult code becomes even more of an encumbrance in
this situation. what is wrong with this assessment?
2. what is the payoff of the techniques in the book to real world
problems? perhaps they are of interest to generic library writers,
but thats about all i could conclude from looking at the book.
3. i have also been looking into python, which has an emphasis on
elegance, at the cost of speed. the last release of python, 2.3, had
among its release notes, a boast about a minimum of new language
features being added. i think that c++, like java, is not as
"enjoyable" a language to use because of its ever increasing
multiparadigm approach, which i think is perhaps becoming a euphemism
for bloat. in an interview, dennis ritchie said something like he
thinks c is one of the best ways to get the speed of assembler with a
minimum of language enhancements. do you think c++'s plethora of
language features and the general structure of the language and
approach are an elegant, stimulating way to code, or do you prefer
something smaller? which is more cost effective?
4. at one time, when the object oriented model was being developed, it
was hailed as the overarching technique for specifying problems.
inheritance was a crucial technique, and many textbooks and articles
endorsed the approach singlemindedly. since then, stl provided the
realization that not everything is an object, that some things are
algorithms, for example (as opposed to "functor" objects). however it
seems to me that currently generic programming is being pushed the way
object oriented programming was a few years ago. is generic
programming still an immature concept with which we will start to find
significant shortcomings in the future? when one recalls the
conceptual stretching that was once advocated in favor of o-o, i think
this is possible.
thanks for any insights.
-gong
i recently looked at alexandrescu's book on c++, and i found it pretty
much unintelligible. i have a few points which i wonder about.
1. as a developer, it is important, from a bottom line standpoint, to
make code as transparent as possible. through its lifecycle, code
inevitably becomes larger and more complex to cope with unexpected
demands. if the starting point looks like alexandrescu's code, it
will require very specialized and costly people to maintain, and will
likely be brittle, perhaps not because of the software architecture
itself (though with such unproven techniques it is likely), but rather
because nobody will be able to do the work to get the code to adapt to
its new requirements; ultimately resulting in a rewrite. the trend
towards outsourcing means that code will likely be changing hands even
more rapidly and amongst ever more diverse groups of programmers;
unnecessarily difficult code becomes even more of an encumbrance in
this situation. what is wrong with this assessment?
2. what is the payoff of the techniques in the book to real world
problems? perhaps they are of interest to generic library writers,
but thats about all i could conclude from looking at the book.
3. i have also been looking into python, which has an emphasis on
elegance, at the cost of speed. the last release of python, 2.3, had
among its release notes, a boast about a minimum of new language
features being added. i think that c++, like java, is not as
"enjoyable" a language to use because of its ever increasing
multiparadigm approach, which i think is perhaps becoming a euphemism
for bloat. in an interview, dennis ritchie said something like he
thinks c is one of the best ways to get the speed of assembler with a
minimum of language enhancements. do you think c++'s plethora of
language features and the general structure of the language and
approach are an elegant, stimulating way to code, or do you prefer
something smaller? which is more cost effective?
4. at one time, when the object oriented model was being developed, it
was hailed as the overarching technique for specifying problems.
inheritance was a crucial technique, and many textbooks and articles
endorsed the approach singlemindedly. since then, stl provided the
realization that not everything is an object, that some things are
algorithms, for example (as opposed to "functor" objects). however it
seems to me that currently generic programming is being pushed the way
object oriented programming was a few years ago. is generic
programming still an immature concept with which we will start to find
significant shortcomings in the future? when one recalls the
conceptual stretching that was once advocated in favor of o-o, i think
this is possible.
thanks for any insights.
-gong