Or Ada. Or Python. Or Ruby.

I tried Python and didn't like it, although I didn't get far enough to know how strong the object model is, because the B&D type system turned me right off. I can't comment on Ada or Ruby except to say that neither is known for being object oriented. Try programming a medium-sized project in Inform for example, and then come back and look at Perl5's object system.

Are there really applications that can be written in Perl 6 that simply cannot be written in Perl 5?

Why, are you in some kind of special hurry?

No, of course not. For that matter there is nothing that can be written in Perl 6 that simply cannot be written in assembly language. Congratulations, you've discovered Turing completeness. It's a matter of how much time and effort I want to spend creating a module to make programming easier in a language that in three years will be obsolete. (By the time I finished we'd be more than halfway there... it won't take me one quarter as long to do it in Perl6.)

What precisely is missing from Perl 5's object system that is keeping you from implementing buffers now?

Just for starters how about sane syntax, a decent inheritance mechanism, traits and properties, and the ability for methods to determine exactly what context they've been called in, and a lot of stuff that makes anonymous routines easier to work with? How about the rest of the language being more geared toward expecting stuff to be object-oriented? How about that Perl5's object system is such a convoluted hack that I only barely understand it, whereas just from reading the Apocalypse articles I already have a very firm grasp of Perl6's object model, because it makes sense.

Yeah, I could fake a lot of that with existing mechanisms (hashes, especially), but it'll be a whole lot easier when it's built into the language. Perl5 is pretty cool, but Perl6 is going to rock significantly.


for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc' .'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$ p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}

In reply to Re: Implementing (elisp-like) buffers in Perl 6: how to do buffer-localisation of arbitrary package variables? by jonadab
in thread Implementing (elisp-like) buffers in Perl 6: how to do buffer-localisation of arbitrary package variables? by jonadab

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.