You oversimplify myself. OO is perfectly fine in most languages, it is the Java theory of it (as well evidenced by the confused Sun API) that I dislike. This is not OO=bad, but OO Overload = bad. I've written some very nice C++. I generally like it. STL goes a little overboard, but I can tolerate it. You can still mix concepts, and for that, the language remains flexible.

n order for programming to progress to the next natural level ( i.e programs writing programs for programs ) rather than simply getting bogged down with delivery systems, content management, and business logic, the code itself must be capable of encapsulation in order to managage the complex relationships that need to exist.

You misunderstand. I was *never* debating "encapsulation". I myself work on "large scale" (URGH) enterprise management software for major OEM's. Very large scale. Mission critical. Yes, I can fry your data for you. Java apps of huge behemoth size.

Anyhow, 'encapsulation' isn't the end all beat all -- it's a subset and/or implementation of more important concepts 'abstraction', 'isolation', and 'modularity'. These abstractions need not be defined by classes, but rather, they can be defined by data, for after all, objects are but a way of grouping methods with data that applies to that data. This is often a mistake junior programmers make. They are taught 'encapsultion', 'inheritance', and so on as chief concepts (and can repeat the word verbatim), but they miss the aim of such concepts. Interfaces have been defined (albeit not cleanly) with function pointers and structures for a long time before OOD became more PC than other forms.

Do you really think the folks at Sun got up one day, smoked a dubie and said, "Whoa Dude.. Lets right a really complicated fat language that seems intense... cuz if its fat and complicated everybody will think its cool man...

No, I think they tried to commercialize a failed embedded language that also failed for browser applications. I've been using Java since 1.1.7. There is no grand vision....it's all tacked on. They hit gold with the app servers, IMHO.

n order for programming to progress to the next natural level ( i.e programs writing programs for programs )

Back to your original item, this is A.I. land, I'm not sure why it entered the discussion. Historically, A.I. has lent itself towards functional programming (Lisp, Scheme). O.O. is fine, I like it, and it can be used combined with A.I. concepts -- however, I should point out, 'programs writing programs' has little to do with a need for 'encapsulation'. Again, the "shotgun" metaphor can be brought up.

Once folks write getter and setter methods for everything, through in a few static accessors (cough...PC globals), or chain objects such that an entire object tree is accessible...essentially encapsulation is just an illusion. It's just harder to get what you want, but you can get it. And if you need it, you'll code in a way to get there. 'encapsulated' interfaces can still cause huge ripple affects with changes, they rarely get isolation & modularity correct -- which are concepts that are not OO specific.


In reply to Re: Re: Re: Re: ^3 OT: JavaJunkies (Javamonks sorta) by flyingmoose
in thread OT: JavaJunkies (Javamonks sorta) by coreolyn

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.