Categories
Posts in this category
- A shiny perl6.org site
- Creating an entry point for newcomers
- An offer for software developers: free IRC logging
- Sprixel, a 6 compiler powered by JavaScript
- Announcing try.rakudo.org, an interactive Perl 6 shell in your browser
- Another perl6.org iteration
- Blackjack and Perl 6
- Why I commit Crud to the Perl 6 Test Suite
- This Week's Contribution to Perl 6 Week 5: Implement Str.trans
- This Week's Contribution to Perl 6
- This Week's Contribution to Perl 6 Week 8: Implement $*ARGFILES for Rakudo
- This Week's Contribution to Perl 6 Week 6: Improve Book markup
- This Week's Contribution to Perl 6 Week 2: Fix up a test
- This Week's Contribution to Perl 6 Week 9: Implement Hash.pick for Rakudo
- This Week's Contribution to Perl 6 Week 11: Improve an error message for Hyper Operators
- This Week's Contribution to Perl 6 - Lottery Intermission
- This Week's Contribution to Perl 6 Week 3: Write supporting code for the MAIN sub
- This Week's Contribution to Perl 6 Week 1: A website for proto
- This Week's Contribution to Perl 6 Week 4: Implement :samecase for .subst
- This Week's Contribution to Perl 6 Week 10: Implement samespace for Rakudo
- This Week's Contribution to Perl 6 Week 7: Implement try.rakudo.org
- What is the "Cool" class in Perl 6?
- Report from the Perl 6 Hackathon in Copenhagen
- Custom operators in Rakudo
- A Perl 6 Date Module
- Defined Behaviour with Undefined Values
- Dissecting the "Starry obfu"
- The case for distributed version control systems
- Perl 6: Failing Softly with Unthrown Exceptions
- Perl 6 Compiler Feature Matrix
- The first Perl 6 module on CPAN
- A Foray into Perl 5 land
- Gabor: Keep going
- First Grant Report: Structured Error Messages
- Second Grant Report: Structured Error Messages
- Third Grant Report: Structured Error Messages
- Fourth Grant Report: Structured Error Messages
- Google Summer of Code Mentor Recap
- How core is core?
- How fast is Rakudo's "nom" branch?
- Building a Huffman Tree With Rakudo
- Immutable Sigils and Context
- Is Perl 6 really Perl?
- Mini-Challenge: Write Your Prisoner's Dilemma Strategy
- List.classify
- Longest Palindrome by Regex
- Perl 6: Lost in Wonderland
- Lots of momentum in the Perl 6 community
- Monetize Perl 6?
- Musing and the future of feather and the Pugs repository
- Musings on Rakudo's spectest chart
- My first executable from Perl 6
- My first YAPC - YAPC::EU 2010 in Pisa
- Trying to implement new operators - failed
- Programming Languages Are Not Zero Sum
- Perl 6 notes from February 2011
- Notes from the YAPC::EU 2010 Rakudo hackathon
- Let's build an object
- Perl 6 is optimized for fun
- How to get a parse tree for a Perl 6 Program
- Pascal's Triangle in Perl 6
- Perl 6 in 2009
- Perl 6 in 2010
- Perl 6 in 2011 - A Retrospection
- Perl 6 ticket life cycle
- The Perl Survey and Perl 6
- The Perl 6 Advent Calendar
- Perl 6 Questions on Perlmonks
- Physical modeling with Math::Model and Perl 6
- How to Plot a Segment of a Circle with SVG
- Protected Attributes Make No Sense
- Publicity for Perl 6
- PVC - Perl 6 Vocabulary Coach
- Fixing Rakudo Memory Leaks
- Rakudo architectural overview
- Rakudo Rocks
- Rakudo "star" announced
- My personal "I want a PONIE" wish list for Rakudo Star
- Rakudo's rough edges
- Rats and other pets
- The Real World Strikes Back - or why you shouldn't forbid stuff just because you think it's wrong
- Releasing Rakudo made easy
- Set Phasers to Stun!
- Starry Perl 6 obfu
- Recent Perl 6 Developments August 2008
- The State of Regex Modifiers in Rakudo
- Strings and Buffers
- Subroutines vs. Methods - Differences and Commonalities
- A SVG plotting adventure
- A Syntax Highlighter for Perl 6
- Test Suite Reorganization: How to move tests
- The Happiness of Design Convergence
- Thoughts on masak's Perl 6 Coding Contest
- The Three-Fold Function of the Smart Match Operator
- Perl 6 Tidings from September and October 2008
- Perl 6 Tidings for November 2008
- Perl 6 Tidings from December 2008
- Perl 6 Tidings from January 2009
- Perl 6 Tidings from February 2009
- Perl 6 Tidings from March 2009
- Perl 6 Tidings from April 2009
- Perl 6 Tidings from May 2009
- Perl 6 Tidings from May 2009 (second iteration)
- Perl 6 Tidings from June 2009
- Perl 6 Tidings from August 2009
- Perl 6 Tidings from October 2009
- Timeline for a syntax change in Perl 6
- Visualizing match trees
- Want to write shiny SVG graphics with Perl 6? Port Scruffy!
- We write a Perl 6 book for you
- When we reach 100% we did something wrong
- Where Rakudo Lives Now
- Why Rakudo needs NQP
- Why was the Perl 6 Advent Calendar such a Success?
- What you can write in Perl 6 today
- Why you don't need the Y combinator in Perl 6
- You are good enough!
Thu, 12 Nov 2009
Is Perl 6 really Perl?
Permanent link
A few days ago masak blogged about the social aspect of the is Perl 6 really Perl? question.
He presumes that the answer is yes, but doesn't tell us why. I'll try to give some reasons.
Perl 6 started as the successor to Perl 5
Perl 6 started off as the successor to Perl 5, at a Perl 5 meeting, by the Perl crowd. It was a plan to escape both the backwards compatibility trap (which meant that broken things couldn't be fixed without many people yelling), and the lack of momentum in the community.
Perl 6 embraces the Perl philosophy
What makes Perl Perl? In my opinion it's not the sigils on variables that make Perl Perl, or that writing a regex only need two characters and so on. It's mostly the philosophy that makes the difference.
There are some underlying principles like TIMTOWTDI, context sensitivity, convenience over consistency, making simple things easy and hard things possible, often used constructs short and less frequent things longer, and so on.
Perl 6 is founded on all those philosophies and ideals, and also shares
some technical principles. For example sigils on variables (oh, I mentioned
them already ...), easy access to powerful regexes, that fact that operations
coerce their arguments (instead of the type of arguments determining the
operation like in javascript, where a + can either mean addition
or string concatenation).
So if you agree with my definition of what makes Perl Perl, Perl 6 is also Perl. If not, please tell me what's the essence of Perl!
Comments / Trackbacks:
Trackback URL:
/blog-en/perl-6/is-perl-6-really-perl.trackback
Jan Ingvoldstad wrote
People forget ...
... about the Perl 4 -> Perl 5 controversies.
Perhaps they weren't quite as outspoken as now, because the community was far smaller back then, but I recall quite a lot of bitching about how Perl 5 broke compatibility with Perl 4 in some ways, how Perl 5 was dog slow, and so on.
History has a tendency of fractal self-imitation.
John wrote
I'm not sure TIMTOWTDI is actually an *explicit* property of Perl. I mean, any language that gives you even a *little* flexibility is going to end up with more than one way to do various things. Do you think timtowtdi is actually explicity built into Perl? My guess is that timtowtdi is more like something that just *happens* and that Perl simply doesn't try to *stop* you from doing things in more than one way.
Regarding the essence of Perl, IMO, another part is the "just get it done" attitude. Perl (and just as importantly, many of the well-known and well-used CPAN modules) doesn't screw with you -- doesn't make you jump through convoluted and/or overdesigned hoops/APIs -- it just lets you get your job done.
Tim Bunce wrote
I give my take on this in slide 68 onwards of http://www.slideshare.net/Tim.Bunce/perl-myths-200909 by referring to http://www.wall.org/~larry/natural.html and a quote from Larry. I tell people that Perl 6 is _more_ Perlish than Perl 5.
emilper wrote
if Larry Wall says Perl6 is Perl, then Perl6 is Perl ...
Anyway, as long as it walks like a Lisp, looks like a C, and talks like a BASH, I don't care how it's called, even Rakudo would be fine.
Mark wrote
@Tim Bunce: Perl 6 is _more_ Perlish than Perl 5... because...
Shahbaz Javeed wrote
IMO perl has always had a reputation of being a better shell than shell, a better awk than awk, a better sed than sed, all the while providing a whole language in the background that provides all that functionality and so much more. That has as much to do with familiarity (in this case with bash, awk and sed) as it does with convenience.
It remains to be seen how convenient perl will feel. As an example I find myself using ruby and find it takes convenience to the next level even though it's not as familiar. If perl6 can keep the familiarity - even if in a limited way - while bringing much needed additional convenience, I think it will be a fit heir to the throne of the the perl empire.
Raphael Descamps wrote
For people who only know Perl since Perl 5 (like me!), it is possible that they will perceive Perl 6 as a completely new language but there is undoubtedly lots of familiarity and the additional convenience is really huge.
In fact, I have started to look at Perl 6 about 3 or 4 years ago and my first impression was that it's simply a new language, the syntax changed in many ways and there is lots of new concepts. But the more I learned about it, the more I also learned about Perl 5 as well and the more I was able to see and understand the similarities. I now think that Perl 6 is definitively and without doubt the successor of Perl 5.
Similarly to prior Perl versions, Perl 6 stay a postmodern language, stealing^w borrowing many features and paradigms from other languages.
Instead of TIMTOWTDI, I for my part prefer for Perl 6 the slogan "All Your Paradigms Are Belong To Us" but it maybe give a too hegemonic impression and Perl likes diversity ;)
The State of the Onion 10 give us the ONE TRUE answer about Perl 6:
---
the basic Perl paradigm is "Whatever-oriented programming."
---
I suppose that similar to TIMTOWTDI, which is often misinterpreted as "they're too many way to do it", "Whatever-oriented programming" will probably be misinterpreted as "Screwup-oriented programming".
In that sense, Perl 6 stay a postmodern ironic programming language ;)
Write a comment
The comments on this blog post have been disabled; the comment form below will not work.