Slashdot Mirror


Perl6 for Mortals

horos1 writes: "Hey all, I just ran across an article over at O'Reilly - Perl 6: Not Just For Damians which covers a lot of the negative commentary posted by slashdot on perl6 'featureitis'. Very interesting read, and IMO makes a hell of a lot of sense."

31 of 224 comments (clear)

  1. I still don't see... by gmplague · · Score: 1, Insightful

    I still don't see the "tremendous improvement" of perl 6 over perl 5 in practical use. IMHO nothing has really changed between the two versions.

    --
    __________________________________________
    Take comfort in your ignorance.
    Grandmaster Plague
    1. Re:I still don't see... by AFaus · · Score: 5, Insightful

      Well. Here are some:

      * True OO. This the killer one. Everything will be an object. Core functions will return objects. And you will have a decent (and probably extraordinary) syntax for creating classes. This is something that perl5 lacked, and it was killing slowly perl.

      * Unicode support. Perl didn't have Unicode support, and adding it to perl5 was making everybody crazy. Not having unicode support is something too bad to bear in the age of XML and Unicode-supporting databases.

      * A GC system that sucks less.

      * Real multi-thread support. Perl didn't play well with MT, even worse than python (which forces you to have a global lock for everything). Perl6, on the other hand, will have MT support build from the start, and it will be as good as it can get.

      * A general clean-up of the syntax, which will surely pay off on the long-term.

      * A complete change on the inners. Perl will run on top of Parrot, which is a general-purpose register-based VM for scripting languages. There is the real possibility that in the mid-term languages like python, ruby, and probably many other will target Parrot, and thus getting all the benefits (true GC, real MT, and many others) of Parrot without having to duplicate all the effort.

      This will also give the ability to call Perl modules from Python or Ruby objects from any other Parrot language. Considering the good response that MS .NET has get, I would say that people will love this feature. Or think of having a single mod_perl-like Apache module that can efficiently run Perl, Python, Ruby, Php, without needing a separte scripting engine for each one.

      Perl 6 is important. Please don't let the little details you may don't like make you forget about the fact, that Perl definitetly needed a rewrite, and that it can be a very good thing for the OS community as a whole, not just for Perl hackers.

    2. Re:I still don't see... by hachete · · Score: 2, Insightful

      I see the need for a re-write but, from what I've read, this isn't the re-write it needed. Perl 6 doesn't give me any more clarity over Python than perl 5. All the things you say about Perl 6 I can say about Python but now rather than tomorrow - and Python still has far less syntactic sugar than perl 6. I'd say, on the evidence I've seen so far, that Perl 6 -still- doesn't hack it.

      I'm a long-time user of perl - one of those who defected to Python, in my case, mostly because Perl 5 OO really doesn't go the full hog - it still clings to Perl-4 type syntax - and your're left with what looks like, and feels like, a kludge:-( Going to Python seems a better use of my resources than re-learning perl, if I'm to learn another language.

      What is it with Parrot? Why can't we stick to the JVM? There's already an experimental perl project for this (lingo?) and there's Jython - python for Java. I'd don't see the need for Parrot. Why re-invent the wheel?

      Sure, the JVM might not be as ethically pure as Parrot but I'd want to bury the hatchet with Sun (or do a clean-room implementation of a JVM, just as MS are doing) if I wanted to beat .NET. I figure inventing YAVM isn't the way to go. Go with what's already successful rather than pouring effort into something new, untested, untried, with yet another round of bugs and promotional effort all round. Reinforce the positive rather than reinvent the wheel, IMO.

      --
      Patriotism is a virtue of the vicious
    3. Re:I still don't see... by Anonymous Coward · · Score: 1, Insightful

      > True OO. This the killer one. Everything will be an object.

      ... everything will be an object, or a string, or an integer, or anything, or nothing at all. It isn't really decided what stuff is until the last possible moment. Weak typing is one of the big disadvantages with using Perl, IMHO.

      But it is a big improvement over the ad-hoc OO in perl5 in any case.

      > A general clean-up of the syntax, which will surely pay off on the long-term.

      Perl is known for it's ghastly syntax, and a cleanup is definately in order. Still, perl6 doesn't really provide that clean syntax that Python, for instance, has.

      > This will also give the ability to call Perl modules from Python or Ruby objects from any other Parrot language.

      This is a killer! Even if one doesn't like programming in Perl, one can use legacy Perl modules through the Parrot interface from other languages.

      -- Helber Travinsson

    4. Re:I still don't see... by Anonymous Coward · · Score: 1, Insightful

      I already use Perl 6. It's called RUBY.

  2. Perl 6 is the way forward. by Anton+Anatopopov · · Score: 5, Insightful
    Why is it that people dislike change (read: progress) so much ? Its not like anyone ever said 'perl is perfect - leave it just the way it is'. So why all the sad faces when Larry tries to improve on what is already a great language ?

    If you don't like a particular feature of the language don't use it. After all, the motto of perl is 'there's more than one way to do it'.

    It seems to me that we should be praising the perl developers for perl6, not criticizing them. And I bet most of the moaners and whiners never wrote a line of open source code in their lives.

    1. Re:Perl 6 is the way forward. by ajm · · Score: 2, Insightful

      I agree, and strongly. Bolting functional features, and elisp is not a functional language IMHO (look at Haskell instead for example), onto perl looks silly. As for some of the syntatic sugar, such as that "hyper" operator, why bother? I use perl, I've even used perl professionally as the only language on a large website project, and for programming in the large it sucks. Give me Java, which is no longer bloated and slow, any day if I have to do programming involving distributed systems, message oriented middleware, or any of the integration work a project always ends up needing.

  3. Re:Just what Perl needs - more syntax by Anonymous Coward · · Score: 0, Insightful
    1 word : CPAN

    Sincerely, Mike Bouma

  4. Re:Is it really. by elflord · · Score: 4, Insightful
    Oh yeah? I don't like Perl6's object-orientedness. Could you be so kind as to tell me how can I turn that off? Yeah, I thought so


    He didn't say "turn it off", he said "don't use it". Perl is perfectly usable without creating packages.



    Now can you please tell me why the fsck do I need a full-fledged object-oriented language to write scripts for cron jobs and CGI?


    You don't. So don't use objects. I use perl as a drop-in replacement for bash script all the time, and it works just fine. I don't see how perl 6 is going to change that.



    From what I could make of Larry's "Apocalypse", perl6 is going to be the next fsckin' Java. Bloated, slow and useless.


    Perl has very little in common with java.

  5. Re:Just what Perl needs - more syntax by elflord · · Score: 2, Insightful
    Why anyone uses Perl is a mystery to me.


    Because it's useful.



    If you
    want to do scripting use shell script+awk. If you
    want to write a proper app use C/C++.


    This is a false dichotomy. Not everything is neatly classifiable as "scripting" or a "proper app". As for using shell script, it doesn't work very well when you need to use pointers (and awk, iirc), which rules it out for most nontrivial tasks. Also, neither shellscript or awk have the same available libraries as perl.

  6. Re:Messing things up or using Perl for what it fit by elflord · · Score: 5, Insightful
    The bottom line is that Perl is simply not the right tool for general programming purposes.

    Says who ? If you don't use it for "general programming purposes", you're not in much of a position to make such a judgement.

    Perl code can be readable and maintainable if it's written in C style and deliberately excludes the more esoteric features of the language.

    It's disingenious to call the OO support in perl a "more esoteric feature" of the language -- nearly all the modules use it. If you use the modules, you're not really using a "C-style" any more, because you're using perl OO code.

    For anything else, and any "serious" - i.e. complex - programming, pick C/C++ or Python.

    You're getting bogged down in false dichotomies, and arbitrary/absurd classifications. What if you want to write a shortish (~1000 lines) program that leverages an existing module , and the program isn't a drop-in shellscript replacement ? And what if there's no such module for python ?

  7. What's wrong with you people? by shaka · · Score: 5, Insightful

    I know I'm going to be modded to hell for this, but here goes:
    What's wrong with the people posting to /. in this day and age? It wasn't that long ago that it actually was worthwhile to read people's comments here, but nowadays I mostly see my "threshold" going up, up, and not wanting to stop. I saw this article and thought "Wow! A nice, positive article about Perl 6 on my fave site /. which uses Perl", you know. And then I read all these pointless, silly and sometimes even mean comments about how baaaaaad Perl 6 is, and how everything Larry has done is wrong and screw Perl 'cause it's a sucky language, I use {Java|Python|New mega-exciting superlanguage} instead.
    So do that.
    Personally, I think Perl is the "Nike-language": Just Do It. When I want to code in C or C++ (I like C, I'm not too happy about C++) I always have to do all these things first. Look at man pages all the time, worry about casts and memory allocation and what not. When I do something in Perl I just do it. I find the modules, write some code, and it works.
    And that's worth a lot.

    --
    :wq!
  8. Re:Is it really. by jdavidb · · Score: 3, Insightful

    Despite some rumors, Perl 6 will not force any one to use or learn OO. There will be a lot for OO users to like but, like Perl 5, OO will be entirely optional. I was involved in the very, very early days of Perl 6 (I wrote about 3 RFCs), and this has been a design guideline that nearly everyone shared. I learned OO slowly and from Perl 5 (not C++ or Java, surprisingly), and I wanted to make sure that no one was forced to use any OO at all. There should always be More Than One Way To Do It.



    Perl 5's current filehandles are a little bit like objects, and Perl 6's will be a little bit more like objects. That's as object-oriented as you will ever have to get.



    I write CGI programs every week using the excellent, object-oriented CGI.pm module. This module, like Perl 5 and Perl 6, gives you a choice of OO or procedural programming, and I have always used the object-oriented way. In fact, it seems much easier to me. But, I understand where you're coming from. Before I completely learned OO, I was glad to be able to take it or leave it. Now that I know it and appreciate its advantages, I'm still glad to take it or leave it. :-)



    By the way, your point would be better without the four letter words. But, that's par for the course on slashdot. Sigh.

  9. Re:Just what Perl needs - more syntax by taliver · · Score: 4, Insightful

    I know this was stated a bit more elegantly by another responder, but I thoughtg I'd point out some personal experience.

    I used to be a die-hard C-only fan. I coded everything in C. Then I had to start scanning logs for certain patterns and keeping counts. Unless you find the right libraries, this is painful to write. Then I was introduced to awk.

    Wow. Awk did seem like the tool to use. It had the matching strength I needed, and that seemed good enough so I wrote around 20 little awk scripts through which I'd pipe my data to get one thing done, and then another thing done. What I found was that awk wasn't very nice when it came to repeating files, or simply storing entire files in arrays for later processing.

    Then a friend showed me Perl. All those little awk scripts seemed pointless. I have made a different dichotomy in my mind: if I want to do something very numerical on a large set of numbers, I use C. If I want to do something involving lots of strings (and I don't need to manipulate on the byte level very often), I use Perl.

    Now, I have had people try to introduce me to Java, and to Python, but I really cannot see how Java makes a numerical C program easier, or how it makes a stringy Perl program easier.

    Just my little experience.

    --

    I demand a million helicopters and a DOLLAR!

  10. Perl is like Juggling by dannyspanner · · Score: 5, Insightful

    It took me ages to learn to juggle but now I can keep three things up in the air instead of two. It took me a fair ammount of time to grok Perl but now it lets me be very productive. Complicated things take time to learn, so don't write it off just because it doesn't look (or think) like C/C++/C#/Java. To the people saying "use C/C++/Java for proper apps" it's like saying "don't build your house from wood, you must use bricks".

  11. Re:Perl 6 is the way forward - Fat Chance by jhascall · · Score: 2, Insightful
    If you don't like a particular feature of the language don't use it.

    It must be super to live in a world where you never have to maintain somebody else's code!

  12. Fear Not: Pick and Choose by airuck · · Score: 5, Insightful

    Why all the griping? Am I also supposed to feel inadequate or frightened because I've not mastered Perl 5 and am now faced with Perl 6? Afraid not. I may not be a Perl wizard, but my scripts do some heavy lifting.

    As a biologist turned bioinformatics programmer, I find Perl to be a fantastic tool. Bioinformatics Perl = string processing and glue. My Perl scripts move LARGE numbers of sequences in and out of Postgres DBs, feed and clean up after a variety of open source tools (written in C, python, tcl, and perl), serve up web based tools, and all within a clustered linux environment.

    I openly admit to cracking the camel book and visiting cpan on a regular basis. I do this not because I'm a slave to a complex language, but because I find Perl and its associated community to be a rich source of tools. I harvest what I need to get the job done now.

    --
    First entomology, then virology, and finally bioinformatics systems. Bugs follow me wherever I go.
  13. You can still use perl5 or perl4 by FocaJonathan · · Score: 2, Insightful
    Don't like change? Don't like perl 6 (or perl 5)? Perl 4 is still available, still free, still open source.

    http://www.cpan.org/src/unsupported/4.036/

  14. Parrot will be pivotal in years to come by Ars-Fartsica · · Score: 3, Insightful
    The creation of Parrot will allow for more languages, and better performance. It is pointless for the numerous language development teams to duplicate VM coding efforts - Parrot will allow them to treat the VM as a blackbox, running on any platform and providing solid fundamental functionality.

    I am personally looking forward to the creation of much smaller Parrot-based languages that truncate their syntax set and functionality to truly see how far into the realm of performance we can push VM-based languages.

  15. Re:What's wrong with you people? (MOD PARENT UP) by Christianfreak · · Score: 5, Insightful

    I agree. And the funny thing is that perl is not at all hard. When I first started serious programming I tried learning C and I dabbled in Java but I just couldn't *get* it. And then I discovered Perl and everything was right with the world.

    Don't like the crazy symbols? Don't use them! Other than the $ @ % you can get by without using things like $_. And I'm sure with perl6 you won't have to use $^ if you don't want to. There's more than one way to do it. AND to one guy stated in an earlier comment that he couldn't read his own Perl after just two weeks -- don't whine comment your code.

    A lot of people use and love perl, there's no reason to flame it even if you don't

  16. Re:dear GOD by j7953 · · Score: 3, Insightful

    Readability has nothing to do with how complex a syntax is. I'd agree if you say that Perl has one of the most complex syntaxes, but I'd disagree if you say that makes it harder to read.

    To give you an example, here's a small program written in Parrot assembler, which, being an assembly language, has a very simple syntax with few operators:

    set I1, 0
    set I2, 20
    set I3, 1
    set I4, 1
    REDO:eqI1, I2, DONE, NEXT
    NEXT:set I5, I4
    add I4, I3, I4
    set I3, I5
    print I3
    print "\n"
    inc I1
    branch REDO
    DONE:end

    Is this program easy to read? Did you find out what it does? Probably not -- it's characters might be more readable than Perl's, but it's not really readable since you don't easly understand it's meaning.

    Readability is the combination of making it easy to understand what's going on in each single instruction, and making it easy to understand the algorithm. Understanding instructions is simple in Assembler (few, simple operators), but harder in Perl (what the hell does this operator do?). Understanding the algorithm is easier in Perl and harder in Assembler.

    Somewhere between Assembler and human language is your personal preference and treshold for readability. For me, Perl is still readable while Assembler is often not. For others, Perl looks like a collection of junk characters.

    That's ok, just don't judge the quality of a language by how it looks to you.

    (BTW, the above parrot program prints the first 20 fibonacci numbers. I found it here.)

    --
    Sig (appended to the end of comments I post, 54 chars)
  17. Re:Messing things up or using Perl for what it fit by mikosullivan · · Score: 4, Insightful
    most Perl code that uses advanced/obscure features already does

    I'm preparing a presentation on Perl for my coworkers right now and I address this issue. It's my position that Perl's reputation for ugliness "comes mostly from fancy-pants Perl hackers showing off their obfuscation skills."

    I use an actual example of code that someone used to "prove" that Perl is ugly:

    #!usr/local/bin/perl
    #
    $_ = <STDIN>;
    chomp;
    s/(^|\ )([a-z])/\1\U\2/g;
    print "$_ \n";
    exit;
    Actually, that's just lousy coding. The following code, which does the same thing, is much better:
    #!usr/local/bin/perl -wT
    use strict;

    # grab a line from STDIN, chomp off the EOL
    my $input = <STDIN>;
    chomp $input;

    # change first letter to uppercase
    $input =~ s/(^|\ )([a-z])/$1\U$2/g;

    # output it
    print $input, "\n";
    In answer to the inevitable question "why is it better?", two reasons. First, it uses warnings, strictures and tainting which strongly channel the programmer towards writing robust, secure code. Second, by using well-named variables and comments, it's clear what the program does and how it does it.

    Perl does provide the freedom to write lousy code, perhaps even more so than other languages, and many programmers use that freedom. That's one of the side-effects of freedom: people will make choices you disagree with.

    There is a movement afoot in the Perl culture to shun bad programming ... that's also how freedom works: if enough people don't like something, social pressure reduces it. For example, if the author of the exmple above were to post the code in comp.lang.perl.misc asking for help, he/she wouldn't get much help beyond "use strict and warnings" because those techniques are regarded as essential to any Perl programming and people won't help you if you don't help yourself (again, that's how freedom works).

    IMHO, Perl is the language for "general programming purposes". Don't let some lousy coding throw you off on this point.

    --
    Miko O'Sullivan
  18. Hammers, nails, etc by Balinares · · Score: 4, Insightful

    Just wondering...

    Programming languages are tools. Trying to nail a screw with a hammer and trying to write a CGI script in Java are two instances of the same problem (the latter generally of managerial origin, it would seem *sigh*). Right?

    So. Is Perl6 the same darn fine '(formatted text -> data) && (data -> formatted text)' tool Perl5 is? If so, then it's great. Don't whine, you'll get used to the new syntax. (Note, I'm not a Perl junkie, so my appreciation of its aim as a tool may be inaccurate, I'll admit)

    I'd be more concerned if the aim of the language itself shifted significantly. The mention of Python in the quote, "Yeah, and Perl 5 doesn't give us anything that a Universal Turing Machine, Intercal, or Python don't." makes me pause. Python in the same bag as Intercal. Hmm. Resentment? I hope Perl6 isn't trying to compete with Python out of resentment. That'd be stupid -- both languages rock, each in its own ecological niche (which don't seem to overlap much, BTW).

    Bottom line: if Perl6 is a better (faster, more flexible, etc) tool for the same task, well, the new syntax is no big deal. However, if it starts undergoing featuritis just to compete with different tools, I'd start to worry.

    Anyone care to enlighten a total Perl novice?

    --

    -- B.
    This sig does in fact not have the property it claims not to have.
    1. Re:Hammers, nails, etc by EvlG · · Score: 3, Insightful

      I think that comment in the text of the article was intended more to point out that there really isn't a whole lot to add to a language besides syntactic sugar, since perl is already Turing-complete.

      I don't think the author intended for a comparison out of resentment.

      As for featuritis, what's wrong with looking at other languages, seeing what they did right (and wrong), and then learning from it? It's how the body of knowledge grows. Perl borrows bits from other places and perl-ifies it. Then at some point in the future, other languages borrow from what perl did, and improve upon it. The result is a cycle of improvement and innovation.

      I love programming in Perl for many reasons; one of which is the lingustic aspects Larry designed into the language. If more features are added to make my use of perl more efficient, I'm all for it!

  19. Filehandles by Erik+Hensema · · Score: 4, Insightful

    Are they're going to implement filehandles properly? I want to be able to do:

    my $fh = open $file or die;

    Because right now implementing a recursive function which opens a file is... odd... wrong... ugly:

    Example snipped because of lameness filter.

    (from man perlfunc, the open function)

    Having to pass a string as a filehandle and manually incrementing it is just plain silly. Filehandles shouldn't be global. IMHO they just should be a reference or something similar.

    Furthermore, the use of '$| = 1' to autoflush a stream is ugly. Why not 'autoflush($handle)' or something similar?

    I do know about the FileHandle module. This module is proof that regular filehandles are too ugly. You shouldn't need the FileHandle module to be able to do basic filehandle stuff.

    --

    This is your sig. There are thousands more, but this one is yours.

  20. Comment from a real PERL programmer by LunaticLeo · · Score: 3, Insightful
    I program large complex programs in perl. I use OO Perl all the time. I write small once off scripts in perl as well.

    Some of this Perl 6 stuff scares me too. Mainly because I think perl can be abused to write bad code. I am thinking stuff that is REALLY obtuse. I've seen code with $|++. Which is stupid. Because if $| == 1, then the code doesn't do anything and the inverse $|-- fails to achieve your purpose when $| == 2. STDOUT->autoflush(1) is the clear way to write it.

    Just because dumb-ass "programmers" CAN write obscure code in perl, doesn't invalidate the value of Perl. Any language with expressive power is vulnerable to having "Obfusicate-X" contestants write programs in that language. A wise quote: "Fortran programmers can write Fortran in any language".

    Perl 6 is looking to be the exact opposite of LISP. In my view, LISP has little or no syntax; just Lots of Incessant Silly Parenthesis. Well it looks like perl 6 is going to be nothing else but syntax.

    This might be valid perl6:

    %b{@a} := ^-x @a ^_ '.c';
    I like perl by this might be to much for me.

    Of course the real reason I use perl is two fold; it's expressive power (unlike bondage and discipline languages) and CPAN (the killer feature).When I look at other languages like python or ruby, I look for their CPAN equivalent. Right now their is none, but maybe soon.

    BTW, for the JAVA fans out there the following url is the same code as:

    $/ = undef; $wc{$_}++ for split(/\W+/,); print($_, " = ", $wc{$_}) for sort keys %wc;

    48 lines (took out comments and empty lines) versus 3.

    BTW, This is as obfusicated as my code gets. I did it mostly for brevity.

    --
    -- I am not a fanatic, I am a true believer.
  21. perl motto summararizes its fatal weakness by kleene_star · · Score: 4, Insightful

    Have you noticed how many times the perl fans reiterate "isn't this cool, but of course you don't need to use it." "There's >1 way to do it."

    Now I like functional programming as much as the next guy, but "There's >1 way to do it" is actually a symptom of the problem with perl. Yeah, I don't have to use the object-oriented triple-ended-pipe closure-thingeys so handily represented by $_?:^, but the last guy who worked on the code I'm trying to maintain now, did. So I'm stuck using (or dealing with) them whether I want to or not. When I interview a programmer I can't just ask, "Do you know Perl?". I have to probe just what subset s/he knows.

    In my ideal programming language, there is exactly one program that solves each problem. That limits my search space while I'm trying to find it.

    1. Re:perl motto summararizes its fatal weakness by maraist · · Score: 3, Insightful
      In my ideal programming language, there is exactly one program that solves each problem. That limits my search space while I'm trying to find it.


      This already exists.. It's called CPAN. :) All kidding aside, I disagree that perl's crypticly compacted syntax is a search-space problem. What you are instead searching for is to update someone else's solution-space. Imagine, for a moment that you're company decided to use some 3'rd party java module (such as a logger). Now what if one day you found that it had a bug.. Or worse yet, you needed a new feature that wasn't implemented. Well, if it's closed source, you contact the vendor and keep your fingers crossed. Unfortunately if it's a bug, you might have a headache trying to find out what happened, where the bug originated, and even if the 3'rd party module was at fault.

      In open-source (as with almost all perl), or when the 3'rd party was via another developer within the company, you at least have the option to trace through the code. Now most developers have to make some assumptions. These assumptions SHOULD be documented somewhere, but even when they are, the location of that documentation isn't always known. Perl again comes to the rescue with pod-documentation (similar to javadoc inlined documentation). You can put the description right next to the relavent regions, and at least in the relevant files. But, as we all know, developers are lazy and thus the added work of thourough documentation (in both java and perl) is lacking.

      Now if you're proficient with the perl-code basics, then you have all the tools that you need to trace through a perl-module (or executable). Perl is highly context-sensative (name-spaces can be dynamically changed), arguably you have your work cut out for you (when it happens that sufficient documentation on such subtlties were not noted). The same can be said about java and package-spaces. There are tricks and tweaks a developer can do to perform efficient "magic" which is incomprehensible to an outsider (at least at first glance).

      But to alleviate your problems, we have the debugger, which allows not only real-time inspection of the context, but thanks to the magic of late-binding, you can modify the context on the fly (importing new symbols, redefining old ones, etc, adding ad-hoc test routines). Java / C can't do this.

      So yes, it is "harder" to debug / update someone else's code when they programmed above your level of proficiency. But if they were indeed more sophisticated developers they'd document their "magic". And if you weren't proficient enough to at least utilize the analitical tools at your disposal, then what are you doing modifying someone else's code?

      -Michael
      --
      -Michael
  22. A rich vocabulary and sophisticated syntax is good by nagumo76 · · Score: 2, Insightful

    Perl is a richer, more sophisticated language than those so-called heavyweights like C++/Java ( both of which I have used extensively. ) The 'funky' syntax, and 'strange' punctuation allow for more expressive and concise forms than in languages that force one way of saying something.
    I use compound words all the time in speech, or even the occational big, or high falutin' word. Used with some judgement, using a wider vocabulary in discourse ( or in code if you are using a language that supports it ) makes you easier to understand. If someone doesn't know what you are talking about let them look it up.

  23. Okay, I'll bite. If your organization is so weak by Dast · · Score: 3, Insightful

    that you can't institute coding standards, then yeah, stay away from perl. And from C, C++, java, lisp, etc etc etc. Unreadable code can be written in any language. But I say fix the real problem; gather your developers and put into place a set of coding standards and hold code reviews.

    Perl isn't your problem, your organization is--try fixing it before you worry about features in language X.

    And remember to use the language element that when done right makes any code readable: the comment.

    --

    This sig is false.

  24. Re:A rich vocabulary and sophisticated syntax is g by Peaker · · Score: 3, Insightful

    A rich vocabulary increases compactness. A richer syntax increases compactness.
    While Perl offers a rich vocabulary, how is its syntax any richer, than a language that would allow representing anything Perl does, but forcing some specific readable representation?

    Example: Is a language supporting: if a b;
    and if b a; as two ways of saying the SAME thing, is it any richer than a language that supports if a b; alone?

    The so-called richness of Perl syntax is merely duplicated syntax, increasing parsers' complexity (including the human parser), and do not compact the code.

    In fact, the much stricter Python language can usually represent Perl code with fewer characters/lines, and still remain a lot more readable, etc.
    This is because Python has a very rich, yet small syntax (probably richer than Perl's, as shown by the fact its more compact, usually), and a very rich vocabulary (libraries/modules/etc).