When I was introduced to functional programming, it felt wrong, and I realized a bit later that it was so because I came from OOP background. Just like people used to other programming paradigms criticise OOP. The unfamiliarity makes us focus on disadvantages of an approach, ignoring its benefits. [Continue]
Does OOP suck? I think it does if you are from a functional programming background. Similarly, functional programming can be Greek to you if you are from the imperative programming background. [Continue]
Some articles that I read about OOP give me a feeling that the dark side arguments are mostly based on the syntax and keywords of the programming languages. The pros and cons of various languages like C++, Java, Lisp creep in while discussing it. Because of this OOP comes out as a rigid set of todos, that in fact have been imposed because of the language. [Continue]
Gavin Bierman and Alisdair Wren published a paper that shows how to add first class relationships to Object Oriented Languages (pdf) (via LtU). At first instant I liked it. In some cases the relationships can be considered to be messages. [Continue]
One of my favorite authors has written on one of my favorite topics. Martin talks about role interface and header interface. A header interface is an explicit interface that mimics the implicit public interface of a class. [Continue]
In my recent training sessions on OOP I kept on stressing that it is more about the concept rather than the multitude of keywords like class, object or interface. Essentially, these concepts can be applied even in a procedural programming language, or a language that does not support OOP through constructs and keywords and enjoy its advantages. Tim Berners Lee pointed to the document Drupal Programming from an Object Oriented Perspective. [Continue]
Some people think that OOP makes software development overweight to pull through. It is not true. OOP is about spending more time with design which can lead to much lesser time on code, lesser bugs and quicker releases. [Continue]
I took a class on Object Oriented Programming (OOP) today for some developers. I had insisted on an early start, which might have been inconvenient for some, like it is for a lot of my friends. But this is what I have for my justification for an early start. [Continue]
I always like to confirm my understandings of the technology world with the real world. I always like to express benefits of technology in the layman’s language. Why? [Continue]
Stable Abstractions Principle (SAP) can be considered to be a corollary of the Stable Dependencies Principle (SDP), which said that packages should depend only on more stable packages. The stability metrics showed that packages were instable if its classes depended on classes in another package. Applying the class design principles, especially the Dependency Inversion Principle (DIP), flexibility is built into a design by introducing abstract classes. [Continue]