Quoting [EMAIL PROTECTED]:
:I'm choosing a new language only if is suitable for most of my tasks and
:these range from the 10 line script up to several million line project.
:Currently Perl is rather capable for any small scripting task but it's
:out of questions if there are more than 2 person involved or the line
:count goes above several hundreds (maybe thousands). And this is only
:because to much time is lost in understanding what all the other code is doing.

The current project I'm leading at work is a 18000 line of perl application.
Yes, 18_000, and that's only pure lines of code, with comments and blank
lines not counted.

It's very maintainable, but then, it's using strict OO programming, which
tends to encapsulate things well, and I have imposed the "programming by
contract" methodology to make things scalable in the large.

When I say strict OO programming, I mean:

* Use explicit plain perl -- not "use base", "use fields" or things that tend
  to hide extra processing under the hood that rises the overall complexity
  instead.

* Have explicit access routines for every attribute, and never dereference
  attributes explicitely.  That is, say:

           $o->attr

  and NOT:

           $o->{attr};

  There are also explicit ->set_attr() routines for all attributes that
  can be set.

* Most methods specify a contract with explicit REQUIRE and ENSURE clauses.
  The code also uses ASSERTs in places.

* Use modules like Getargs::Long to have long argument names for routines that
  take more than, say, 3 args, especially for creation routines.  This also
  allows type checking.

So no, your argument does not stand as it is!

I've seen people do horrible C-like things in "clean" languages like Eiffel,
and people do *very neat* things in C, or, more often, Perl.

Raphael

Reply via email to