There is no one “root of all evil” in software development. Design is hard in many ways.
BJARNE STROUSTRUPThere is no one “root of all evil” in software development. Design is hard in many ways.
BJARNE STROUSTRUPCertainly not every good program is object-oriented, and not every object-oriented program is good.
BJARNE STROUSTRUPAlways think about how a piece of code should be used: good interfaces are the essence of good code.
BJARNE STROUSTRUPC++ is designed to allow you to express ideas, but if you don’t have ideas or don’t have any clue about how to express them, C++ doesn’t offer much help.
BJARNE STROUSTRUPSome software is actually pretty good, by any standard. Think of the Mars Rovers, Google, and the Human Genome Project. Now, that’s quality software!
BJARNE STROUSTRUPI like doing research that has an impact. If I went to a company to make what they call ‘real money,’ I’d be just trying to make a system work as fast as possible to meet the product and serice deadlines.
BJARNE STROUSTRUPJava isn’t platform independent; it is a platform
BJARNE STROUSTRUPAn organisation that treats its programmers as morons will soon have programmers that are willing and able to act like morons only.
BJARNE STROUSTRUPDesign and programming are human activities; forget that and all is lost.
BJARNE STROUSTRUPIt is easy to study the rules of overloading and of templates without noticing that together they are one of the keys to elegant and efficient type-safe containers.
BJARNE STROUSTRUPThere are more useful systems developed in languages deemed awful than in languages praised for being beautiful – many more.
BJARNE STROUSTRUPOther programming languages constitute a mountain of ideas and inspiration-but it has to be mined carefully to avoid featurism and inconsistencies.
BJARNE STROUSTRUP[Corporate programming] is often done to the point where the individual is completely submerged in corporate “culture” with no outlet for unique talents and skills.
BJARNE STROUSTRUP“Legacy code” often differs from its suggested alternative by actually working and scaling.
BJARNE STROUSTRUPCreativity, engineering principles, and evolutionary change are needed to create a satisfactory large system.
BJARNE STROUSTRUPDestructors for virtual base classes are executed in the reverse order of their appearance in a depth-first left-to-right traversal of the directed acyclic graph of base classes.
BJARNE STROUSTRUP