Edit: I know I'm not the first person to say any of this. In particular, the immutability
topic is huge, and its proponents have good arguments. I just don't think they're as universally
applicable as some do.
A couple armchair thoughts about where I think Corinna MVP design is too
opinionated, bearing in mind that it is an MVP. (I’m more interested in
thinking about the larger philosophical issues than quibbling about the MVP
proper. I’m nobody, I’m not working on Corrina, I’m not trying to change
Corinna.)
Only supporting v1.2.3 triplet semantic versioning. It seems to me
there are two main versioning patterns among Perl modules: v-string-like version
triplets (semantic or not), and decimal numbers like 1.23 (e.g. MAJOR.MINOR
where both are integers of arbitrary size, usually small). I understand not
wanting to support every variation in Perl module versioning. However, there’s
nothing wrong with decimal, and if it’s not the most common method it’s surely
close. I don’t think Corinna has to translate one to the other, just support
both styles on their own terms and croak if something tries to compare
v1.2.3 to 1.23. Not supporting decimal numbers right off the bat seems like
a gratuitous incompatibility.
No native way to support read/write accessors. (Yes, I understand you
can make them with methods if you want them even now.) I wholeheartedly reject
that mere use of a read/write accessor is necessarily a “code smell”. It’s a
natural way to program and in itself is neutral. (You have to train yourself to
think in terms of immutable objects; I’m pretty sure it’s the training that
makes most of the difference in the end, not the immutable objects, or separate
accessors, or what-have-you.)
That said, not allowing it does prevent certain mistakes when having to
program it manually, but the whole point of a framework is so we don’t have to
program it manually. Multi-method dispatch would be cool, but it’s still a
cop-out.
I suspect that if Corinna is a success (and I truly
hope it will be) those things will be added, the MVP spec notwithstanding. I kinda
doubt it’ll get into the Perl core otherwise.
Neither issue dampens my excitement about the project as a whole. I very
much look forward to using version 2.0. :D
– Aaron Preliminary operational tests were inconclusive. (The damn thing blew up.)
-
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.
|