Re: Encapsulation vs Extensibility
- From: Robert Martin <unclebob@xxxxxxxxxxxxxxxx>
- Date: Fri, 19 Jan 2007 09:43:00 -0600
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 |
.
- References:
- Encapsulation vs Extensibility
- From: Anthony Paul
- Encapsulation vs Extensibility
- Prev by Date: Re: Criteria to decide what is private? [LONG]
- Next by Date: Re: Criteria to decide what is private?
- Previous by thread: Re: Encapsulation vs Extensibility
- Next by thread: Object Lifetime/Association vs Uses
- Index(es):
Relevant Pages
|