All sites 4shared
Mega
Torrent
Mediafire
Uploaded
Filefactory
Relevance Popularity
Date
Size
Any size
From
To
Searches related to perl
- programming perl 4
- perl 5 8
- perl essential
- linuxcbt perl programming
- perl gina
- perl collection
- rapidshare perl
- on perl perl for students and professionals
- building a data warehouse with mysql and perl
- perl 5 rar
- perl edition
- alfredo perl
- perl 5 complete
- programming perl wall rapidshare
- perl dbi rapidshare
Video results for: perl
p6apclps #2 Perl 6 Apocalypse
http://www.perlfoundation.org/perl6 - - (More) http://www.perlfoundation.org/perl6 - - Apocalypse 1 corresponds to Chapter 1: An Overview of Perl. (Of course, in the book, the Overview is more like a small tutorial, not really a complete analysis of the philosophical underpinnings of Perl. Nevertheless, it was a convenient place to classify those RFCs that talk about Perl 6 on that level.) So today I'm talking about the following RFCs: RFC PSA Title --- --- ----- 16 bdb Keep default Perl free of constraints such as warnings and strict. 26 ccb Named operators versus functions 28 acc Perl should stay Perl. 73 adb All Perl core functions should return objects 141 abr This Is The Last Major Revision The PSA rating stands for "Problem, Solution, Acceptance". The problem and solution are graded on an a-f scale, and very often you'll find I grade the problem higher than the solution. The acceptance rating is one of a Accepted wholeheartedly b Accepted with a few "buts" c Accepted with some major caveats r Rejected I might at some point add a "d" for Deferred, if I really think it's too soon to decide something. RFC 141: This Is The Last Major Revision I was initially inclined to accept this RFC, but decided to reject it on theological grounds. In apocalyptic literature, 7 is the number representing perfection, while 6 is the number representing imperfection. In fact, we probably wouldn't end up converging on a version number of "2*PI" as the RFC suggests, but rather on 6.6.6, which would be rather unfortunate. So Perl 7 will be the last major revision. In fact, Perl 7 will be so perfect, it will need no revision at all. Perl 6 is merely the prototype for Perl 7. ":-)" Actually, I agree with the underlying sentiment of the RFC--I only rejected it for the entertainment value. I want Perl to be a language that can continue to evolve to better fit the problems people want to solve with it. To that end, I have several design goals that will tend to be obscured if you just peruse the RFCs. First, Perl will support multiple syntaxes that map onto a single semantic model. Second, that single semantic model will in turn map to multiple platforms. Multiple syntaxes sound like an evil thing, but they're really necessary for the evolution of the language. To some extent we already have a multi-syntax model in Perl 5; every time you use a pragma or module, you are warping the language you're using. As long as it's clear from the declarations at the top of the module which version of the language you're using, this causes little problem. A particularly strong example of how support of multiple syntaxes will allow continued evolution is the migration from Perl 5 to Perl 6 itself. See the discussion of RFC 16 below. Multiple backends are a necessity of the world we live in today. Perl 6 must not be limited to running only on platforms that can be programmed in C. It must be able to run in other kinds of virtual machines, such as those supported by Java and C#. RFC 28: Perl should stay Perl. It is my fond hope that those who are fond of Perl 5 will be fonder still of Perl 6. That being said, it's also my hope that Perl will continue trying to be all things to all people, because that's part of Perl too. While I accept the RFC in principle (that is, I don't intend to go raving mad), I have some major caveats with it, because I think it is needlessly fearful that any of several programming paradigms will "take over" the design. This is not going to happen. Part of what makes Perl Perl is that it is intentionally multi-paradigmatic. You might say that Perl allows you to be paradigmatic without being "paradogmatic". The essence of Perl is really context sensitivity, not just to syntactic context, but also to semantic, pragmatic, and cultural context. This overall philosophy is not going to change in Perl 6, although specific context sensitivities may come and go. Some of the current context sensitivities actually prevent us from doing a better job of it in other areas. By intentionally breaking a few things, we can make Perl understand what we mean even better than it does now. As a specific example, there are various ways things could improve if we muster the courage to break the "weird" relationship between @foo and $foo[]. True, we'd lose the current slice notation (it can be replaced with something better, I expect). But by consistently treating @foo as an utterance that in scalar context returns an array reference, we can make subscripts always *take* an array reference, (Less)
p6apclps #3 Perl 6 Apocalypse
http://www.perlfoundation.org/perl6 - - which (More) http://www.perlfoundation.org/perl6 - - which among other things fixes the botch that in Perl 5 requires us to distinguish $foo[] from "$foo-][]". There will be more discussion of this in Apocalypse 2, when we'll dissect ideas like RFC 9: Highlander Variable Types. RFC 16: Keep default Perl free of constraints such as warnings and strict. I am of two minds about this debate--there are good arguments for both sides. And if you read through the discussions, all those arguments were forcefully made, repeatedly. The specific discussion centered around the issue of strictness, of course, but the title of the RFC claims a more general philosophical position, and so it ended up in this Apocalypse. I'll talk about strictness and warnings in a moment, and I'll also talk about constraints in general, but I'd like to take a detour through some more esoteric design issues first. To my mind, this RFC (and the ones it is reacting against), are examples of why some language designer like me has to be the one to judge them, because they're all right, and they're all wrong, simultaneously. Many of the RFCs stake out polar positions and defend them ably, but fail to point out possible areas of compromise. To be sure, it is right for an RFC to focus in on a particular area and not try to do everything. But because all these RFCs are written with (mostly) the design of Perl 5 in mind, they cannot synthesize compromise even where the design of Perl 6 will make it mandatory. To me, one of the overriding issues is whether it's possible to translate Perl 5 code into Perl 6 code. One particular place of concern is in the many one-liners embedded in shell scripts here and there. There's no really good way to translate those invocations, so requiring a new command line switch to set "no strict" is not going to fly. A closely related question is how Perl is going to recognize when it has accidentally been fed Perl 5 code rather than Perl 6 code. It would be rather bad to suddenly give working code a brand new set of semantics. The answer, I believe, is that it has to be impossible by definition to accidentally feed Perl 5 code to Perl 6. That is, Perl 6 must assume it is being fed Perl 5 code until it knows otherwise. And that implies that we must have some declaration that unambiguously declares the code to be Perl 6. Now, there are right ways to do this, and wrong ways. I was peeved by the approach taken by DEC when they upgraded BASIC/PLUS to handle long variable names. Their solution was to require every program using long variable names to use the command "EXTEND" at the top. So henceforth and forevermore, every BASIC/PLUS program had "EXTEND" at the top of it. I don't know whether to call it Bad or Ugly, but it certainly wasn't Good. A better approach is to modify something that would have to be there anyway. If you go out to CPAN and look at every single module out there, what do you see at the top? Answer: a ""package"" declaration. So we break that. I hereby declare that a "package" declaration at the front of a file unambiguously indicates you are parsing Perl 5 code. If you want to write a Perl 6 module or class, it'll start with the keyword "module" or "class". I don't know yet what the exact syntax of a module or a class declaration will be, but one thing I do know is that it'll set the current global namespace much like a "package" declaration does. Now with one fell swoop, much of the problem of programming in the large can be dealt with simply by making modules and classes default to strict, with warnings. But note that the default in the main program (and in one liners) is Perl 5, which is non-strict by definition. We still have to figure out how Perl 6 main programs should distinguish themselves from Perl 5 (with a ""use 6.0"" maybe?), and whether Perl 6 main programs should default to strict or not (I think not), but you can already see that a course instructor could threaten to flunk anyone who doesn't put ""module Main"" at the front each program, and never actually tell their pupils that they want that because it turns on strictures and warnings. Other approaches are possible, but that leads us to a deeper issue, which is the issue of project policy and site policy. People are always hankering for various files to be automatically read in from various locations, and I've always steadfastly resisted that because it makes scripts implicitly non-portable. However, explicit non-portability is okay, so there's no reason our hypothetical class instructor could not insist that programs start with a ""use Policy;"" (Less)
Live Lessons Perl Fundamentals With Peter J Scott
p6apclps #2 Perl 6 Apocalypse http://www.perlfoundation.org/perl6 - - (More) http://www.perlfoundation.org/perl6 - - Apocalypse 1 corresponds to Chapter 1: An Overview of Perl. (Of course, in the book, the Overview is more like a small tutorial, not really a complete analysis of the philosophical underpinnings of Perl. Nevertheless, it was a convenient place to classify those RFCs that talk about Perl 6 on that level.) So today I'm talking about the following RFCs: RFC PSA Title --- --- ----- 16 bdb Keep default Perl free of constraints such as warnings and strict. 26 ccb Named operators versus functions 28 acc Perl should stay Perl. 73 adb All Perl core functions should return objects 141 abr This Is The Last Major Revision The PSA rating stands for "Problem, Solution, Acceptance". The problem and solution are graded on an a-f scale, and very often you'll find I grade the problem higher than the solution. The acceptance rating is one of a Accepted wholeheartedly b Accepted with a few "buts" c Accepted with some major caveats r Rejected I might at some point add a "d" for Deferred, if I really think it's too soon to decide something. RFC 141: This Is The Last Major Revision I was initially inclined to accept this RFC, but decided to reject it on theological grounds. In apocalyptic literature, 7 is the number representing perfection, while 6 is the number representing imperfection. In fact, we probably wouldn't end up converging on a version number of "2*PI" as the RFC suggests, but rather on 6.6.6, which would be rather unfortunate. So Perl 7 will be the last major revision. In fact, Perl 7 will be so perfect, it will need no revision at all. Perl 6 is merely the prototype for Perl 7. ":-)" Actually, I agree with the underlying sentiment of the RFC--I only rejected it for the entertainment value. I want Perl to be a language that can continue to evolve to better fit the problems people want to solve with it. To that end, I have several design goals that will tend to be obscured if you just peruse the RFCs. First, Perl will support multiple syntaxes that map onto a single semantic model. Second, that single semantic model will in turn map to multiple platforms. Multiple syntaxes sound like an evil thing, but they're really necessary for the evolution of the language. To some extent we already have a multi-syntax model in Perl 5; every time you use a pragma or module, you are warping the language you're using. As long as it's clear from the declarations at the top of the module which version of the language you're using, this causes little problem. A particularly strong example of how support of multiple syntaxes will allow continued evolution is the migration from Perl 5 to Perl 6 itself. See the discussion of RFC 16 below. Multiple backends are a necessity of the world we live in today. Perl 6 must not be limited to running only on platforms that can be programmed in C. It must be able to run in other kinds of virtual machines, such as those supported by Java and C#. RFC 28: Perl should stay Perl. It is my fond hope that those who are fond of Perl 5 will be fonder still of Perl 6. That being said, it's also my hope that Perl will continue trying to be all things to all people, because that's part of Perl too. While I accept the RFC in principle (that is, I don't intend to go raving mad), I have some major caveats with it, because I think it is needlessly fearful that any of several programming paradigms will "take over" the design. This is not going to happen. Part of what makes Perl Perl is that it is intentionally multi-paradigmatic. You might say that Perl allows you to be paradigmatic without being "paradogmatic". The essence of Perl is really context sensitivity, not just to syntactic context, but also to semantic, pragmatic, and cultural context. This overall philosophy is not going to change in Perl 6, although specific context sensitivities may come and go. Some of the current context sensitivities actually prevent us from doing a better job of it in other areas. By intentionally breaking a few things, we can make Perl understand what we mean even better than it does now. As a specific example, there are various ways things could improve if we muster the courage to break the "weird" relationship between @foo and $foo[]. True, we'd lose the current slice notation (it can be replaced with something better, I expect). But by consistently treating @foo as an utterance that in scalar context returns an array reference, we can make subscripts always *take* an array reference, (Less)
p6apclps #3 Perl 6 Apocalypse http://www.perlfoundation.org/perl6 - - which (More) http://www.perlfoundation.org/perl6 - - which among other things fixes the botch that in Perl 5 requires us to distinguish $foo[] from "$foo-][]". There will be more discussion of this in Apocalypse 2, when we'll dissect ideas like RFC 9: Highlander Variable Types. RFC 16: Keep default Perl free of constraints such as warnings and strict. I am of two minds about this debate--there are good arguments for both sides. And if you read through the discussions, all those arguments were forcefully made, repeatedly. The specific discussion centered around the issue of strictness, of course, but the title of the RFC claims a more general philosophical position, and so it ended up in this Apocalypse. I'll talk about strictness and warnings in a moment, and I'll also talk about constraints in general, but I'd like to take a detour through some more esoteric design issues first. To my mind, this RFC (and the ones it is reacting against), are examples of why some language designer like me has to be the one to judge them, because they're all right, and they're all wrong, simultaneously. Many of the RFCs stake out polar positions and defend them ably, but fail to point out possible areas of compromise. To be sure, it is right for an RFC to focus in on a particular area and not try to do everything. But because all these RFCs are written with (mostly) the design of Perl 5 in mind, they cannot synthesize compromise even where the design of Perl 6 will make it mandatory. To me, one of the overriding issues is whether it's possible to translate Perl 5 code into Perl 6 code. One particular place of concern is in the many one-liners embedded in shell scripts here and there. There's no really good way to translate those invocations, so requiring a new command line switch to set "no strict" is not going to fly. A closely related question is how Perl is going to recognize when it has accidentally been fed Perl 5 code rather than Perl 6 code. It would be rather bad to suddenly give working code a brand new set of semantics. The answer, I believe, is that it has to be impossible by definition to accidentally feed Perl 5 code to Perl 6. That is, Perl 6 must assume it is being fed Perl 5 code until it knows otherwise. And that implies that we must have some declaration that unambiguously declares the code to be Perl 6. Now, there are right ways to do this, and wrong ways. I was peeved by the approach taken by DEC when they upgraded BASIC/PLUS to handle long variable names. Their solution was to require every program using long variable names to use the command "EXTEND" at the top. So henceforth and forevermore, every BASIC/PLUS program had "EXTEND" at the top of it. I don't know whether to call it Bad or Ugly, but it certainly wasn't Good. A better approach is to modify something that would have to be there anyway. If you go out to CPAN and look at every single module out there, what do you see at the top? Answer: a ""package"" declaration. So we break that. I hereby declare that a "package" declaration at the front of a file unambiguously indicates you are parsing Perl 5 code. If you want to write a Perl 6 module or class, it'll start with the keyword "module" or "class". I don't know yet what the exact syntax of a module or a class declaration will be, but one thing I do know is that it'll set the current global namespace much like a "package" declaration does. Now with one fell swoop, much of the problem of programming in the large can be dealt with simply by making modules and classes default to strict, with warnings. But note that the default in the main program (and in one liners) is Perl 5, which is non-strict by definition. We still have to figure out how Perl 6 main programs should distinguish themselves from Perl 5 (with a ""use 6.0"" maybe?), and whether Perl 6 main programs should default to strict or not (I think not), but you can already see that a course instructor could threaten to flunk anyone who doesn't put ""module Main"" at the front each program, and never actually tell their pupils that they want that because it turns on strictures and warnings. Other approaches are possible, but that leads us to a deeper issue, which is the issue of project policy and site policy. People are always hankering for various files to be automatically read in from various locations, and I've always steadfastly resisted that because it makes scripts implicitly non-portable. However, explicit non-portability is okay, so there's no reason our hypothetical class instructor could not insist that programs start with a ""use Policy;"" (Less)
Sponsored results
Join Our Fan Page on Facebook!

