Perl 6: Apocalypse 6 Released
data64 writes "The latest Apocalypse talks about subroutines. Looks like we finally get type signatures which are way more powerful than the rudimentary prototypes available with Perl5."
← Back to Stories (view on slashdot.org)
... so unlikely to be able to be whored for karma in it's entirety without a lot of work :o)
Perl6 is looking amazing, though. It's looking a lot less crufty than perl5 in a number of ways, and actually looks a very modern language now. Plus, it's still Perl. Woo!
So long as we get a foreach() mechanism with in-built index into the array it's looping over, I'll be happy. That's my biggest problem at the moment..
"Elmo knows where you live!" - The Simpsons
I love the smell of sub routines in the morning
If you get an error, type "OVERRIDE" or "SECURITY OVERRIDE" and then try the optimize command again.
Gaaaad. I knew it didn't look right. Apoc_a_lypse. Apoc_a_lypse.
Get your own free personal location tracker
Doubtful... The Debian crew has always held that simplicity is best (Occam's Razor). They typically do all their scripts in Python.
The Previous Apocolypses as well as some more info (who's who, list summaries). Read up!
On another note, is Perl 6 even going to be relevant with next-generation languages like Ruby and Python already fairly mature? ;-)
http://www.zachlipton.com/apocalypse6.html
... was 9 months ago! I knew Perl was slow, but that's just bad! 8^)
Just kidding, great work guys!
There you have it. Proof positive that Python is much better than Perl.
In Star Trek, they always call new functionality as 'subroutines', which leads me to think that the LCARS system was written in Perl (Perl 2000 Xtreme?). A scary thought indeed...
"I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
I remenber the days of perl 5.004 and boy was that good and compact! Then as time so pass, more and more "features" are added into perl 5.004 and the result is that now you have too many features spoils the broth. As perl 5.004 it is PERFECT for replacing bourne shell, sed and awk. But instead of being stable (and not changing), it kept on changing. This is bad from a system admin point of view because you want to be sure that the script you wrote in 1999 will work in 2019 without any changes (just like bourne shell).
/usr/bin/perl5 and make sure that it stays static for all eternity. There are values in things which do not change, things you can depend on year after year without fear.
Instead if Perl kept on changing then you can't be sure and when you have literally thousands of little perl scripts everywhere this is intolerable.
Perhaps they should have kept Perl 5 as
This is why I hate Perl
multi *caller (?$where = &CALLER::_, Int +$skip = 0, Str +$label)
my brain can't grok that
The VM is showing 10x speed improvements in preliminary tests. Couple that in with Moore's law and Perl (or any languages that compiles to the Parrot VM) becomes a very attractive language for more types of problems.
lol
I used to think that perl might become the new COBOL. Now it looks like it's going to be the new ADA. Lots of nice features but such complexity and cleverness that even the people who use it don't like it. ADA's a good language, but no one uses it. It would be a shame if perl 6 went the same way.
Perhaps the cleverness of the ideas are not being tempered by real use at this point. A language does not become great by adding new syntax and semantics for each feature but by refining it to the essential units needed to express all the rest. We should not celebrate the fact that "will" and "is" are very similar ways to express traits in perl 6. We should ask instead why do we need both? Further, is it possible for me to define a new "wont" statement in perl, or are "will" and "is" special things only language designers can implement?
development.lombardi.com
I'd love to see perl documented in the same manner as php.net documents PHP. How about it www.perl.com guys?
What, Perl didn't have ENOUGH syntax before?
Sweet creeping zombie Jesus. At least the world of computing can take comfort in the fact that this trainwreck of a project will never ever see the light of day.
'jfb
To spur "enterprise Linux," Big Bang, the distributed two-phase commit.
An image of Elmer Fudd dressed as a female Viking singing "Kill da Wabbit! Kill da Wabbit!".
Here's your solution:
[siewsk@hostname siewsk]$ tar zxvf perl-5.0.0.4.tar.gz; cd perl-5.0.0.4; rm -f config.sh Policy.sh /bin/sh Configure --prefix=/usr/bin/perl5.0.0.4
/usr/bin/perl5.0.0.4/bin/perl /usr/bin/perl5
[siewsk@hostname siewsk]$
[siewsk@hostname siewsk]$ make; make test
[siewsk@hostname siewsk]$ sudo make install
[siewsk@hostname siewsk]$ sudo ln -s
You now have /usr/bin/perl5 forever and ever, as long as you use #!/usr/bin/perl5 at the top of your scripts.
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
dont forget about the 5000 people killed with nerve gas, or the 2200 gallons of anthrax.
I am a Perl fanatic. I love Perl. But what is going on with Perl 6? The guys working on the Parrot VM for Perl 6 are doing such an amazing job, but I'm pretty dismayed about the language development on Perl 6 itself.
Perl 6 was meant to be a total rewrite. Nothing was meant to be sacred, cruft could disappear, and we'd be left with a mean language, true to its roots, and working on a hot new VM.
Instead we get stuff like this:
sub *print (*@list)
Talk about confusing! * signifies a glob, but in the above example the first * signifies a sort of 'package wildcard' meaning that the subroutine is global! The second *, however, is a glob, as in Perl 5. WTF? Perl 6 looks almost as inconsistent as PHP already, and it's only in draft!
Each page of this Apocalypse presented me with a new piece of cruft to look horrified about. Slurpy arrays!? Oh my god. Wall even goes on about 'psychological reasons' for syntax! 'Default values' and 'Rules' are things that are easily done with existing code.. it's not even as if they result in particularly crufty code in Perl 5.
I'm still looking forward to Perl 6, but it really does seem as if Parrot is where the true action is. Perl 6 really does look as if it is being designed by committee.
mogorific carpentry experiments
Looks like we finally get type signatures which are way more powerful than the rudimentary prototypes available with Perl5.
If I want function signatures, I'll reach for the C compiler. Otherwise, I don't want to be encumbered with having to keep track of data types. That's the (former) beauty of Perl: Powerful yet simple.
I think Perl 6 will be the end of the Perl dynasty as we know it. What a shame.
Does php provide anything like this?
What I typically hear and feel myself is that the php site documentation is sparse to a fault, with a great deal of useful information simply left out. Check out how many holes are filled in by contributors at the bottom of each page of the php.net site docs. These are glaring ommissions.
G.W Bush is nearer to make Apocalyse than Perl is!
Your perl5 scripts will not be stranded. There are many ways this will be accomodated - by force or by detection of certain perl 5 tokens (like the package keyword).
Most scripting languages tend towards lisp in the end (just look at python - replace the whitespace with parens and whammo! 90% lisp).
But perl...
Perl is the first direct violation of Greenspun's 10th!. Perl 6 is the ANTI-LISP...
Just look at that syntactic MESS, just look at the wilful misunderstanding and abuse of Computer Science concepts and terminology.. or don't, because it will BURN OUT YOUR EYES. AAAAARGHHHH!!!.
Considering all the features available, it seems like this would be the ideal time to freshen up slashcode. Then, maybe we'd see valid HTML 4, CSS support, layout without n-level deep tables, etc.
Overrated / Underrated : Moderation
I dont see the inherent advantage in desinging a language thats hard to read.
This is what's great about perl 6. Yes, it has so many insane features and rediculous complex rules and bizarre exceptions to its rules that when reading code with someone else's programming style, you may as well be reading a different programming language (Quick! What's the difference between "sub foo will do { something() }" and " { something() } " ?).
But the real strength in perl 6 is that it's just about infinitely configurable. You can redefine the grammar to fit your needs or whims. This is going, naturally, to cause 17 year olds who load their grammars up so much with wierd macros that their programs will become literal line noise that ceases to function if you change one character, but it will also mean that in the "enterprise", you can be completely shielded from the messiness. All it takes is defining a specialized version of "use strict" that reduces the language down to what you need, and suddenly perl 6 is some very simple, simple, easy to understand language. As long as the speed's OK, people enforce standardized coding within an organization and the default -w is really careful to warn you if you say { 1, 2, 3 => "a" } and it looks like what you probably meant was hash { 1, 2, 3 => "a" } , i don't see it being a real problem. And from a compatibility stndpoint, having one language with EVERYTHING and the ability to cut out what you don't need in wide swaths is way better than recurring situations where people go "well.. i want to use java, but i need feature X" and wind up using some funky third-party jvm compiler that produces huge executables and requires funky tricks to incorporate into my build cycle."
Perl 6 is as hairy as you want it to be, and no more.
Perl 6 is going to be the bestest second system ever! ^_^
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
The original poster simply pulled something similar. There is no requirement that your perl look anything like that, nor is "powerful" perl more obfuscated than plainish looking perl. This is total FUD drummed up by someone who has presented a corner case....which I can assure you can be done for any language. In fact, I wouldn't touch a language for which this didn't hold.
What I think though is important to remember is that if all you look at is the syntax, you won't appreciate the power -- and simplicity -- of the idioms. Taken out of context and put into cooked up examples meant to show off the new syntax, it looks bad... really bad. But once you actually start programming in it, you'll find that most of what you want and need to do will actually come quite simply.
That vast majority of all this new syntax will be applied in the vast minority of programming cases. Much of it will get sucked up into modules, classes, etc., that you'll use without worrying about what's actually going on under the hood. And "the rest of us" will just have an incredibly powerful language that is actually easier to program.
Cheers,
Richard
Perl has always had a lot of esoterica. Don't let it bog you down. You can be amazingly productive in perl without ever knowing what a typeglob is.
This is not meant as flame-bait -- I've really tried to learn Perl. Even though I'm a 'real' programmer, I am not biased against scripting languages -- in fact, I think that the so-called 'duct-tape' languages are super-useful and important to technology in general.
Having said that, IMHO:
a) Perl, in the quick-and-dirty sense, is too dirty and not quick enough.
b) Have you ever seen C-obfuscation championship code? Now have you seen a Perl program that does anything more than "Hello World"? Notice the similarities?
Now I know that you can write bad code in any language, but bad-code in Perl is what I call 'job-security encryption' as you will never be able to fire the person who wrote the code, no matter how bad it is, because no one else will be able to read it. Either you re-write completely it or you keep that hacker...
On a side note, speed optimization in Perl tend to create spaghetti code with weird symbols for meat-balls. And I love meat-balls.
Willard: They say your methods are unsound.
Kurtz: Are my methods unsound?
Willard: I don't see... any method... at all, sir.
Suck figs.
I'm waiting for Perl6 before I get too serious about Perl, as I don't want to have a lot of unlearning to do /.ing. What a provocative language.
;)
Got about 10 pages into it before the
Question regarding:
my %pet is Hash of Array of Array of Hash of Array of Cat;
why not:
typedef my Hash of Array of Array of Hash of Array of Cat %pet;
IMHO, without typedef, C++ would be lost, particularly when the STL is on the loose...
Larry, your Boss is as good as mine...
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
Perl provides syntactic shortcuts and people use them. You do not need to use them. You can write Ada/Java-like incredibly verbose muck in Perl if you like. No one is forcing you to take the shortcuts....yet people do. Why is this? Because time is more valuable than code to many people.
I certainly don't look forward to COBOLScript.
Human languages are an ambigious mess. Computers only want unambigious constructs. Having programmed in COBOL and and a few so called "fourth generation languages", let me say that writing in something that is close to English is really irritating. It's never quire English enough to allow me to express myself. You end up having to learn a specialized language that isn't really quite English. If I'm going to learn a specialized language, I might as well learn something that is easy to type and easy to scan visually.
Perl is a big, complex language, yes. But like real languages, you can learn it with very simple steps. You can get complex, productive things done with a just a quick introduction. If you want more power, it will take more learning, but it's available. Perl 6 aims to accomplish this evem better tham Perl 5.
Yes, the example given in the article are a bit convoluted. The entire point of the article is to explore all of Perl 6, not just the commonly used bits. In fact, one of main goals of Perl 6 is to make the common case and the introductory case less confusing than in Perl 5. Really. And everything revealed so far has supported this, it's just that Larry doesn't make it too clear.
Take for example expressing that a function takes three arguments in Perl 5. The best you can do is:
(The "...." represents spaces because Slashdot's code filter is crap.)
In this example, Perl will not check that callers do the right thing. In Perl 6, you get this:
A clear improvement, and Perl will actually verify that callers do the right thing when calling you, usually catching an error at compile time!
In general Lary's Apocalypses have been a bit obscure. He's focusing on the big picture and the little details. Damien's Exegesis's is generally alot easier to read for people less interested in deep thought and more interested in concrete details. Wait a week or two for Exegesis 6 and give that a read. I think you'll find that the common case is slightly simplier and more obvious than in Perl 5, while the system also allows for more complex expressions that weren't well supported in the Perl 5.
Search 2010 Gen Con events
Clinton's fine examples of "leadership" during impeachement are one of Osama's biggest examples of why he needs to kill us.
When does the book come out? Larry Wall's Perl 5 manual was the most fun I've had reading a computer book. Is he going to top it with the Perl 6 book?
I'm getting worried about Perl 6 being too crufty, but I have to say I love Wall's writing style. "Disintertwingled" indeed. (p. 4)
n/troll
*yawn* So have we re-invented Common Lisp yet?
--
Use what you need is not the point. Most coding is code maintenance. Code maintenance on perl 6 will consist of: screaming, gagging, tearing it up, throwing it away, and rewriting.
here's a better:
/dev/urandom`}
while (1) {fork ? `cat
this is actually 'PRACTICAL Extractor and Reporting Language'. PRACTICAL. My ass. They should consider redefining the whole acronym. Pompous Esoteric Redundant Language would be more appropriate. Well, if you fill you're poisoned enough by Perl fumes, take some AWK or Tcl as antidote.
I took a class in Java once, and I remember something about JavaDoc, which would let you comment your code in a special format, and you could run something that would produce automated documentation based on your comments. I LOVE this idea, and have been wondering if there's something similar for Perl.
I started putting my comments in a particular format, and wrote a Perl script to grab them all and generate an HTML page, which I can print and tape to my wall for reference. When you've got 3,000 lines of code in custom modules, it's nice to have a reference when you forget what order a sub takes its arguments in. I shouldn't have to write my own documentation script. Nor should I have to maintain documentation in a seperate file, and worry about it getting out of date when I make changes.
Can somebody point me in the right direction? If there is no such thing for Perl 5, will there be for Perl 6?
$x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
$x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
my %pet is Hash of Array of Array of Hash of Array of Cat;
which might really mean:
my %pet is Hash(keytype => Str,
returns => Array(
returns => Array(
returns => Hash(
keytype => Str,
returns => Array(
returns => Cat)))))
or some such.
Larry's losing it. He's going to snap at any moment. Nobody can keep this up for long. If you're near him, grab a raincoat, he's going to explode at any second.
Seriously though, Larry, you're a genius.
Do not read the paragraph below:
This comment violated the "postercomment" compression filter. Try less whitespace and/or less repetition. Comment aborted. So I did, by adding this paragraph, hoping to throw it off.
# Erik
You mean the flightless Parrot? It's been 2 years and roughly $200,000 (from perl foundation grants) and still nothing. Honestly - what the heck are they doing? If you cannot show results in 2 years in an open source project then it is clearly horribly managed. Compare Parrot to Mono to see what a real project looks like. Mod away - hiding this this Parrot fiasco won't make the situation any better.
Perl6 is the only mainstream language that will have a first-class parser and lexer as part of its syntax. This is extremely powerful. Basically, Perl6 will be the language of choice to write not only one off flat file transformations but entire compilers. Having seen dozens of new languages in the past 10 years looking pretty much the same as each other I can tell you that Perl6 is the only language that appears to be forward looking and casts off baggage of years gone by. Larry Wall is truly a visionary.
Having said that, I believe Parrot is a disaster that will never actually function correctly. No matter - someone will write a better Perl6 VM. I would not be surprised if it came out of ActiveState, Ximian or Microsoft.
That Larry has now COMPLETELY LOST HIS MIND:
I suppose you could also write that as:
but for linguistic reasons it's probably better to keep the variable name near the left and put the long, heavy phrases to the right. (People tend to prefer to say the short parts of their sentences before the long parts--linguists call this the "end-weight" problem.) The Hash is implied by the %pet, so you could leave out the "is" part and just say:
Another possibility is:
I'm really glad I learned Ruby..
Just write a perl script to modify all your current perl scripts to use /usr/bin/perl5
Who cares about all this new crap? the only thing I really long for in perl is a perl compiler that can compile perl that has a few modules in it like DBI
I work at companies that happy steal code and they bring me in pay be jack all, and steal my perl code.
It was a great language, originally created to DESCRIBE and design computer hardware architectures, but a few of the wizards at IBM's Watson Lab decided to implement it as a programming language. Still the only language I know of that can multiply a pair of matrices with a single NATIVE operator! No user coding required.
Of course, with all of this power APL also invented the write-only program and the one-liner, both predecessors to the obfuscated C contest... and I must say that those using C and C++ can only dream of approaching the unreadability that was APL. Then again, only APL used its own character set... it used single symbols derived from mathematics as its operators. No constructing multi-character composite operators in that language... just custom terminals, or... a special type-ball for your selectric based 2741 terminal (there's a trip down memory lane).
To return to my point, though.
APL died for a number of reasons, but probably the biggest was how totally undigestible its code became with very little effort. I wrote some fairly simple programs, relatively well written for APL, avoiding the tradition of making everything a one-liner, actually including comments... you know those things written in intelligible English that explains what a program does... oh, yeah, I haven't seen any of those in years in my C/C++ shops... and yet as little as a few months after I wrote those beautiful, elegent APL programs I had no clue how they worked and could only change them by re-writing them. A very good reason for a language to die.
The shame of it all is the APL was probably the best language ever invented for solving hard-core math and arithmetic problems, yet it died before it could even run on its natural platform, the super-pipelined vector processors such as the Cray-1 and its relatives.
And chances aren't bad that the next Exegesis will be coming soon, and the next Apocalypse will be soon after that. According to Dan Sugalski's use.perl.org journal, the core Perl6 team has been making good progress lately. As he writes in the 20 Feb journal entry:
From the later comments in that entry, it sounds like the next Apocalypse / Exegesis / Synopsis will deal with Perl6's object system. It's not clear how much progress was made there though. It took a long time to get from the last Exegesis to today's Apocalypse (core developers all out of work, etc), but hopefully this means things will get moving again now.
DO NOT LEAVE IT IS NOT REAL
This will make Perl an attractive contender for serious application development; something which it came reasonably close to in late Perl5 but didn't quite get there because while you could do most things in a consensually "proper" way, the roll-your-own methodology just wasn't convincing enough for pointy haired project managers.
The primary difference with Perl6 is that it will have full support for strict(ish) typing and object orientation which makes it suitable for large projects where it's impractical to expect programmer A to know anything about how programmer Z's module is implemented internally and vice versa.
The new feature set (together with Perl's availability on a wide range of platforms and the huge range of freely available interfaces on CPAN) means that Java and .NET will be facing some stiff competition in just about every conceivable application niche.
If the speed improvements are genuine then (assuming that one were in a position to choose) for probably the first time ever we will be in a position where there is hardly any real need to maintain skills in multiple languages as Perl will be at least adequate for the vast majority of implementations. It's not unreasonable to suppose the list of exclusions being limited to CPU bound code in high-performance content servers (eg RDBMS, HTTP) and real-time and embedded apps requiring hand-coded assembler or at least tightly optimised C.
Whether you agree with that or recoil in horror at the thought of your favourite language being marginalised, Perl is clearly not just a "glue" language any more. It's about to become a fully-fledged enterprise application development platform.
I'm sure you've already guessed, but for the record I am very much looking forward to this.
There is one fly in the ointment I guess. Perl, like C, is very free-form in terms of what it lets you do but the flip side of that coin is that such languages also let you write dangerously unstructured and unmaintainable code. They require good training and a degree of self discipline to use well. Self taught programmers who didn't have strict typing and nested scoping enforced on them at the beginning of their coding career almost inevitably tend to grow up writing code that is less secure and harder to read than do those who learned back in their college days to associate variable declaration at the wrong level of scope with lower assignment grades and some stern finger wagging from their tutor.
The new Perl will continue to make the impossible possible and the merely hard very easy, but for the first time it will provide support for a more formal structure where that is considered a good thing.
Remember though that Perl is still very much a grassroots phenomenon. Whether this hits anybody's radar screen out in the real world has to depend on how well and how rapidly it is taken up by the Perl community. i.e. upon the willingness of existing Perl code monkeys to grab the inevitable (presumably three-humped) Camel Book, learn the new features and use them deliberately to adopt a more structured and more scalable coding style.
It's on this point I think that Perl6 will succeed or fail. We will need plenty of real world examples out there so that new users have something from which to learn righteous coding principles, and so that sceptical project managers will see successful implentations from which to draw confidence and inspiration.
So, I read through the recent Apocalypse and I come to a sentence a bit like this:
'...but Perl will dwim silently if the context is a list that starts with a pair or hash.'
Admittedly, by that point I'd already seen enough sequences of punctuation marks that I wasn't really feeling very hopeful.
So it seems I will be living with the limitations of Ruby for quite a few years yet! Banzai!
Can someone please make a Ruby that compiles to Parrot code? Pretty please? I volunteer to do the SVG library.
Whence? Hence. Whither? Thither.
One problem with Perl, is that it's very hard to read somebody else's Perl code. Most Perl hackers can write scripts that do amazing things in much less space/time than a traditional compiled language, but their code is indecipherable to even other skilled Perl hackers. If you've ever maintained a large Perl program written by someone other than yourself, you know what I'm talking about.
Adding more features to the language will only make this problem worse. Very few Perl programmers know more than a fraction of Perl's syntax. More syntax means more stuff that your average Perl programmer doesn't understand! This is a huge impediment to writing a large project in Perl.
Languages like C and Java stay alive precisely because they're not very expressive. You can write huge behemoth-sized projects and still have some hope of maintaining them, because there just aren't that many ways to obfuscate the code.
Languages like C and Java... You can write huge behemoth-sized projects and still have some hope of maintaining them
In C and Java, projects -need- to be "behemoth-sized" because the languages are so damn inexpressive. I've seen a pageful of C code with an inner and outer loop, doing string comparisons and prefixing/suffixing delimiters which would take exactly one line in Perl. Would you rather maintain a pageful of C code or a very dense, cryptic single line of Perl code? Sure, there could be several bugs embedded in that single line, but I'll still take it.
Consider also that the comment in both examples above would be the same, if you subscribe to the common "comment what it does, not how it does it" approach. So in theory, you end up with more comments per line of code in Perl than you do in C or Java, but still the same amount of commenting overall. That's not a bad thing, is it?
Perl 6: The reason I've finally gotten off my butt and am writing Sand.
;-)
Sand is a programming language I've been planning for a long time, but its timetable has picked up as I'm more and more convinced that Perl 6 is going to fill a niche that I don't work in. Plus, I've really never been comfortable with bytecode interpreters.
That's not to slight Perl 6. I'm sure it will be a fine language, but I'm looking at moving on to a design that focuses on maintainability and compilability (that is: to machine code). Since none of the languages out there satisfy my desire for these attributes plus the flexibilty that I've come to love in Perl, I have to write it myself.
A quick check reveals that doesn't compile as perl. And, frankly, it doesn't look like proper perl anyway. It's really irritating when people pick up obfusicated code and use that as an example from a language. Sure, you can write perl programs that are impossible to read, but you can do that with any language.
It's not the language, it's the programmer. A good coder will make beautiful code in whatever language s/he uses. Remember, There's More Than One Way To Do It.
Larry Wall does seem to have taken seriously the "Nothing is sacred" bit. Earlier in Apocalypse 5, he wrote (about the earlier (?...) regex syntax decision) "It's not correct now, since the Perl 6 approach is to break everything that needs breaking all at once."
So, I wouldn't worry too much about it. Perl 6 will be different from 5. It appears that it should be better when you look at it from certain directions, and worse from others. Paradigm shift? Sure. I think lwall just got bored with where Perl 5 was going, and wanted to do something different.
Anyway "* signifies a glob" is one of those sacred things that was to be examined carefully. I'm guessing that most useful existing Perl 5 code doesn't use "*" that way except for filehandles. Several other 'modern' languages use "*" for type definitions, so it might make sense from the point of making it easier for a new Perl6 programmer to learn.
I think I understand what's going on. Old Larry's playing a joke on us. Just like that Python + Perl = Parrot debacle that everybody on comp.lang.python and comp.lang.perl fell for. In reality, Larry and the guys are working on this really awesome, minimal syntax, clean and clear version of Perl 6! It's a joke I tell you! It has to be...
Seriously though, I'm not one to criticize an artist's vision before it becomes a reality. If he thinks he can pull this off, then more power to him!
A deep unwavering belief is a sure sign you're missing something...
my Cat $felix;
... }
&foo.do
push(@foo, "rapidly", 1,2,3)
my macro sic {
leave Block;
&foo.returns = sig(Num);
will do { return +@many[$one] }
From lines in the article. try it! it's fun!
Yesterday, Perl and Larry Wall came up in, believe it or not, a conversation I had with a friend regarding moviemaking. I had recently watched the director's commentary tracks on the DVDs of Rodriquez's "El Mariachi" and "Desperado", and I was explaining how impressed I was with his pragmatism. One of the most astonishing examples of this, to me, were his repeated admissions of complete disregard for certain kinds of continuity because "this is an action movie, things are happening very fast, and no one is going to notice it anyway." (That's a paraphrase.) He explained that he has x amount of time to get y amount of shots in a day's shooting, and worrying about details that no one is going to notice just doesn't make any sense.
Prior to watching these commentaries, I had rewatched Payne's "Election", which I think is a brilliant film, and after watching it I also watched it with the director's commentary. Payne is clearly a perfectionist, and he went to great lengths to preserve continuity and to create verisimilitude. (For example, two of his pet peeves in movies are cars without windshield mounted rear-view mirrors, and cars that are too clean.) I greatly admired Payne's attention to detail. Similarly, I greatly admire Kubrick's filmaking.
As the rare kind of guy who has both Knuth and Wall on my bookshelf behind me and who esteems both highly[1], and who appreciates both Rodriguez's pragmatic efficiency and Kubrick's auteur obsessiveness, I don't actually believe that there's the conflict there that other people assume there is. To me, it's a question of appropriateness. One approach is "correct" in one situation but "incorrect" in another.
To me, the very best filmmaker would know when to be like Rodriguez and when to be like Kubrick. Similarly, the best programmers would know when to be like Larry Wall and when to be like, say, Wirth. But that kind of versatility is rare. As is the case in so many things, human nature being what it is, most people have a preferred modality of thought and problem-solving, and operate in that mode whether it's effective or not. That's okay, providing that they somehow limit themselves to problems where their preferred method is appropriate. But many don't; and, worse, some proseltyze that their modality is what's "best" for everyone else, in every situation.
[1] Or, another supposed opposition: Tannenbaum and Torvalds. In their debate, Tannenbaum was the purist, Torvalds the pragmatist. If they were actually arguing about the same problem space, one of them would have had to be wrong and the other right. But they really weren't. I think that many of Tannenbaum's points about the superiority of microkernel architecture were correct and have been proven to be correct. On the other hand, you can't really argue with the success of Linux.
They typically do all their scripts in Python.
Ditto for Red Hat.
Save your wrists today - switch to Dvorak
You can?
Why didn't anyone say so before? I've never seen this in Perl code until now.
-- Ed Avis ed@membled.com
Keep in mind that all of Perl6's new "cleverness" will be completely optional! If you don't want/need strong typing, you can completely ignore the new type system and continue to go typeless.
This is one of the things that makes Perl so attractive as a utility and a glue language: you can continue to do the simple stuff very easily, but you now have more tools to do the complex stuff too.
And as another poster pointed out, the language is entirely adaptable (at the expense of readability and maintainability by others, obviously), and you could always write a new front-end to the Parrot VM in whatever language you want. They already have several. Perl6 is just the new emerging Perl.
Its really too bad because Perl5's @_ is really a great thing once you get used to it. You don't have to explicitly define what you're going to pass, you can pass as many arguments as you want.
I haven't read the whole thing yet but I certainly will be upset if @_ goes away.
The Anti-Blog
It is too hard to Google for.
It looks worse than Perl. Why would anybody use it?
I doubt that Larry Wall has ever heard of K. It would do his a world of good to learn about it. Many of the concepts are brilliant. It would make Perl a better language and him and better language designer.
Bleah.
// TODO: Insert Cool Sig
Developed by Arthur Whitney (the creator of A+) and a big name in the APL circles, K uses the ASCII only character set, is even more compact and faster (both in runtime and development time) than Perl, and very flexible.
Here is a short introduction I wrote for the people at Kuro5hin.
Read the whole thing, it's not going away. A sub with an unspecified signature will get a signature of (*@_), which is exactly what you want.
Rejoice!
demi
And I really liked the LANGUAGE because of the simplicity. Yet the implementations are so diverse and incompatible, and it cannot do native things as well as Java (which I like almost as much). What's more, it is also slower.