My humble (and I hope not too heretical) opinion is that the glut of methodologies and orientations today are more indicative of failure than success. In fact, many seem to be quite directly about "fixing" OO in one way or another, generally by extending OO with additional concepts. But, I think that instead of succeeding in adding new and better modelling techniques, they mostly succeed in hiding existing failures in different ways.

Simply put, OO has a very limited area of truly successful application, that being the area it was originally designed for: Simula(tions). Take a look at the application examples in Booch's original "Object Oriented Design with Applications" (1991). Four of the five case studies presented are simulations at heart (and it is no mere accident or coincidence that this is so): Home Heating System, Optics Construction Kit, Cryptanalysis, and Traffic Management System. The one that most closely resembles a business application, the Problem Reporting System, is the one that has the most semantic difficulties between the application space and the OO modelling space and requires significant bridge work.

OO as a modelling technique just doesn't map very well onto many common application domains. Enter Role Oriented design, Aspect Oriented design, Ontology Oriented design, etc., and the additional syntactical and semantical constructs they bring to OO programming. If you read research papers in these areas you are struck by the fact that the authors seem both excited at the prospects of further research in the area, but less than satisfied with any of the current results in terms of practical application.

To me it seems as if OO is the Ptolemaic programming model and the current flurry of design and programming techniques is a struggle to add new and different forms of epicycles to try to fix the model, or at least bring better coincidence with reality. What amounts to the Copernican model has probably lain quietly unrecognized for quite some time (much like a real heliocentric model was put forward by Aristarchus in 250 B.C., some four centuries prior to Claudius Ptolemy's 'The Almagest' effectively laid down "The Model" for over a millenia). It is impossible to predict when, where, and who will bring forth the Copernican revolution, but my bet is it will happen within the decade.


In reply to Re: (OT) Terminology Oriented Programming by Anonymous Monk
in thread (OT) Terminology Oriented Programming by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.