Octavian Râsnita wrote:
*From:* Rolf Banting <mailto:rolf.b...@gmail.com>

    > Functions are first class citizens in Perl - so you get
    functional programming built in. You don't in Java.

Even the newer perl modules on cpan started to use OOP, and I guess this is because OOP is better, even though under perl it usually makes the programs run slower.
Perl's speed, even under oop, is good enough. OOP makes the libraries easier to maintain and extend. You should well be an advocate of good-enough - thats what the php programmers are all about, right?

    > How are standards of OO quantified and compared?

Simple. They should follow the "modern" standards, standards made by those who have the power to promote their way - Sun, Oracle, IBM, Microsoft. This is because if a student learns C#, and learns Java, he will find easier to learn an OOP style similar to that from Java than a way like the one used in Perl.
I can't believe you would say that the particular syntactical constructs used in the object oriented declaration is even slightly relevant to the usability of the language. saying 'package' instead of 'class'? Saying 'use' instead of 'import'? I'm agog. Any language transition involves learning new syntactical constructs for the new environment you're in. And thats the only real difference between The Java/C# 'style' and perl, is it not? THe keyword syntaxes? As for design patterns, perl does them with fewer hoops than the other languages - which is what a learning student needs to learn.
            And anyway, for the beginners, this is not a big problem.
            The biggest problem is that perl is harder to learn. The
            programmers might want to learn a language for a year, and
            get a job, and after this they hope that they will find
            time to learn the chosen language better while they have a
            job.

    Harder to learn than what? Is there any evidence for this?

Yes. Most PHP programmers I know, that also tried to learn Perl told me that PHP is more easy to learn and to use.
And C is easier to use than C++, but you don't see anybody going around saying that they should use C to write enterprise applications these days.

Unfortunately I think some are trying to be written in php.

            > There are very many recent books that teach Perl.

    Why is "recent" important? The language features haven't changed
    much so why would the learning resources?

Because Catalyst is very fast changing, DBIx::Class the same, HTML::FormFu the same, CGI::Application the same, because Moose appeared, but there are no very many books that talk about them (or other modules).
The moment a fast-changing thing is documented, the documentation is out of date. Its a fundamental problem with dead-tree editions of anything. I'm not surprised that there aren't books on these things. Mostly because the documentation is readily available online and anything written is obsolete before it hits the presses.
Perl is great, but I think it will remain a niche language for a long period, even though we know that we can do everything with it. The truth is that we can't do really everything with it. There are applications made in Java that do annimation, graphic games, search engines, and many other things that we can't do only by using perl, without C or other languages.
Yes, we cannot do everything with perl. But that is okay. What is important to remember is what we CAN do with perl. Even when you have a high-performance graphical processor module written in C/C++/Java, the business rules, glue, and associated logic that is not fine-grained performance critical are best implemented in a scripting language just like Perl.

Implementing your application in C++ because you need *some* fine-grained performance critical code is, in my experience, foolish. Yes, implement your critical code in a tight language. But when most of the application just comes down to glue, field name translation, and rules checking - this is better scripted than coded in a compiled language. I've wasted tens of thousands of dollars of my employers time compiling and debugging because of the application's shortsighted architecture put many of the business rules in C++ instead of a script like perl! (it was all the worse because at an arbitrary divider, some of the rules WERE in a not-quite-perl like configuration language - if they had taken it all the way a job of months would have taken weeks) It was quite a mind-blow when I realized that the c++ application that took a gig of memory *per process* to run that I and my coworkers struggled with making behave for so long came down to something that could have been implemented with daemontools, a WSDL checker module, DBI::Oracle, and a passel of business rule implementation classes. (Turns out the windows on that building don't open...)

Playing nicely with other applications is merely a matter of interface definition and integration testing. Well defined specifications and a perl module service can interact with any other. Being able to work with your application because it doesn't take 40 minutes to compile a SQL typo fix is not priceless, but its worth a heck of alot.

David

Reply via email to