Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
OOP is not a solution for all problems, nor is shunning it and using functional programming a solution for all. Sure, nearly every problem can be solved in both, but one may be easier than the other to write the code for, or it may be equally easy.

The way I look at it, think of your problem and try to work out if object patterns fall out of it immediately. Things like business transactions, GUI elements, and the like will naturally be suited for OOP, while more rigorous low level tasks like network communications, file manipulation, and the like, are best done in "step a, then step b, then step c...". If you cannot easily recognize a good object structure within a few well-spent minutes of thinking on it, then it's probably better to avoid using Objects all together and stick to functional programming.

This is not to say that after you've gotten the meat of your functional program in place, you cannot provide an Object (which could be as simple as a Module) that can be used to wrap these functions in an object framework. From some that I've seen, a good number of CPAN modules are of this type, where you have a few module-level functions that do a task and include some properties setting, but there's a lot more hidden away behind the scenes, thus acting like a true OOP object.

update typo fixed


Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain

In reply to Re: Hacking with objects by Masem
in thread Hacking with objects by frankus

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



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-04-23 07:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found