[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-talk
Subject:    [ruby-talk:29896] Re: Ruby/Python: Software Engineering
From:       Mathieu Bouchard <matju () sympatico ! ca>
Date:       2001-12-31 21:42:10
[Download RAW message or body]


On Tue, 1 Jan 2002, noone wrote:
> [...] commitment to "software engineering practices/methodologies".
> [...] Software Engineering Practices/Methodologies include:
>   Designed from the "ground up" for readability

The most readability comes from people who understand what they write, and
the language in which they're writing it, and use appropriate
abstractions. Bad readability comes from sweating the little stuff, and
forgetting the big picture.

>     Enforced indention (you indent your own code I bet)

That's a nice feature to save writing "end" all the time. But not having
to write "self" all the time is much more important to me.

>     { @No #line $noise }
>     No short cuts ($!, $%, etc)

Ruby's sigils convey meaning, therefore they are not noise. Perl's sigils
are closer to useless because "$" occurs way too often in situations where
you couldn't write anything else than "$".

Programming is essentially made of shortcuts. I think the art of concise
expression is something that should be understood and mastered, not
feared. But I think half of the Perl-inspired shortcuts are no good.
Example of good Perlish "shortcuts" would be && || &&= ||= operators.

>   Documentation a priority from the beginning
>     docstrings (at all)
>     docstrings (as properties)

Docstrings are nice, and Ruby doesn't have them. I'd like them to be
there, but this is far from being a priority to me.

Meaningful, structured code is still more important to me, which is why
I'd vote Lisp-style method-combinations as much higher priority on the
list of things I'd add to Ruby.

________________________________________________________________
Mathieu Bouchard                   http://hostname.2y.net/~matju

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic