Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

perl6 and Parrot 0.5.2 Released

Zonk posted more than 6 years ago | from the for-camels-with-time-on-their-hands dept.

Perl 229

mAriuZ writes "Bob Rogers just released Parrot 0.5.2. This monthly release includes a couple of interesting new features. First, we've bundled Patrick Michaud's Rakudo (thats the implementation of Perl 6 on Parrot) such that you can type make perl6 on Unixy platforms and make perl6.exe on Windows and get a working standalone Perl 6 binary. This is experimental and we hope to iron out some installation and deployment issues by next months release, but it was important to demonstrate our progress. The second new feature is a toolkit for starting your own compiler. Max Mohun built a prototype several months ago, and we've added a stripped-down version for now that builds the skeleton of a compiler for you using the Parrot Compiler Tools. I mentioned the LOLCODE compiler in What the Perl 6 and Parrot Hackers Did on Their Christmas Vacation; this is how Simon and Company were able to get LOLCODE up and running so quickly."

Sorry! There are no comments related to the filter you selected.

LOLWUT (5, Funny)

kcbanner (929309) | more than 6 years ago | (#22123520)

hai
can has stdio?
visible "frist p0st!!"
kthxbye
btw damn you lameness filter!

PERL 6 AS SHITTY AS PERL 5 (-1, Troll)

Anonymous Coward | more than 6 years ago | (#22123640)

God damn piece of shit!

Re:PERL 6 AS SHITTY AS PERL 5 (-1, Offtopic)

Anonymous Coward | more than 6 years ago | (#22123672)

OMFG you are funny sir, I almost shat myself when I read this. Please someone mod him up!

Re:PERL 6 AS SHITTY AS PERL 5 (-1, Offtopic)

Anonymous Coward | more than 6 years ago | (#22123744)

are you talking to yourself?

Re:PERL 6 AS SHITTY AS PERL 5 (0)

Anonymous Coward | more than 6 years ago | (#22124280)

"are you talking to yourself?"

"I know you are, but so are you :P"

Ahhh, put that in your sig and smoke it!!!

Re:PERL 6 AS SHITTY AS PERL 5 (0)

Anonymous Coward | more than 6 years ago | (#22125326)

God damn piece of shit!
Ah, another average VB developer speaks up.

Re:PERL 6 AS SHITTY AS PERL 5 (0)

Anonymous Coward | more than 6 years ago | (#22125384)

Lisp and Smalltalk developer here. Yeah, Perl is a fucking piece of shit and braindamage. Larry Wall is no language designer.

Re:LOLWUT (5, Informative)

Guy Harris (3803) | more than 6 years ago | (#22123882)

Offtopic? That is an example of LOLCODE [lolcode.com] , and the article does note that there's an implementation of LOLCODE atop Parrot [lolcode.com] .

Re:LOLWUT (3, Informative)

kcbanner (929309) | more than 6 years ago | (#22123894)

My remaining Karma thanks you :)

Re:LOLWUT (4, Informative)

nitio (825314) | more than 6 years ago | (#22124546)

MOD BOTH PARENTS UP!

Wow, the first is an example of LOLCODE and is modded Offtopic and the second mentions that and it's modded Troll. Seriously, WHAT.THE.FUCK?

Me? (-1, Offtopic)

Anonymous Coward | more than 6 years ago | (#22123534)

C'mon, gimme 1st!

I'm sorry, but... (-1, Flamebait)

Besna (1175279) | more than 6 years ago | (#22123542)

Really will lose Karma here (but probably to off-topic). I know nerds can feel helpless--abandoned by chicks and politicians. I just want to whatever I can. That means not using software by Donald Knuth, Larry Wall, Matz (Ruby), or other religious programmers. I got word that Python's creator, Guido, is an atheist. So--being that they are similar, I just cannot choose one that is made by a religious person. Do what you can. If you have to use it for work--fine. If you have a choice--choose the atheist. Choose the one who thinks freely.

Re:I'm sorry, but... (1, Insightful)

Anonymous Coward | more than 6 years ago | (#22123562)

Yeah, or you could choose a factor that's not completely irrelevant when you're looking for the next language to learn.

All things being equal... (-1, Troll)

Besna (1175279) | more than 6 years ago | (#22123576)

That's key. Look--95% of Mormons voted for Romney. If they can find it so important--why the hell can't we atheists? Grow backbones, geeks.

Re:All things being equal... (1, Insightful)

Anonymous Coward | more than 6 years ago | (#22123680)

because we aspire to be better than those we disagree with

Re:All things being equal... (1)

heinousjay (683506) | more than 6 years ago | (#22123830)

Thanks for the mild chuckle

I'm sorry, but... (-1, Offtopic)

Anonymous Coward | more than 6 years ago | (#22123570)

what the hell is wrong with you?

I have to admit (-1, Offtopic)

Anonymous Coward | more than 6 years ago | (#22123658)

It's weird reading the religious names and stories in the Perl examples.

Especially since due to the tradition of Perl linguistic hackery, the semantics can be very layered or unexpected.

Imagine feeling what you feel to the bugfuck weirdness of that Tom Cruise video of him emoting hate of suppressive people to religious people hating sinners. You do know that religious people are insane right? And it's this hard sort of insane that's been forged over centuries, grabs your genitilia below the belt and twists.

I don't mind Larry Wall. If you read his State of the Onion addresses, you'll see he is a nuanced guy. On the other hand, I don't mind the Besna here. A several years ago when strange thinking had ruined my life (no you don't get the details) I could have expressed the same agit-prop.

Now I'd rather just passively analyze than to think I'm an engaged player in this world.
http://bp0.blogger.com/_Z5Nqjef-Rf0/R5E6X9NuboI/AAAAAAAAEaA/cgf-YlontKQ/s1600-h/2.jpg [blogger.com]

Re:I'm sorry, but... (0)

Anonymous Coward | more than 6 years ago | (#22123646)

what about the fact that in order to use python you have to taint yourself with the language created by Knuth?

Re:I'm sorry, but... (1)

Blackheim (661904) | more than 6 years ago | (#22123740)

what about the fact that in order to use python you have to taint yourself with the language created by Knuth?
So you dont have this [geekz.co.uk] as a bumper sticker?

Re:I'm sorry, but... (1, Insightful)

Chandon Seldon (43083) | more than 6 years ago | (#22123650)

Nice troll. As a free-software supporting atheist, I can't think of a much more obnoxious mockery of those ideals than your post.

Re:I'm sorry, but... (0)

Anonymous Coward | more than 6 years ago | (#22123952)

Nice troll. As a free-software supporting atheist, I can't think of a much more obnoxious mockery of those ideals than your post.


You are the obnoxious one. The world does not revolve around you. No one cares that you follow the cult of Stallman. I use Linux also (Oh no, I didn't say "GNU/Linux!"), but I don't try to force others to. Like it or not, .NET exists and people may actually speak about it here.



Since you're so into the FOSS movement, why don't you stop contradicting that "freedom" by insulting people who talk about other platforms?



You're agnostic. (-1, Offtopic)

Anonymous Coward | more than 6 years ago | (#22123996)

Your will is week.

Re:I'm sorry, but... (1, Funny)

Anonymous Coward | more than 6 years ago | (#22123778)

That's why I only use nil [www.leib.be] , though I switch to SARTRE [catseye.tc] or Whitespace [dur.ac.uk] in my more philosophical moods. Anyway, you're missing out, I heard there's a bunch of code in the Bible or something.

Re:I'm sorry, but... (0, Redundant)

Wiseman1024 (993899) | more than 6 years ago | (#22124410)

Lol, why is parent -1 Flamebait? He should be funny.

I'm a tree-hugging, religion-hating, free software-supporting atheist, but the reason why I don't use Perl is not that Larry Wall is a Christian. It's that I want to keep my sanity.

Re:I'm sorry, but... (1)

hummassa (157160) | more than 6 years ago | (#22125176)

I'm a tree-hugging, religion-hating, free software-supporting atheist, but the reason why I don't use Perl is not that Larry Wall is a Christian. It's that I want to keep my sanity.
Well, as you are:
1. Hugging trees;
2. Hating people that think differently than you; and
3. Disregarding that absence of evidence is not evidence of absence,
I would say it's too late for that.

DISCLAIMERS:
a) I'm an agnostic. My will is strong: I refuse to have blind faith in the existence of a deity, but I also refuse to have blind faith in its non-existence;
b) I'm a Perl programmer;
c) This post was meant to be funny. Please, laugh. Or not.

Re:I'm sorry, but... (2, Insightful)

Wiseman1024 (993899) | more than 6 years ago | (#22125330)

And you are:
1. Mocking environmentalism;
2. Thinking by hating a religion I hate the gullible fools that follow it (if anything, I hate the immoral atheists who created it to abuse their lambs);
3. Disregarding that illogical and contradictory things don't need to be disproven, and that even if presented with a non-illogical and non-contradictory belief such as "flying green elephants no-one has ever seen", it's their task to prove, not mine to disprove.

But I get your point :) .

Re:I'm sorry, but... (1)

Peter Cooper (660482) | more than 6 years ago | (#22125042)

Y'know, for a few minutes here and there I've actually thought the same thing. I find it pretty darn creepy that people who are so religious (synonym: irrational) are pumping out programming languages.. but then I realized that perhaps an ounce of fantasy and irrationality are REQUIRED to be able to make a good programming language. After all, you're going to be slogging and working night after night for DECADES to get a language to the point where it'll stick, and that takes blind faith, not rationality. So.. I'll stick to using the products of religious men, simply because they're usually the only ones crazy enough to see such craziness through.

Parrot 0.5.2 (0)

Anonymous Coward | more than 6 years ago | (#22123590)

Beautiful plumage...

LOLCODE (0)

Anonymous Coward | more than 6 years ago | (#22123606)

LOLWHAT?

Re:LOLCODE (1)

ajs318 (655362) | more than 6 years ago | (#22124938)

It's a programming language for cats, based on "kitty pidgin" (no, not the one your cat dragged in and left festering under the spare bed).

If you haven't seen any of those daft kitty pictures with captions, like a cat watching a washing machine with "THIS TELLY R BORING, WHERE IZ REMOTE?" you probably won't get it.

Re:LOLCODE (1)

fuzzix (700457) | more than 6 years ago | (#22125430)

If you haven't seen any of those daft kitty pictures with captions, like a cat watching a washing machine with "THIS TELLY R BORING, WHERE IZ REMOTE?" you probably won't get it.
I have seen them and I STILL don't get it... perhaps you could enlighten me.

Merry Christmas! (2, Funny)

0xC2 (896799) | more than 6 years ago | (#22123610)

Eleven months early!

Re:Merry Christmas! (1, Interesting)

Anonymous Coward | more than 6 years ago | (#22125094)

I'm very happy to see something productive out of the Parrot community. They've promised some great things, and we've been waiting a long time to use their offerings. Some people in the community (see article below) have started to doubt the Parrot project's usefulness, but maybe this cool Perl6 development will make them re-think their stance.



Will Parrot ever truly deliver? (http://pinderkent.blogsavy.com/archives/124 [blogsavy.com] )

Earlier today I was reading an article about Parrot [intel.com] . Parrot [parrotcode.org] is, as stated on the projects Web site, a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a .NET bytecode translator.

So Parrot does sound like an interesting piece of technology. Its understandable how a common runtime for scripting languages could prove beneficial. But will it ever be a platform suitable for serious, production usage? I have my doubts.

Parrot has been under active development for quite some time [parrotcode.org] now. The initial 0.0.1 release was made on September 10, 2001. During 2007, weve seen a release every month or so. So a lot of effort has been put into Parrot over the past six years. It has surpassed one of the major stumbling blocks with many Open Source projects, in that it has managed to build at least some development momentum. Unfortunately for its supporters, Parrot has never really seemed to catch on. I think there are a number of reasons for this.

Stability is probably the first problem. I dont mean stability in terms of the runtime crashing, or anything of that sort. Im talking about concept stability. There has always seemed to be a relatively large amount of change between releases. While this is good, in that there are improvements being made and new ideas being implemented, this causes problems for users who want to build reliably upon Parrot. Individuals and businesses often do not, or cannot, invest the time and effort to track a continually-moving target like Parrot.

The language implementations for Parrot [parrotcode.org] , while many in number, have been of limited use. Looking at the status messages of some of the most promising and practical language implementations shows why this might be the case. Such messages include:

  • Incomplete - but all examples and test cases are working. (Amber for Parrot)
  • Most of the samples work. (BASIC/compiler)
  • Has been broken for a long time. (BASIC/interpreter)
  • Parser is pretty complete. Generates PIR for basic Ruby programs (Cardinal, Ruby CVS Head 1.9 implementation)
  • Functioning, all samples working, lacks IO routines (Cola)
  • Working for some simple forms. Due to some broken features, most of the bootstrapping code has been commented out. (Common Lisp)
  • Functioning for handcrafted test cases. Loading frozen state is currently broken. Far from complete. (Parrot m4)
  • This project has been abandoned. Any takers? (Pint, an experimental PHP implementation)
  • Passes nearly 25% of tcls (lightly converted) test suite, using a Test::More like harness. (Tcl)

So while there are many interesting language implementation projects for smaller or more obscure languages that have reached further stages of completion, the ones that were most likely to be of practical use seem to be lacking. Now, this is understandable. Maintaining a suitably complete Ruby [ruby-lang.org] , Python [python.org] , Perl [perl.org] or Tcl [tcl.tk] implementation is not an easy task at all! And even if it were possible to come up to speed with the existing implementations, just staying current would be a major undertaking.

The third issue is that Parrot never really seemed to get a powerful backer. Java [sun.com] has Sun [sun.com] . .NET [microsoft.com] has Microsoft [microsoft.com] . Mono [mono-project.com] has Novell [novell.com] . Languages like Python, Perl and Ruby have large user communities, plus numerous business and academic supporters. While Parrot does have a unique community, as a whole I dont know if it has the resources necessary to put together and maintain an effective, usable, multi-language runtime environment.

Having followed the project for some time, I have come to realize that it may never really amount to anything of practical use. Now, thats not to say its useless. Putting it together has no doubt been an enjoyable task for many of its contributors. I imagine a small number of people have found a use for it. While it would be nice if it were to grow beyond that, its not something I expect to happen. It just doesnt offer what most serious users need.

Perl 5 to Perl 6 (5, Interesting)

cynicsreport (1125235) | more than 6 years ago | (#22123676)

In the time it took to develop Perl 6, other programming languages have been conceived, implemented, used and abandoned.
While I am relieved that Perl 6 is finally showing signs of life, I have concerns:
1. Can Perl 6 take the place of Perl 5?
Perl 5 is integral to Unix/Linux systems; it is pretty much taken for granted. To switch to Perl 6 seems like a monumental task. It seems more likely that those wishing to use Perl 6 will have it installed along with Perl 5 (not instead of).
2. Did it take too long?
Perl 6 received a fair amount of hype when the project began. With no realistic timetable publicly announced, it seems that people forgot or gave up on it. In fact, in that time Python has become very popular; I wonder if it has taken some of the 'market share' that would have otherwise gone to Perl 6.
3. Is it any good?
Perl 6 was supposed to be the "community's" rewrite of Perl 5. The word 'community', when it comes to programming language design, is a bit concerning.... It almost sounds like a euphemism for 'committee'. And that makes me shudder. I once heard the expression "A camel is a horse designed by committee." And I can think of a few programming languages that go along with that saying (No offense to camels).

Either way, I will download it. I will use it. I will see if it's any good. And, despite all of the issues, I am glad it's finally here!

Re:Perl 5 to Perl 6 (5, Interesting)

synthesizerpatel (1210598) | more than 6 years ago | (#22123774)

1. No. Nobody will care about Perl 6, plus, it's not integral to Linux/Unix. The reason Unix is popular is that you have options. Perl works if you like it, but you don't have to use it or be aware of it.

2. It took far too long. They had books out about Perl6 after the announcement, consisting of reprints of whitepapers and proposals.. Years later, still no perl 6 for real.

3. Nobody will care how awesome Perl 6 is. The audience of Perl 6/5 doesn't care about single binding vs multiple binding objects -- they won't even get out of bed to have an argument about strongly typed languages vs. weakly typed languages. They just like easy programming -- the metric of Perl 6's success is how much it caters to lazy people. If you want glue, use perl, if you want cement you use something stronger.

(I was a Perl guy for 15 years, used to love it, now Perl and Ruby both look like line noise that's been encrypted -- compared to my new girlfriend, Python.)

Re:Perl 5 to Perl 6 (1)

andy@petdance.com (114827) | more than 6 years ago | (#22123960)

How long should it have taken? Is there some standard for how long a new language and VM are supposed to take to implement?

Re:Perl 5 to Perl 6 (2, Insightful)

Anonymous Coward | more than 6 years ago | (#22124032)

Six years later and it is still in the experimental stage.

In those six years, my former company built and twice re-engineered a forex trading platform written in Java. We went from four machines to over hundred. This is on a shoestring budget with less than twenty engineers (developers and QA). We developed integration components to FIX, SWIFT, and custom projects to banks.

How many VMs are there to use as reference? The list is long. This is not rocket science. Perl6 is a joke in the same vain as Duke Nukem Forever. Perl was fine up to version 4. It did its job well, as a textual parser. Beyond that, it took on too much and now is sagging under its own weight.

Re:Perl 5 to Perl 6 (4, Informative)

chromatic (9471) | more than 6 years ago | (#22124194)

This is on a shoestring budget with less than twenty engineers (developers and QA).

A shoestring budget with one full-time developer is still more than Perl 6 and Parrot have had.

Re:Perl 5 to Perl 6 (0)

Anonymous Coward | more than 6 years ago | (#22125426)

You are telling me that in six years, they went from a functional specification to alpha with less than one person working on everything? Perl6 has tens of people working on it. You could take the same measure of time and apply it to the another open source project that does not have major corporate backing. FreeBSD went from from 4.4 to 6.3, undergoing two major re-engineering efforts.

Re:Perl 5 to Perl 6 (2, Insightful)

synthesizerpatel (1210598) | more than 6 years ago | (#22124034)

A good rule of thumb for your programming language rewrite is, get it done before you lose programmers who jump ship for: a) something 'cooler' b) something better There are lots of things out there now that have one or both of those qualities. Perl just has awesome advocacy and marketing at this point probably only because it's the tradition to treat Perl with respect as it made unix programming easy for newbie Linux people. Times have changed. There are other better options. It took too long.

Re:Perl 5 to Perl 6 (2, Insightful)

Anonymous Coward | more than 6 years ago | (#22125202)

PHP demonstrated that language users don't really care whether a language was "planned" or not.

Perl was planned by a *linguist*. It may look like noise, but there is a method to the madness, overall, it is well thought out.

If the amount of time is any indication, I'd expect perl6 to be far more planned out and well reasoned than most other languages.

Think about this:

    if(! $bool){ ... }

    unless($bool) { ... }

The unless actually makes it easier to read, it is more "natural" to humans.

While other languages might have (the "no opening braces for one line rule")

    if(! $did_it_already)
        do_something()

Perl has this option:

    do_something() unless($did_it_already);

I think perl is actually more readable in these cases, it's also more fun.

So many other languages are written with a strictly technical bend, perl has always taken human language itself as a part of its design. Not to mention, it is a *creative* language.

I fear if people won't use it, it is mainly because everyone thinks everyone else uses PHP. (I admit, *I* use PHP because that is what everyone else is using)

It will be interesting to see if people care about the linguistic planning.

Re:Perl 5 to Perl 6 (3, Insightful)

zappepcs (820751) | more than 6 years ago | (#22123790)

Actually, evolution developed the camel and the horse for different environments, but that is not really the issue.

PERL6, like those before it, is just a tool. It will either work or not. Some don't like PERL because it can be messy and perhaps unstructured. I submit to you that some coders can make a mess of any language. PERL has its advantages, and like everything else, its disadvantages.

I too will use PERL6, no matter what name it is given. I find PERL is quite useful, and I presume that many others do also as it still seems to be relevant to all but the prophets of the latest Web2.0 gizzmo language thingies.

In any case, a hammer is a hammer, and when you have to drive some nails... well, damnit, use a hammer.

Re:Perl 5 to Perl 6 (1)

Hucko (998827) | more than 6 years ago | (#22123870)

so evolution is a committee composed of anthropomorphised Laws of Nature?

Re:Perl 5 to Perl 6 (5, Funny)

chromatic (9471) | more than 6 years ago | (#22124174)

I too will use PERL6, no matter what name it is given.

That's good; that name will likely be "Perl 6".

Re:Perl 5 to Perl 6 (1)

Thrip (994947) | more than 6 years ago | (#22125386)

I submit to you that some coders can make a mess of any language.
True, but I submit to you that precious few programmers can make a not-a-mess out of perl.

Re:Perl 5 to Perl 6 (1)

xk0der (1003200) | more than 6 years ago | (#22123806)

You certainly have made valid observations and comments.

Perhaps, the "radical" changes that have been brought into Perl 6 make it almost a new language. I don't know if this analogy will fit in here, but it is quite similar to what we had with VB6 and VB.NET . Whenever there is a radical change in a programming language, eyebrows are bound to raise and apprehension would definitely be the first emotion. And adding to it the fact that it took such long for Perl 6 to materialize it doesn't do good to the language.

I haven't gone through the entire new feature list, but I read somewhere that they do have a Perl 5 compatibility mode. So I guess we can still run perl5 scripts using the perl5 interpreter.

I'm yet to download Perl6, so will come-back when I'm done playing with it!

As a final word, I hope (and pray) that they have not twisted Perl so much that it isn't Perl anymore.

Re:Perl 5 to Perl 6 (4, Informative)

Killer Eye (3711) | more than 6 years ago | (#22123810)

Switching may not be that bad, since they built in an incremental mechanism (the same mechanism that lets you put code from ANY two supported languages into the same source file). You could take your 99%-Perl-5 source and add a Perl 6 segment to it, and over time make it fully Perl 6.

Not "Community". More like Larry's Magnum Opus. (5, Interesting)

Anonymous Coward | more than 6 years ago | (#22124296)

The supposed "community" rewrite started with a bunch of actual community requests, which Larry Wall then waded through increasingly slowly, pretty much taking the little bits he liked, then proceeded to add on a huge set of requirements that he cared about personally (and to be fair, probably the core Perl devs too). Things like extending regex into a full grammar that could parse Perl and be used to extend the language. And linguistic and abstract gumbo like how regular control flow (returning for a fucntion) was some specialization of the exception mechanism.

Dont get me wrong, I loved reading the Apocalypses. I thought, "wow, Larry really has a deep vision of where he wants things to go". I thought is was pretty neat and hoped to play with it. But in my mind I was thinking that Perl 6 would keep to the general strengths of Perl, in that it was FAST to get done what you wanted.

That was YEARS ago. I'm abstractly interested but have no desire to use Perl anymore. The "community" rewrite was sprinkled with requests that addressed what people were actually trying to do (certainly NOT trying to parse Perl, NOT taking 6 years, and NOT trying to get a VM running), they were a hodgepodge but every submission was pretty much focused on a narrow problem and in themselves would be achievable in less than 6 years. Instead it's become Larry's Odyssey. I also no longer harbor any expectation that Perl 6 will be FAST (to learn incrementally, to develop a quick solution, or to execute). Great if it does, I just don't believe or care.

I wish Perl 6 had been the 'shortsighted' approval of perhaps a quarter or a third of the RFCs, rolled out within a year or two. Maybe Perl 7 could have continued this stupid trajectory it's on to irrelevance. More importantly, the volunteer development and donations would be much higher because people would actually CARE about the progress and the features.

This wasn't what it should have been. It is like this because Perl 6 was overrun by Larry's priorities instead of the community's.

Re:Not "Community". More like Larry's Magnum Opus. (4, Interesting)

mr_mischief (456295) | more than 6 years ago | (#22124808)

If you're looking for incremental improvements, you might take a look at Perl 5. In 2001 there was 5.6.1 and now there's 5.8.10 with many improvements.

Want a few examples of improvements? The regex parser recently went from mostly recursive to mostly iterative. it also has many new features and has other efficiency gains. Unicode handling exists and continues to get better. Several things take less memory than previously. Lexically-scoped pragmas can now be implemented in pure Perl without resorting to C. A simpler and clearer way to handle static lexical variables has been introduced. Perl's default variable can now be lexically scoped. Many new language features have been introduced. Perl has a switch statement in the core now. There's a new defined-or operator. The user-defined sorting subs can now be recursive if you need them to be. Compress::Zlib, Archive::Tar, and Archive::Extract are among some exciting new core modules.

Most of what I just mentioned were changes between 5.8.8 and 5.10.0, so there's quite a bit more between 5.6.1 and the current Perl landscape. There were also a lot of changes to Perl 5 back in the 2001 to 2002 time frame, and have been all along since.

Some changes between 5.6.1 and 5.8.0 included changing to a stable algorithm for sort(), changing the default IO layer from the system stdio to the PerlIO system for more predictable cross-platform behavior, safe signal handling, the UTF8 encoding being changed from lexically scoped with the program to being associated with a file handle, and a much better threading model.

Important changes during the 5.8.x series include extra randomness in the order of hash keys, Config.pm being shrunk by about 90%, better handling of UTF-16 encoding, the elimination of some temporary lists during certain operations, and smarter malloc() handling.

Perl 5 isn't exactly sitting still, and it hasn't been. Perl 6 is, IMHO, not so much a simple upgrade of Perl as a new language in the family of Perl-like languages. Perl 6 will be to Perl 5 much what Perl 5 was to Perl 4. People will notice some syntax changes, but many people will program in it like they were using the previous version with a tweaked syntax. Others will take advantage of all the new features. Eventually most Perl programmers will find a portion of the language that suits their tasks most readily and will become most comfortable with that. Perl 5 isn't going away for a long time, so people who really can't stand the idea of a new Perl will be able to do a lot of Perl 5 work.

Yeah, there are other languages that will wax and wane. Ruby looks interesting, and a lot of people seem to like it. I have a general distaste for personally using languages with so much significant whitespace as Python, but lots of people really like it and there's really good software being written in it. I can't fault a language or its designer for my having other preferences. JavaScript is pretty handy, and it's getting better tools and implementations all the time and a new standard soonish. I've picked up HaXe recently, and it's an interesting alternative to ActionScript and JavaScript. I am considering learning D. Java's really popular. Yet many people still program in Perl, C++, C, Ada, Pascal derivatives, Basic, Fortran, and even COBOL. People said Basic was dead, but Visual Basic is still around.

Like Perl, though, what we call Basic these days doesn't much resemble Basic from 20 years ago. Visual Basic doesn't even look like older versions of itself, let alone QuickBasic or the even older and even more severely limited GWBasic or Dartmouth Basic. If Perl 6 is a few years separated and a bit different, it doesn't mean it's not Perl or that it was a waste to create it. The only way it would be a waste is if nobody used it.

Re:Not "Community". More like Larry's Magnum Opus. (2, Informative)

mr_mischief (456295) | more than 6 years ago | (#22124818)

Crap... that first line should read '5.10.0' where it says '5.8.10'.

s/8\.10/10.0/;

Re:Perl 5 to Perl 6 (5, Insightful)

IkeTo (27776) | more than 6 years ago | (#22124686)

> 2. Did it take too long?

> Perl 6 received a fair amount of hype when the project began. With no realistic timetable
> publicly announced, it seems that people forgot or gave up on it. In fact, in that time
> Python has become very popular; I wonder if it has taken some of the 'market share' that
> would have otherwise gone to Perl 6.

I tend to think Perl 6 as a completely new language, rather than a new version of an old language. If you have even the concatenation operation changed from "." to "_", and if array indexing that you had written as "$arr[$i]$" now must look like "@arr[$i]" instead, and if you'd lose RAII on the way because garbage collection is now no longer at predictable time, it mean all programs will have to be significantly modified or at least converted. This is not exactly what I'd expect from a new version.

As a new language, it emerge probably slower than what most of us hope, but is probably not as slow as most of us perceived. After all, Perl 6 is a very ambitious language that have all features of Perl 5 and quite a bit more, and it has a completely new low-level engine as well. That slowness is probably due to the lack of any people dedicated to its implementation until very recently.

By the way, Python is not new. The first version of Python is released in approximately the same time as the first version of Perl. Python is first conceived in the 80's, first implementation started being written late 1989, completed 1991, and did not gain general acceptance until 2000. FYI, Perl 6 is conceived in 2000, Pugs starts to be implemented in early 2005, although it is still quite rudimentary.

Re:Perl 5 to Perl 6 (0)

Anonymous Coward | more than 6 years ago | (#22125184)

They did WHAT to the concatenation operator ???

You know, new versions are one thing, and I'm sure that perhaps 1 developer in 1000 might have the need for Multi-Whatevered-Objects and all the other shiny new bits of Perl 6.

But WHY must they always bugger about with the fundamental underlying basics of the language ?

AFAIK, concatenation has ALWAYS used the "." from the damn of perl ... now it's going to use "_".

So I guess we'll just have to rewrite the whole damn lot eh ?

What motivation can anyone have for upgrading to this new version, when the first thing they'll have to do is go back through all their old scripts and change out every "." to an "_" ?

And don't tell me about "Perl 5 compatibility mode" ... if you have to set this flag to tell Perl 6 to behave like Perl 5 and treat "." as it was always treated ... then why the fuck did they change it to an "_" in the first place ?

Bad move Larry, I'll be sticking with 5.005 which has served me well for 7 years.

Re:Perl 5 to Perl 6 (2, Insightful)

WWWWolf (2428) | more than 6 years ago | (#22124890)

In fact, in that time Python has become very popular; I wonder if it has taken some of the 'market share' that would have otherwise gone to Perl 6.

Yes, in meantime, Python has gained ground - as has Ruby.

But I think there's one thing that's easy to forget - Perl6 has also been losing ground to Perl5. People need to get their jobs done; if you need Yet Another Hack Built Around An Awesome CPAN Module to keep stuff working, you really have no choice but to write it in Perl5. People have jobs to do.

Before the P6 hype, I used to write stuff in Perl, after hype, I was like "Ooh, it will really rule one day," and now I also write a lot of stuff in Ruby, which has all of the stuff that Perl really needs, such as a sane OO syntax. I really hope Perl6 will be a success and I look forward to writing stuff in it. When it's released. I just have to rely on the tools that we have at hand...

Re:Perl 5 to Perl 6 (1)

ajs (35943) | more than 6 years ago | (#22125344)

In the time it took to develop Perl 6, other programming languages have been conceived, implemented, used and abandoned.
That's true, but I don't think anything as ambitious as Perl 6 has made it this far. Haskell is really the only language that I know of that's been even nearly as ambitious in recent memory and then you have to go back to the likes of CommonLISP to find another. There are HARD problems to solve for Perl 6, and you can't just write a simple parser and be done. This isn't Perl 5 or Python or Ruby. This is real change in programming language design. If you disagree, sit down and try to take any given modern scripting language and make it code-data reversible. Then add LISP macros and allow any language feature to be written IN the language. Show your work ;-)

While I am relieved that Perl 6 is finally showing signs of life, I have concerns:

1. Can Perl 6 take the place of Perl 5?
By definition, yes (being backward compatible in the sense of being able to run Perl 5 code). In practical terms, people will keep a Perl 5 binary around for a long time to come, I'm sure.

2. Did it take too long?
Moot question. If it's good, we'll use it.

3. Is it any good?
It's every good... if you consider that good, then it's your good too.

Perl 6 is, to me, the most important language development since the CommonLISP standard was released, and in some ways more important due to Perl's existing audience size.

BFD? (-1, Troll)

brasspen (899025) | more than 6 years ago | (#22123688)

Does this matter? Did anyone think this language had room to evolve? Isn't Perl just for legacy code now? Aren't new people learning Python or Ruby, and aren't those better choices? 1995 is calling. It wants its scripting language back.

Re:BFD? (0)

Anonymous Coward | more than 6 years ago | (#22123750)

Said the person posting to a Slash [wikipedia.org] based website.

Re:BFD? (1)

brasspen (899025) | more than 6 years ago | (#22123856)

I think you're saying it's ironic I'd have that attitude on a web site that is run on Perl. Correct? That just proves my point. Slashdot was created in 1997. This is legacy code. If it were built today it would not be with Perl. Look at Digg. I want somebody to tell me why they think Perl is relevant for new projects today.

Re:BFD? (2, Insightful)

stuporglue (1167677) | more than 6 years ago | (#22123936)

I use Test::More and other Perl test automation tools extensively at work. I recently wanted to make a web front end for the testing reports. I already had test results parsers written as Perl modules for the command line test analyzers, so I just used Perl to make the test report pages with CGI.

It's not always the right choice, but it can still be very useful.

Re:BFD? (4, Informative)

furry_marmot (515771) | more than 6 years ago | (#22124026)

Uh...Slashdot just rewrote its interface and much of its code base a few months ago. Not exactly legacy.

Re:BFD? (0)

Anonymous Coward | more than 6 years ago | (#22124066)

Whooh, Slashdot switches to CSS. That really counts as an overhaul!

Re:BFD? (5, Insightful)

adamkennedy (121032) | more than 6 years ago | (#22123852)

This is probably just flame bait, but here's your answer.

Python is overly simplistic, making it difficult to do certain types of interesting programming.

This is by design, Python is meant to be dumbed down (in the sense that Java is) and have a clean small footprint.

Ruby is slow, even by scripting language standards (in the main implementation, anyways).

This is by design (well ok, not really), but Ruby needs to support all those gorgeous abstraction layers somehow.

Both of them aren't that amazing when it comes to Unicode (like Perl or Java), don't have built in security-hardened modes (like Perl's tainting or PHP's weird data firewall thingy, etc), aren't as portable as they might be (like EBCDIC, VMS, S390 and other places that aren't Unix or Windows) and their package repositories lack sophistication and the ability to properly nest dependencies in a cross-platform way (like Perl, Fortran, R and Erlang).

So by all means, if you have simple programming needs on lowest-common-denominator environments doing ordinary things and you don't stretch far beyond the core libraries, by all means go with a language that fits your brain the best, be it Perl, Python, Ruby, Brainfuck, whatever.

If you want to integrate with C code inside the rendering pipeline of a movie render farm while having code so boring anyone can maintain it, use Python.

I'm still not sure of anywhere that Ruby is a standout success... Rails has jumped the shark and is in decline, and I'm not aware of any major use cases...

Perl is still a brilliant language to get the simple things done really really fast but tieing together half a dozen CPAN modules, while still having the ability to scale your code base up a hell of a long way, and the knowledge that it's fairly easy to write highly portable code.

Re:BFD? (1)

brasspen (899025) | more than 6 years ago | (#22123876)

Thank you very much. That's what I wanted to read. I agree with you on RoR. I think it's not quite as billed. My problem with Perl is reading it. I can't stand it. Really. I'm learning Smalltalk and I can't go to Perl after that. For now it's just shell scripts/sed/awk. Cheers.

Re:BFD? (4, Insightful)

dave1791 (315728) | more than 6 years ago | (#22123990)

"...while having code so boring anyone can maintain it..."

I hope that I understand that wrong and that you don't consider unintelligible, unmaintainable, code 'interesting' in a good sense.

Because my mama taught me to comb my hair, keep my fingernails clean and write code that other humans can understand without wanting to couge their eyes out with a fork.

Re:BFD? (1)

Jugalator (259273) | more than 6 years ago | (#22124440)

Agreed, that one gave me a good laugh as I read it. :-) I don't know *what* the author meant exactly, but it sounds like I'd prefer the "boring" code over the "interesting" Perl code in case I'm going to be the new maintainer of a software project.

Re:BFD? (2, Funny)

MK_CSGuy (953563) | more than 6 years ago | (#22124712)

Because my mama taught me to comb my hair, keep my fingernails clean and write code that other humans can understand without wanting to couge their eyes out with a fork.

You don't happen to be mrs. roberts's [xkcd.com] child, do you?

Re:BFD? (1)

adamkennedy (121032) | more than 6 years ago | (#22125044)

I have some friends who have worked in motion picture render pipeline development.

As I understand it, C integration is a big deal for them, but more importantly because of typical movie time pressure they pretty much know in advance that NOBODY working in that area has time to write documentation, and most of the time to write comments either, and most of the time the code will be utter dreck and not properly designed (at a class by class level).

Code that does very interesting things doesn't HAVE to be unintelligible, and in the cases where it's heading in that direction (because it HAS to for things like functional programming or continuation tricks and so on) copious comments and full documentation (something the CPAN culture has installed in many Perl coders) let you get the best of both worlds.

However, in a situation where only having the time to write crap and not document it is the standard for the entire industry, you almost certainly want a simple language that doesn't give you enough rope to hang yourself.

Java, Python etc etc...

And of course the C integration helps enormously.

Re:BFD? (1)

Junta (36770) | more than 6 years ago | (#22125340)

Python tends to force, particularly for shorter programs, much more readable code to a third party. It conversely requires you to perhaps be a lot more verbose in some ways, but not verbose enough in others. In longer programs, sometimes you have to maybe look a little carefully to understand the implicit type of a variable, and the whitespace code grouping can cause problems on multi-developer projects (one person uses spaces, another tabs, tabstops don't line up and suddenly one spaced line looks like it is in the same level as a tabbed lines). So I can understand ways python *can* become hard to maintain/read, but my experience is that Perl code has a much stronger tendency to go unintelligible. The indentation, while possible to mess up without affecting program behavior, can be and often is not carefully tended to. Not helping perl's image is the fact that people teaching perl/posting on forums seem to constantly be in an obfuscated perl contest. Perl enthusiasts seem to believe they only have worth if they write unreadable code.

I say this as a person who has moved from Python to Perl due to various reasons. Perl I had a basic understanding of, but the various posts of code snippets on forums for specific tasks had always made me nervous about perl and glad for python. Now that some issues in the python world forced me to perl, I've found perl *can* be a great and straightforward language, so long as the developers are not *trying* to show off how cool their perl skills are.

Re:BFD? (1)

Wiseman1024 (993899) | more than 6 years ago | (#22124450)

"interesting programming" --- You call line noise "interesting programming"? Name one thing that's not insanely unmaintainable and therefore useless that you can do on Perl and cannot on Python.

Python is not dumbed down, it's simplified. The introduction of R6RS (Scheme) contains the best insight I could ever find on the design of languages (and software in general): "Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.". Python does this better.

Ruby slow? Who gives a damn? Faster processors or larger farms are cheaper than man hours, so if it's more productive than, say, Java (and pretty much anything that's not assembly would be), then it's well worth it. The problem with Ruby is that it's fugly and doesn't follow the above mentioned principle, and that it has sub-par Unicode support (then again, PHP does too), not that it's slow.

And Python has good Unicode support, what are you talking about?

Also, if you consider PHP's misfeature of magic quotes (or who knows what else), you need to relearn the definition of security.

Python runs even on frigging PSPs. I call that portable.

Re:BFD? (4, Insightful)

chromatic (9471) | more than 6 years ago | (#22124528)

Name one thing that's not insanely unmaintainable and therefore useless that you can do on Perl and cannot on Python.

Working lambdas (especially closures), for one.

Python is not dumbed down, it's simplified.

How ironic that you praise Scheme's design in this context. The ambiguous parsing of vertical whitespace leads directly to the broken lambda problem. Now that's probably fine for a teaching language, but plenty of people seem to think that Python is a language that scales up for experts. If that's the case, perhaps it's appropriate to judge the design of Python in terms of how it supports important features on which to build larger and more elegant abstractions.

Re:BFD? (2, Interesting)

Wiseman1024 (993899) | more than 6 years ago | (#22124610)

Python's lambda is limited to a single expression, which sucks, but you can always do def _(...) just before use. As for closures, Python implements closures properly (properly = as described in SICP, the environment model of evaluation), but immutable objects such as numbers or strings are, well, immutable, and the = operation played on a bare symbol always defines it in the current scope. However, an improvement on this regard is coming on Python 3000.

Python's parsing of vertical whitespace is not ambiguous. Lambda doesn't support statements because Guido doesn't want to. I would easily allow something like:

higher_order_function(lol, lambda x, y: ...code goes here... ...more statements...
, next_arg, etc)

Or, if Python didn't have statements (which are the real flaw IMO), you would just do something like:

higher_order_function(lol, lambda x, y: progn(
        whatever,
        whatever), next_arg, etc)

Define progn as lambda *a: a[-1].

Re:BFD? (1)

Wiseman1024 (993899) | more than 6 years ago | (#22124628)

Oops, my first example got screwed up. I meant:

Argh, this never shows up properly. Consider % a space.

higher_order_function(lol, lambda x, y:
%%%%code goes here...
%%%%more statements...
, next_arg, etc)

(Wow, I hadn't realized how badly does Slash suck. No proper code formatting, ugly HTML formatting, no HTML entities, no Unicode support, ... This is like my 6th attempt.)

Holy cow! (2, Interesting)

try_anything (880404) | more than 6 years ago | (#22124836)

perhaps it's appropriate to judge the design of Python in terms of how it supports important features on which to build larger and more elegant abstractions.
Closures and lambdas can be faked using objects and named functions. It's admittedly awkward, but at least it's intelligible. The code can be read and understood without being a Python language junky. (Is there even such a thing as a Python language junky?)

Compare that to Perl5 OO. Perl5 OO is dog food, yet Perl 5 library authors consistently use it to define their library interfaces. All those libraries may toss the OO and rely on hashes of closures behind the scenes -- I haven't checked -- but library programmers evidently find it advisable not to share their elegant abstractions with users. Instead, they use objects, which (in Perl5) are wonky, bizarre, and understood by practically no one who isn't a Perl language guru. The fact that library authors define their interfaces in terms of constructs that few people understand seems like an admission that Perl has its own problems creating elegant abstractions.

plenty of people seem to think that Python is a language that scales up for experts
Actually, the idea is that you can know enough about Python to work competently with Python code and still have enough brainspace left over to be an expert in something besides programming. Try THAT with Perl.... I mean, try that sometime when you're not ten times as smart as I am :-(

Re:BFD? (2, Insightful)

LaskoVortex (1153471) | more than 6 years ago | (#22124738)

This is insightful? Since when is opinion stated as fact insightful?

OK--here goes:

Perl has to many shifted numbers as part of is syntax.

English words are too hard to spell.

Lisp is backwards and all of the parentheses make it hard to read.

Python is named after a snake making it a stupid name.

Python is named after a comedy troupe making it a stupid name.

C would be good except that it takes to long to make anything work.

Python makes me indent which makes me feel like a little kid.

Indent is not mandatory in most languages.

Fortran makes you start in a set number of columns from left and the lack of case sensitivity makes it seem to simplistic for anything worthwhile.

Objective C replaces periods with closed brackets making you type too much.

Put any of these languages on a server farm and milk a cow.

I'm a pony.

Basic is the best language because I've never bothered to learn anything else. It can scale up and you can write libraries to get almost anything done you want. Its easy to program in. I don't use goto that much.

Re:BFD? (1)

onefriedrice (1171917) | more than 6 years ago | (#22124802)

I'm a pony.
Opinion or fact?

Re:BFD? (1)

bytesex (112972) | more than 6 years ago | (#22124780)

Exactly. Perl is fast, powerful and modular, and CPAN is near infinite. You can write perl anyway you want - even legibly. The only beef that a non-kneejerk person could have with perl is that it's big, and that its class definitions suck. And a few of the 'reserved' identifiers that seem a little bit contrived or opportunistic at times. The other higher level languages all lack library support and expressive power. Only their respective ages (all younger than perl) makes that forgivable; it took more than ten years to get java to support generics after all.

Re:BFD? (0)

Anonymous Coward | more than 6 years ago | (#22124994)

Python does NOT lack library support. It comes with many built-in modules [1], and there are plenty of extra modules available online


[1] - http://docs.python.org/modindex.html [python.org]


Python does NOT lack expressive power either. Things like list comprehensions are beautiful:


>>> [str(round(355/113.0, i)) for i in range(1,6)]
['3.1', '3.14', '3.142', '3.1416', '3.14159']


http://www.network-theory.co.uk/docs/pytut/ListComprehensions.html [network-theory.co.uk]
Both powerful and easy to remember without needing any extra documentation

Re:BFD? (2, Interesting)

DAldredge (2353) | more than 6 years ago | (#22124008)

This isn't reddit - some of use have jobs and use Perl to make those jobs easier. We can't afford the language of the month fads that pervade that other site.

LOLCODE? (-1, Offtopic)

Anonymous Coward | more than 6 years ago | (#22123728)

Ur sorcez... I eated dem.

Perl6 has *not* been released (5, Informative)

5E-0W2 (767094) | more than 6 years ago | (#22123804)

This is not the release of Perl 6, this is merely another release on the branch that will one day become the perl6 release. The interesting change is that you can now build a proper binary version of perl.

About Parrot .. (2, Interesting)

systems (764012) | more than 6 years ago | (#22123838)

Does Parrot work like the .Net framework in the sense that libraries say writen in Perl can be used in Python or Tcl! (note that Tcl is a completly different paradigm than Perl or Python)

I do know that for .Net to achieve this it forces languages to implement certain set of features, and that the libraries to be shareable to be written using a subset of the CLI or CLR. Are there any Parrot plans for something similar, the idea of a single Libarary archive for all the free languages out there sounds amazing. Groovy is doing something exactly this with Java.
Anyway, I read the faq and this seems unlikely to be planned for, but maybe someone else knows better!

Re:About Parrot .. (5, Informative)

Anonymous Coward | more than 6 years ago | (#22123962)

Yeah, the idea is that you can write Python code that has access to all of CPAN, for instance. In fact, the whole Parrot theme came from an April Fool's joke referencing the Monty Python skit, saying that Perl and Python would converge into a language called Parrot. Thus, Perl and Python are Parrot's two canonical languages.

Of course, you can also write a CGI script in Perl that can import some PHP library, for another example.

This is much like Microsoft's DLR (Dynamic Language Runtime), which intends to make the world of .Net libraries available to dynamic languages, with Python, Ruby, and JavaScript as its headliners.

dom

Re:About Parrot .. (4, Informative)

egarland (120202) | more than 6 years ago | (#22124130)

Yes.. but.. (from what I understand) unlike .net and java, you will be able to compile binary versions of your applications for distribution that don't rely on a giant, bloated, pre-installed runtime *and* they aren't compiled to bytecode at program launch. Also, the register based parrot engine underneath is supposed to be much faster than the purely stack based .net and java VMs.

Binaries that launch and run at the speed of C with the ability to write in a high level language? Sounds like the future of programming to me.

The big question I have is will multiple programs be able to share memory to store a commonly used library like C can. One of the things I think causes big inefficiencies in modern languages is the way they don't share memory well. If I have a C library that has, say, 5 megs of pure code in it and I'm running 10 copies of a program that uses it, all 10 can use the same 5 meg copy with only parts that are written to localized to the application. With high level languages, I need to use 50 megs of memory for each. Can Parrot share like C does and have all copies of the program reference the one copy stored in memory? Java and .net can't use this since their libraries aren't implemented on a level where that is possible. Parrot probably could but I'm not sure if it does. Does anyone know the answer to that?

Re:About Parrot .. (2, Insightful)

chromatic (9471) | more than 6 years ago | (#22124188)

Parrot probably could but I'm not sure if it does. Does anyone know the answer to that?

That's definitely a goal. I think we'll need to make at least one change to the garbage collector such that we don't trigger copy-on-write for shared memory pages of internal data structures and dirty pages unnecessarily, but I think it's possible to fix that without too much trouble.

Re:About Parrot .. (0)

Anonymous Coward | more than 6 years ago | (#22124690)

I think we'll need to make at least one change to the garbage collector such that we don't trigger copy-on-write for shared memory pages of internal data structures and dirty pages unnecessarily, but I think it's possible to fix that without too much trouble.

Well hurry up young man, the world is waiting....
That should take about five minutes to do right? :-)

Re:About Parrot .. (2, Interesting)

Jugalator (259273) | more than 6 years ago | (#22124420)

Yes.. but.. (from what I understand) unlike .net and java, you will be able to compile binary versions of your applications for distribution
Well, Parrot is actually much like the .NET VM. One reason Parrot was invented according to their own FAQ was because at the time, the .NET VM hadn't been released. Indeed, the .NET CLR now supports dynamically typed languages by making use of the Dynamic Language Runtime [wikipedia.org] , like IronPython and IronRuby already use.

Compare the Parrot PIR and PASM intermediate languages to the .NET IL language. Basically, Parrot does a similar thing as the .NET Dynamic Language Runtime running on top of the Common Language Runtime (and yes, Parrot will support multiple languages like .NET too).

At the time when Parrot was started, there was basically only Java widespread for dynamic language support, but the Java VM did not support dynamic languages well.

So I'm not sure this is the revolution you're looking for. Here you have some example usages: http://www.parrotcode.org/examples/ [parrotcode.org] There's nothing special about natively run code here in the sense you seem to be talking about. The point of the Parrot project is rather about uniting many languages behind a single bytecode that their interpreter can "compile" to a form that can be run by it, much like the concept of .NET. One can also check this out: Is it too late for Parrot VM? [infoq.com] which pretty much repeat what I said.

Re:About Parrot .. (1)

mr_mischief (456295) | more than 6 years ago | (#22125004)

Parrot's one target for multiple languages, but it's also only one target of Perl 6. Goals include that Perl code will be able to be targeted to either a JIT native compiler or a traditional object code compiler as well as targeting Parrot.

Re:About Parrot .. (1)

cxreg (44671) | more than 6 years ago | (#22124512)

The big question I have is will multiple programs be able to share memory to store a commonly used library like C can. One of the things I think causes big inefficiencies in modern languages is the way they don't share memory well. If I have a C library that has, say, 5 megs of pure code in it and I'm running 10 copies of a program that uses it, all 10 can use the same 5 meg copy with only parts that are written to localized to the application. With high level languages, I need to use 50 megs of memory for each. Can Parrot share like C does and have all copies of the program reference the one copy stored in memory? Java and .net can't use this since their libraries aren't implemented on a level where that is possible. Parrot probably could but I'm not sure if it does. Does anyone know the answer to that?

There is nothing magic about what C or C++ does when it utilizes shared memory for dynamically linked libraries. Your assertion that Java or C# cannot do this strikes me as incorrect, although I'm not sure if any VMs actually make use of such a thing or not.

The way it basically works is, at least on *nix, the library (eg a libfoo.so.0 file) is loaded by the runtime linker (or the program using something like dlopen) which typically loads this file using the system (read: kernel) call mmap(). One of the key features that mmap provides is that the pages can be shared if two processes load the same file. Since this is (in this case) read-only memory, the pages should never be un-shared and you continue to benefit as long as processes continue to mmap the same file (which is how you are able to upgrade shared libraries -- the old inode is still there, and a new file replaces the old name in name, and new processes will load the new version, leaving old processes happy with the old one).

Parrot might be able to give you what you are looking for if it saves compiled bytecode, or something like that, to disk and then mmap() it back into memory to actually execute it. That could certainly be an interesting optimization, although you'd have to be clear if you want to recompile libraries when you compile a program. I'm not sure how the semantics of this would work. Maybe it could work using a mtime-based compile-as-needed mechanism.

Not Quite Finished Yet, But... (0, Redundant)

ImustDIE (689509) | more than 6 years ago | (#22124082)

This post is a little misleading. Perl 6 is not done, this isn't a 'Perl 6 release'. It's just another Parrot release, with the neat feature that you can finally run a perl 6 binary instead of going through the parrot one. This, by itself, is nothing major. The main reason for this post is to publicize the great amount of progress Perl 6 and Parrot have made, particularly within the last few months. And by publicizing that, to hopefully get more people involved. If you're interested in running Perl 6 now, check out www.pugscode.org -- Audrey's compiler is still further along than the official 'Rakudo' one (although it shouldn't be for too much longer ;-). However, this is still great news to Perl fans. I'm not a contributor, but I do subscribe to the parrot mailing list; the fact that the real Perl 6 interpreter (although incomplete) is finally underway and making great progress, and the momentum that comes with that, is exciting. Even if you're not a Perl fan, the Parrot bits should still be quite interesting to anyone that enjoys language implementation. The PCT (Parrot Compiler Toolkit) is maturing nicely and many languages have working interpreters/compilers (to various levels of completion) using it. The amazing thing about it is the sheer speed that you can get a working language together. Rakudo is built on top of NQP (not-quite-perl6) -- a subset of perl 6 built in a matter of (a very few) weeks. And it's important to keep in mind that while Perl 6 is the star of the show for Parrot, Parrot is being designed to fit all dynamic languages; so don't be scared off because you think Parrot is too Perlish. I regularly see posts on the mailing list helping to make Parrot friendlier for other languages (particularly TCL) as people develop using parrot. For open source fans, I think Parrot is our best bet for a VM to give .NET a fight (although feel free to reply with other suggestions, I don't keep up with too many others ;-).

Not Quite Finished Yet, But... (formatted) (5, Informative)

ImustDIE (689509) | more than 6 years ago | (#22124096)

Very sorry for double posting, but I checked the wrong formatting box on the previous post.

This post is a little misleading. Perl 6 is not done, this isn't a 'Perl 6 release'. It's just another Parrot release, with the neat feature that you can finally run a perl 6 binary instead of going through the parrot one. This, by itself, is nothing major. The main reason for this post is to publicize the great amount of progress Perl 6 and Parrot have made, particularly within the last few months. And by publicizing that, to hopefully get more people involved.

If you're interested in running Perl 6 now, check out www.pugscode.org -- Audrey's compiler is still further along than the official 'Rakudo' one (although it shouldn't be for too much longer ;-). However, this is still great news to Perl fans. I'm not a contributor, but I do subscribe to the parrot mailing list; the fact that the real Perl 6 interpreter (although incomplete) is finally underway and making great progress, and the momentum that comes with that, is exciting.

Even if you're not a Perl fan, the Parrot bits should still be quite interesting to anyone that enjoys language implementation. The PCT (Parrot Compiler Toolkit) is maturing nicely and many languages have working interpreters/compilers (to various levels of completion) using it. The amazing thing about it is the sheer speed that you can get a working language together. Rakudo is built on top of NQP (not-quite-perl6) -- a subset of perl 6 built in a matter of (a very few) weeks. And it's important to keep in mind that while Perl 6 is the star of the show for Parrot, Parrot is being designed to fit all dynamic languages; so don't be scared off because you think Parrot is too Perlish. I regularly see posts on the mailing list helping to make Parrot friendlier for other languages (particularly TCL) as people develop using parrot.

For open source fans, I think Parrot is our best bet for a VM to give .NET a fight (although feel free to reply with other suggestions, I don't keep up with too many others ;-).

Re:Not Quite Finished Yet, But... (formatted) (1)

dkf (304284) | more than 6 years ago | (#22124914)

I regularly see posts on the mailing list helping to make Parrot friendlier for other languages (particularly TCL) as people develop using parrot.
Interesting, especially as I don't follow ParTcl (Tcl on Parrot) closely. Care to point us to any performance figures? A comparison of the speed of Perl5 with this release of Perl6-on-Parrot would also be interesting, since Perl5 is a reasonably well-known quantity.

And before anyone else points this out, yes, I do know that all benchmarks are misleading. Those of us who are language developers are allowed to use them despite their flaws.

*rubs hands together* (1)

bgibby9 (614547) | more than 6 years ago | (#22124106)

man...this is gonna be awesome! Kudos to everyone who's contributing to making my preferred language so much better! Live long and Perl on!

To all the detractors (4, Informative)

Evets (629327) | more than 6 years ago | (#22124354)

I'm not sure why anybody is up in arms about a Perl6 release date. It takes a long time to get done. That's the way the world works. This isn't a platform with a fixed set of requirements, a predictable user base, and limited scalability requirements.

People have been arguing for who knows how long about syntax. At some point the argument has to end and someone has to implement that syntax. It's not an easy thing to bring either of these points to conclusion.

Parrot is register based, not stack based. Perl has been developed using Haskell, and eventually it will come to the point where perl can be compiled with itself. These are monumental tasks for volunteer workers pursuing some pretty hefty goals for the sake of pursuing them.

Pugs [pugscode.org] has been working for quite some time already, and its an easy transition for anybody already familiar with perl.

I can see criticizing the project because it's hard for a newbie to figure out how to help, or criticizing the syntax in favor of ruby/python/etc, or criticizing performance (although both Perl6 and Parrot perform very well IMO), but criticizing the time it has taken to build? Get off your high horse and go build your next big Web 2.0 script that can do anything as long as you have less than 100 daily visitors.

Re:To all the detractors (4, Insightful)

will (6647) | more than 6 years ago | (#22125062)

Get off your high horse and go build your next big Web 2.0 script that can do anything as long as you have less than 100 daily visitors.

That's not really very helpful. I still feel like an expat perl programmer but I have rails/nginx sites that see over 100,000 people a day without any difficulty. They're clustered over four servers, none of which peaks at more than a half of its capacity. Five years ago I was running similarly busy sites under mod_perl and apache 1.3.x. The architecture was more powerful but less robust. I could do much all sorts of interesting things with the apache lifecycle - rails feels like lego by comparison - but the whole assembly was flaky and temperamental, each mod_perl process took up to 50MB and I lived in constant fear of the whole thing falling over.

That probably has as much to do with my code quality as anything else (and the 'interesting things') but it does show that the modern high level frameworks are a viable alternative. Rails doesn't scale well but it does cluster well, and hardware is cheap. I miss the quality of people you get in the perl community, the quality of documentation (out here they think that having a blog counts) and the cheerful absurdism. I don't miss the posturing and strop, and in terms of getting things done I'm much better off than I was.

Re:To all the detractors (1)

DougWebb (178910) | more than 6 years ago | (#22125348)

I have rails/nginx sites that see over 100,000 people a day without any difficulty. They're clustered over four servers, none of which peaks at more than a half of its capacity. Five years ago I was running similarly busy sites under mod_perl and apache 1.3.x. The architecture was more powerful but less robust. I could do much all sorts of interesting things with the apache lifecycle - rails feels like lego by comparison - but the whole assembly was flaky and temperamental, each mod_perl process took up to 50MB and I lived in constant fear of the whole thing falling over.
For my company I've developed a large and complex web application that handles over 4 million requests per day, spread over about a dozen servers. It's pure Perl, with a custom HTTP/1.1 server written in Perl, and an Apache server in front of it serving static files and proxying dynamic requests back to the Perl server.

Re:To all the detractors (2, Interesting)

adamkennedy (121032) | more than 6 years ago | (#22125084)

People have been arguing for who knows how long about syntax. At some point the argument has to end and someone has to implement that syntax. It's not an easy thing to bring either of these points to conclusion.

Actually, this is kinda wrong. Both have been happening simultaneously.

The entire point of Pugs was to have a reference implementation of the syntax.

And the mere existence of that implementation has meant that the language folks have gotten insight into how they designs work when you actually implement them.

As a result, in several places the syntax has been modified to make implementation easier, or make parsing faster, etc.

Time runs fast (1)

herve_masson (104332) | more than 6 years ago | (#22124466)

April 1st already ?

Re:Time runs fast (0)

Anonymous Coward | more than 6 years ago | (#22124868)

Oh why, yes it is. In the gravitational field your mouth generates it is April the 1st, 1998.

YUO FAIL IT. (-1, Troll)

Anonymous Coward | more than 6 years ago | (#22124598)

Who fails it ? (1)

ajs318 (655362) | more than 6 years ago | (#22124980)

If you're going to link to a website, first make sure there is actually something there.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?