A Legacy called OOAD!!!
OOAD stands for Object Oriented Analysis and Design. OOAD couldn’t survive because of its complexity. It’s ironical. OOAD was supposed to bring in the simplicity out of complexity. People were so much used to procedural paradigm; nobody could really conceive the OOAD properly. It is not easy to represent an un-built system in terms of objects. It requires a careful analysis of the problem, and then careful selection of classes in the problem domain. But to do that you should be able to visualize and understand the system to be built completely. It’s not an easy task. It requires a lot of time and concentration. But the software industry is moving in a different direction too fast to allocate so much time for analysis. The competition is high. The race is to bring out new products with new features and dump it on the customers. And then rely on effective advertising and marketing techniques to sell their product. Hype the ordinary features and exaggerate the power of the product and selling it. In this race, the quality has taken the backseat. That’s why, when you install any software in your system, they’d be trying their level best to come in your startup programs list or in IE toolbar. They force you to use their software rather than letting you use it on your own based on your liking. The market pressures, the client pressures, the bad managers, and the top management would be in hurry to get the product to the market as soon as possible. So no software company could afford OOAD. Because of these pressures, the software designers would tend to or be forced to spend less time in design and analysis. The result of this is even more horrible. The C++ or any other object oriented language code is extremely difficult and painstaking to manage if there are too many classes in the code. It’s a hell.
It can be easy if the classes are well defined so that each class exhibits distinct behavior and associated with other classes logically. When such is the case, it doesn’t matter how many classes are there or how big is the code. Suppose you are searching for a particular functionality in a vast code. If the classes are well defined, you can intuitively associate this functionality with the class which handles this functionality as each class would be having distinct and unique behavior. You can go to that class and check that functionality accordingly. But if the classes are not really exhibiting distinct and unique behavior, you will have to rely on the text search. As the functionality would be implemented in different classes and in different source files, it would be a hell to run back and forth across multiple files while cursing the programmer who had coded that!!
It was Sun Microsystems which identified the opportunity here and cashed it completely. They understood the fact that very few people want to work like Howard Roark. All that is required is Rapid and Easy Development. They realized that Quality is important but the quick development would make people accept the Average Quality if not Bad Quality. C++ is powerful and you can write excellent systems using it. But Sun knew that people didn’t want the best possible language but they wanted an easy language which carries the Object Oriented tag but can be developed fast. It is ok if it is less efficient as long as it’s easy to use and fast to develop. So they killed the class concept which required a lot of effort and time. They did this by calling everything a class in their Java language. They used it in synonym with a process. Since everything is called as class, people no longer had to spend time or effort in identifying classes. And then there were two most difficult and effective techniques in programming, Memory Allocation, and Multithreading. They told that you no longer have to worry about deleting memory. They said that Java would handle it internally. Since it had to keep the people in illusion that they’re using dynamic memory, they gave them the “new” operator but no “delete” operator. Even for normal variables, you need to use “new” operator in Java. Sun must be laughing now to see how easy it was to fool people, software engineers!! And then it gave some thread libraries to handle multithreading. And the rest is history!!
0 comments:
Post a Comment