I worry that you're combining the worst aspects of C/C++ (convoluted syntax) and Perl (flexability that gets you into trouble when you use the wrong option). One of the cornerstone ideas of Perl is that new tools are optional, and hence can only add to understanding. It seems like there's just an awful lot of overhead, involving a lot of syntax, to get the work done. The API doesn't mesh with Perl's shallow learning curve.

For example, defining data type values for each attribute painfully reminds me of C data types. I'd rather have an API that did the work for me-- the API isn't serving the programmer if the programmer does all their work in the function arguments. For example, you could figure out most data types via the get() and set() functions. If you want to set an object "strict", the object could warn (or prohibit) when an old reference value was changed to a scalar, for example.

I think you need to plan this from a totally different mindset. Don't start from, "This is what C++ says classes are-- how do I implement that?" Start from, "What's the easiest, cleanest way for the programmer to implement classes, and what API serves that purpose best?"

-Ted

In reply to C++ is a step backward by tedv
in thread Idea on a Base class API by dragonchild

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.