On Sat, Mar 27, 2010 at 05:24:00AM -0500, Dave Sherohman wrote:
> tl;dr summary: I'll (++n)th Perl as my primary language. I know it, I
> like it, and, gosh-darnit, it's just fun to use.
Indeed.
> --- cut here ---
> package PRangers::Cargo;
>
> use MooseX::Declare;
>
> class PRangers::Cargo
> with KiokuDB::Role::Intrinsic {
> use MooseX::Has::Sugar;
> use PRangers::Item;
>
> has item => ( isa => 'PRangers::Item', ro, required );
>
> has qty => ( isa => 'Num', rw, required );
> around qty (Num $new_value?) {
> return $self->$orig unless defined $new_value;
> $new_value = 0 if $new_value < 0;
> $self->_clear_calculated;
> $self->$orig($new_value);
> }
> method add_qty (Num $delta) { $self->qty($self->qty + $delta) }
> method remove_qty (Num $delta) { $self->qty($self->qty - $delta) }
>
> has [ qw( mass volume ) ] => ( isa => 'Num', ro, lazy_build );
> method _build_mass { $self->item->mass * $self->qty }
> method _build_volume { $self->item->volume * $self->qty }
>
> method _clear_calculated {
> $self->clear_mass;
> $self->clear_volume;
> }
>
> }
>
> 1;
> --- cut here ---
class PRangersCargo():
def __init__(self):
self.item = PRangersItem()
self.qty = 0
def addQty(self, delta)
self.qty += delta
def removeQty(self, delta)
self.qty -= delta
def mass(self):
return self.item.mass * self.qty
def volume(self):
return self.item.volume * self.qty
> That doesn't feel overly messy to me. How about you?
Python looks more clean and elegant to my eyes, closer to the
pseudo-code. I could show Python to a non-programming accountant or
doctor and they could follow what the code is doing without getting
distracted by arrows, double arrows or dollar signs. I use C/C++ most
of my days to the arrows don't scare me.
> > You just have to accept indentation (white space) matters.
>
> When I first heard about Python, my initial reaction was "I could never
> trust a language with syntactically-significant whitespace."
It smelled funny, indeed.
> When I finally tried Python, I have to admit that, aside from a little
> initial confusion about the rules regarding it, the whitespace thing
> didn't bother me at all. A ton of other things did, though. Perhaps it
> was just lack of familiarity, but I felt constantly hamstrung by having
> to work out how to think like Guido instead of being able to express my
> thoughts directly.
I have to hit the Python manual often even for simple things like list
or string methods while I haven't opened the Camel book in ages. But
those might be quirks of naming things - on the fundamental level,
Python is beautiful.
> I'm not, by any means, trying to say that there's anything wrong with
> Python or that Perl is objectively "better", but Perl works the way my
> mind works, so I like it. Python doesn't, so I prefer to avoid it.
> That's what works for me; YMMV.
Perl is like playing, Python is like working. One is messy and fun,
the other one is clean and revenue producing 8^) Can't have one
without the ooooooother.
Cheers,
florin
--
Bruce Schneier expects the Spanish Inquisition.
http://geekz.co.uk/schneierfacts/fact/163
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20100327/2425937d/attachment.pgp