Abstraction - the means of hiding the details. The Webster definition:
For us programmers, it has a special significance. Anyone who has worked on a large or complex program understands the need for this concept. Encapsulation and information hiding are extensions of this fundamental concept. It helps the programmer(s) handle the problem as effectively as possible. But the question arises: how much is too much? Some would argue never, as it helps regardless of the amount/level. However, I think there comes a point where abstraction takes away functionality, so a balance must be struck. Otherwise, the programmer may be metaphorically coddled, but his/her ability to solve the problem at hand may be severely limited.
No matter what side of the "fence" you're on, at least understand your viewpoint and remain convicted. There is nothing worse then a hypocritical flip flopper. Arguing the effectiveness of an abstract high level language by way of condemning low level abilities and then turning around and saying everything is the same at a basic level makes no sense. Why? Either low level concepts are good or they are not. One of the most beautiful aspects of programming/software development is the lack of tepid/lukewarm/on the fence views on items. Either it is or it is not. It is 1 or 0, on or off. The binary concept makes such a good analogy, no wonder computer systems are built on it.
Quote
Abstraction is the process or result of generalization by reducing the information content of a concept or an observable phenomenon, typically in order to retain only information which is relevant for a particular purpose.
For us programmers, it has a special significance. Anyone who has worked on a large or complex program understands the need for this concept. Encapsulation and information hiding are extensions of this fundamental concept. It helps the programmer(s) handle the problem as effectively as possible. But the question arises: how much is too much? Some would argue never, as it helps regardless of the amount/level. However, I think there comes a point where abstraction takes away functionality, so a balance must be struck. Otherwise, the programmer may be metaphorically coddled, but his/her ability to solve the problem at hand may be severely limited.
No matter what side of the "fence" you're on, at least understand your viewpoint and remain convicted. There is nothing worse then a hypocritical flip flopper. Arguing the effectiveness of an abstract high level language by way of condemning low level abilities and then turning around and saying everything is the same at a basic level makes no sense. Why? Either low level concepts are good or they are not. One of the most beautiful aspects of programming/software development is the lack of tepid/lukewarm/on the fence views on items. Either it is or it is not. It is 1 or 0, on or off. The binary concept makes such a good analogy, no wonder computer systems are built on it.
1 Comments On This Entry
Page 1 of 1
joezim007
16 June 2009 - 08:50 PM
I totally agree that there is a balance. Too much abstraction = too little control and often I've found that I despise some technologies that others praise because I have no control. I would rather take the time to read through 1000 lines of code than have no control.
Page 1 of 1
← January 2022 →
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
Tags
My Blog Links
Recent Entries
Recent Comments
Search My Blog
23 user(s) viewing
23 Guests
0 member(s)
0 anonymous member(s)
0 member(s)
0 anonymous member(s)



1 Comments









|