Re: Encapsulation vs Extensibility



On 2007-01-12 16:06:08 -0600, "Anthony Paul" <anthonypaulo@xxxxxxxxx> said:

Excuse my cynicism people... I've been holding this in for the past 20
years. I will be a truly happy camper the day I see some science in
computer science.

There is a huge difference between science and engineering and art. Any human endeavor worth doing must have elements of all three. Software development is no exception.

The science part of software is meager, but rigorous. The "Halting Problem", the study of sorts and searches, the reduction of computing to turing machines, are all evidence that we have a functioning science.

The engineering part of software is not so meager as the science; but is less rigorous. There are many books and papers written about engineering principles and design patterns, etc. These are neither more, nor less, definitive than in any other engineering practice. All engineers have certain dogmas and religions that they follow that have no scientific basis; but that are nonetheless empirically derived and communicated by social tradition.

It is the art that is the most elusive, and perhaps the most *human* aspect of software. And it may be the most important. Software is a craft, a combination of science, engineering, and art. As such, it is an effort to create beauty. Beauty of function, beauty of form, beauty of utility, beauty of affordability. A good software developer *cares* about the software he writes that way an author cares about his words, or a painter cares about his brush strokes. A professional software developer continuously learns the science, the engineering, and the art forms of his/her discipline.

Do not bemoan the state of software science and engineering. Do not complain that there is too much art. If there were not art, then software could be done by computers.
--
Robert C. Martin (Uncle Bob)  | email: unclebob@xxxxxxxxxxxxxxxx
Object Mentor Inc.            | blog:  www.butunclebob.com
The Agile Transition Experts  | web:   www.objectmentor.com
800-338-6716                  |



.



Relevant Pages

  • =?UTF-8?B?UmU6INmB2LHZiNi0INmF2KzZhdmI2LnZhyDaqdin2YXZhCDaqdiq2KfYqNmH2KfbjCDZhQ==?= =?UTF-8
    ... Statistical Applications in Process Control (Quality and Reliability ... Copyright © 2007 by Blackwell Publishing ISBN 9781405125192 ... Environmental Engineering, 3-Volume Set, 6th edition,[by Nelson L. ... Boundary Element Methods in Manufacturing (Oxford Engineering Science ...
    (sci.math.num-analysis)
  • 2008 ebooks share viewer
    ... Trade and Technology Policies: ... Engineering for Concrete Dams: Design, Performance, and Research ... Science in the Twenty-first Century. ... Statistics for Health Policy ...
    (sci.med.nutrition)
  • ebooks share list 30
    ... Trade and Technology Policies: ... Engineering for Concrete Dams: Design, Performance, and Research ... Science in the Twenty-first Century. ... Statistics for Health Policy ...
    (sci.med.nutrition)
  • ebooks share lits 62
    ... Rice Science and Technology Food Science and Technology (Marcel ... Erythropoietin in Clinical Applications: An International Perspective ... Kinetics and Catalysis in Microheterogeneous Systems Surfactant ... Selection and Application Mechanical Engineering ...
    (sci.med.nutrition)
  • Re: Confused about programming tendency..
    ... getting some grounding in the theory of Computer science & Software ... It is like other engineering fields, ... The art is easier the more you know the science. ...
    (comp.programming)