Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Slow evolution of Perl = Perl is a closed Word

by Joost (Canon)
on Aug 31, 2007 at 19:46 UTC ( [id://636416]=note: print w/replies, xml ) Need Help??


in reply to Slow evolution of Perl = Perl is a closed Word

# A good IDE, like Eclipse for Java.
An IDE like Eclipse, which relies on static analysis is never going to be good enough for a language as dynamically typed as perl. Perl is just not that kind of language. The syntax is a relatively minor issue (and that's probably saying something).

The only reason it works on Java at all, is because Java seems to be designed from the ground up to have the programmer make extra-double-carefully clear what (s)he expects some object to be and do anywhere that object is used (or even just glanced at).

# Good multi-threading.
Perl's multi-threading is still under development. IMO it's mostly useful because it enables you to use native multi-threaded libraries. I agree it can be a pain to use, though. In any case, threads aren't needed to build GUIs. You can build a perfectly good GUI system using just callbacks/events for instance.
# Standard and rich GUI.
Show me one portable language that has a good modern looking, standard GUI. Tcl/Tk, maybe. Java definitely does not have one. Note that even Eclipse does not use the "Standard and rich" Java GUI, because it's too damn slow and ugly.

Replies are listed 'Best First'.
Re^2: Slow evolution of Perl = Perl is a closed Word
by Anonymous Monk on Sep 01, 2007 at 03:53 UTC
    "An IDE like Eclipse, which relies on static analysis is never going to be good enough for a language as dynamically typed as perl..."

    As I said, Perl 5 in my opinion is impossible to be really parsed without run the code. This is way I still wait Perl 6, that is not so dependent of runtime states to define code.

    "Perl's multi-threading is still under development..."

    I know that! Is also have collaborated to it. The point is that we can’t wait more for a fine multi-threading on Perl. 5 years to develop it is just too much!

      5 years? People have been trying to get decent threading into Perl at least twice that long. Bolting threading onto the side of a language that was developed in a way that is rather antithetical to threading is an extremely ugly task. I doubt you'll ever see reasonable threading in Perl 5 because

      1. I haven't seen over that decade the will to initiate the rather fundamental rewrite that would be required
      2. Perl 6 makes such a fundamental rewrite within Perl 5 even less likely

      A decent threading model was attempted for many years and eventually abandoned as impossible and replaced by a horrid threading model that had a better hope of one day becoming stable, if no hope of ever becoming a particularly good way of doing threading.

      So the hope for decent thread support in Perl is simply Perl 6.

      - tye        

        My gut feeling is that perl 5's threading model is probably the best possible, given all the constraints (i.e. backward compatibility).

        The problem with it, as far as I can see, is that the API is quite terrible (especially the perl side of things; it's probably easier to write complex pieces of a threaded perl application in C/C++). My main problem with it is that there is no common way of creating shared/shareable, object oriented libraries.

      As I said, Perl 5 in my opinion is impossible to be really parsed without run the code. This is way I still wait Perl 6, that is not so dependent of runtime states to define code.

      Perl - like many other "dynamic languages" - is just too flexible to be statically analyzed with certainty. This is not a parsing problem. LISP (which famously has "no syntax" and is completely trivial to parse) has the same issues.

      Consider this:

      my $method = "method_name"; for my $class (qw(Class1 Class2 Class3)) { my $object = $class->$method(shift (@arguments)); }
      Now consider that all the string literals in this code are just strings, and can come from anywhere else, including files, databases, user input etc.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://636416]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2024-03-19 10:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found