Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Damian Conway Talk from July 31, 2001

by lemming (Priest)
on Aug 01, 2001 at 12:35 UTC ( [id://101330]=perlmeditation: print w/replies, xml ) Need Help??

So I got a msg from Ovid asking if I was going to the Conway talk at OGI later in the day. I panic, run around frantically and get myself over there in time. phew! Major ++ to Ovid for alerting me. (And now I know I've dropped myself off perlmongers again. Hurm.)

To echo Conway on Quantum::Superpositions and Conway's Extreme Perl talk, if you have the chance to attend a lecture by Damian Conway "Take it!" It's really kick started my brain again.

Most of the lecture was contained in Perl6.v2.pdf though that is an update to Perl6.pdf which still contains much of the info. You may need to switch back and forth to get everything.
Note all the links on the last page of either. Lots of good stuff there.

I took a lot from this lecture. A lot that had to do with Perl, but some only partially. A nice thought on Kwalitee Control which I think I've now paraphrased into "You can measure how bad something is, but it's hard to measure how good it is." Hopefully, merlyn will post his very strict pragma.

Now at the beginning of the lecture, Damian did say everything was in the Perl6 pdf. Not strictly true, most of the dry stuff is contained there. For instance in the timeline, it doesn't mention beer being invented and that making perlmongers possible. By the the time you read this, he may change "C++ released" to "C++ savagely mauls keepers and escapes"

One thing that was repeated is that a lot of what Perl6 is going to do is already there for Perl5 as a module. However, Perl6 will be faster. And Perl5 is predicted to be viable for at least 5 more years, if not 10. It looks like the mechanism that will allow Perl5 to be run in Perl6 can be extended to other languages as well.

Stuff that made me perk up:

  • Allowing patterns to match incomplete data. Would wait for more of the input stream.
  • "Lexically scoped compile-time selection of parser" which would make use mode quotewords; # someone write it even easier.
  • Switch statement. Most of which is in the Switch module of which 2.04 is now out as of July 30.
  • Perl internals will have more documentation than LotR quotes.
  • Larry wants to see the lexical parser just take one pass at compiling the perl code instead of the probability model of today.
  • Why '.' instead of "->"? No shift key involved. (just a theory.) Concat '.' becomes binary '~' and bit complement becomes unary '^'
  • scalar may go bye as keyword. That should make merlyn happy. :)
  • Overloading (s)printf for your own formatting.
  • format being moved into own module.
  • Threads based on i-threads not p-threads
  • Look at New Sigil Syntax in pdfs
  • Ability of filehandles to be set to "autochomp"
  • Large integers
  • Artistic License 2.0
  • Coroutines
  • Regexes becoming even more powerful
  • Built in types will help compiler to opimize
    (A Binary doesn't need to be treated as a string for example
  • Code snippets that will work as expected in Perl 6 possibly:

  •  (@a, @b) = (@x, @y);
  •  if ( 1 < $x < 10 )
  •  ($x, $y, $z) = <$file_handle> #new syntax for filehandles
  • The filehandle one will work kind of under Perl5, it will suck in all of the file and then hand back the first three lines. Under Perl6 it will just read the first 3 lines.

    One item in the pdf needs correcting
    http://yetanother.org/~damian/Perl5+i is at http://www.yetanother.org/damian/Perl5+i

    Update:

  • Fixed some grammer and spelling.
  • Decided to throw extra info in as well.
  • Replies are listed 'Best First'.
    (Ovid - merlyn should get credit, too) Re: Damian Conway Talk from July 31, 2001
    by Ovid (Cardinal) on Aug 01, 2001 at 23:09 UTC

      The talk lasted for about 4½ hours and that's because Damian was rushing through things. It started with the Director(?) of OGI introducing merlyn who in turn introduced Damian. Even though this was a free talk, everyone who attended received free T-shirts supplied by Stonehenge, merlyn's consulting company. Interestingly, the Director mentioned some of the things that merlyn and his company have done for the Perl community and I think many people are under the misapprehension that Randal contributes nothing but caustic remarks. Not true! Amongst other things, Stonehenge has helped ensure that Damian has the funding to keep running around the world and promoting Perl.

      Also, the Code::Police module was directly inspired by one of the jokes merlyn told while he was there. Now I'm thinking about writing one that tries to 'correct' alternatives to CGI.pm.

      Damian managed to sell me on most of the new features of Perl6 (currying is incredible!) and I'm eagerly looking forward to it. Read the links that lemming provided. Very interesting stuff.

      Some of the features that may make it (that I am really looking forward to):

      • use strict 'system';

        Failure to check the return value of a system call will kill the script. No more "open FOO, $bar;"

      • Protocol modules that will allow open to DWIM: my $homepage = open 'http://www.someserver.com/index.html' or die $!;
      • use modules not on our system.

        We might have a feature that will allow one to use a module that's not installed and have it downloaded from the CPAN, unpacked, compiled (if necessary) and installed when needed.

      • Lazy expressions (I may have the syntax slightly off). func ( foo() is lazy, bar() is lazy ) {...}

        If foo() and bar() are evaluated lazily, they will not be invoked in func() unless they are actually used in the function. Currently, if the output of those functions are passed as argument to another sub, they will be evaluated before func() is evaluated. However, if you don't use both the arguments, this is not necessary. With lazy evaluation, they won't be evaluated unless actually used. Note that this will require people to write tighter code. Messing around with globals in those subs could cause very unpredictable results.

      Cheers,
      Ovid

      Vote for paco!

      Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

        Ack! I went by my notes late at night and forgot to credit merlyn! Shame on me. If it wasn't for merlyn, Damian would probably not of been speaking last night at OGI where merlyn teaches courses. Damian is having a couple days of courses there and if I had the cash, I would be in class right now. My plan of getting someone to hire me for the rest of the week and pay for training just didn't work.

      • use modules not on our system.
      • We might have a feature that will allow one to use a module that's not installed and have it downloaded from the CPAN, unpacked, compiled (if necessary) and installed when needed.

        I'd like the option of having that functionality, but I would hate for it to be default behaviour. It's like having CPAN automatically upgrade your Perl.

        Though that reminds me that Perl6 will have the ability to have different versions of the same module on your system. Which would make upgrading nervousness not quite so scary. Though, it also sounded like Perl6 will be better at DWIM than before as well. Such lines as <code> system("ls") || die "It didn't work\n";<code> will actually work as "expected".

    Re: Damian Conway Talk from July 31, 2001
    by blueflashlight (Pilgrim) on Aug 01, 2001 at 22:21 UTC
      reading the perl6.pdf file made me realize that if the release of perl 6 is not accompanied by the publication of up-to-date camel and llama books, I'm screwed.

        Damian and I talked about that last night after his talk. We both agree that only about 10% of the llama will change, and you can be assured that I'm in communication with my O'Reilly editor about timing that properly.

        The small end of Perl still stays pretty much the same. It's the advanced stuff that gets cooler. If anything, more of the things that you're likely to type will just work right.

        -- Randal L. Schwartz, Perl hacker

    Log In?
    Username:
    Password:

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

    How do I use this?Last hourOther CB clients
    Other Users?
    Others contemplating the Monastery: (5)
    As of 2024-04-19 23:34 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found