Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^4: Why should any one use/learn Perl 6?

by haj (Hermit)
on Jun 11, 2018 at 13:47 UTC ( #1216387=note: print w/replies, xml ) Need Help??


in reply to Re^3: Why should any one use/learn Perl 6?
in thread Why should any one use/learn Perl 6?

I'd have expected Perl 6 to have less boilerplate than Perl 5 for parallel processing. It's just that the advantage is smaller when you know about MCE than when you try to figure all of that out with Perl 5 core. So this is a Perl 6 benefit in the same order of magnitude as with objects, where I need to use Moose; in Perl 5 to get the object magic.

Two minor nitpickings:

  • $call.status == 204 ?? $results<OK>++ !! $results<NOT_OK>++; seems somewhat Perl5ish. Shouldn't that read like that:
    $call.status == 204 ?? %results<OK>++ !! %results<NOT_OK>++;
  • You write: "I've used the ASCII equivalent of the atomic increment operator, since PerlMonks does not display the unicode equivalent "++⚛️" inside code blocks properly.". I'm glad you did, because this is another example why I don't like these unicode operators: I have no idea how to enter it into my keyboard easily, and my preferred font in my preferred editor doesn't have a glyph for it. There also seems to be another, quite similar symbol: "++⚛" which has an almost identical glyph in the textarea field into which I'm typing right now. I am pretty sure that I'll never use these symbols, and I hope I'll never need to maintain code which contains them.

Replies are listed 'Best First'.
Re^5: Why should any one use/learn Perl 6?
by liz (Monsignor) on Jun 11, 2018 at 14:03 UTC
    ...why I don't like these unicode operators: I have no idea how to enter it into my keyboard easily...

    FWIW, those characters live in my TouchBar on my MacBook Pro.

    ...my preferred font in my preferred editor doesn't have a glyph for it...

    That's not really a Perl 6 problem. I would say then that your preferred editor will have more and more problems surviving in a more and more unicodey world. Which of course means nothing about how useful it is in its current version for you and the type of work you do with it.

    In any case, Perl 6 has ASCII variants for all of its operators, so if you don't want to use them, then that's fine too!

      haj: ...why I don't like these unicode operators: I have no idea how to enter it into my keyboard easily...
      liz: FWIW, those characters live in my TouchBar on my MacBook Pro.

      So, should I hop over to the Netherlands and let you type the character or steal your MacBook Pro instead?

      I apologize for mocking you. This is going off-topic towards Unicode fine-print.

      I now know that some browsers don't even show the difference between the characters in question.

      What appears in your article is a ⚛️ character, which is not what you want to use in code. The difference between "⚛️" and "⚛" is that the former is one character composed of two codepoints: The atom symbol, U+269B, and the "VARIATION SELECTOR-16", U+FE0F. U+FEOF is a zero-width symbol which enforces emoji-style display for the preceding character. In Perl 6, "⚛️".chars is 1 and "⚛️".codes is 2.

      The correct character to be used in prefix ++⚛ is the plain atom symbol U+269B. In Perl 6, "⚛".chars is 1 and "⚛".codes is also 1.

      liz: That's not really a Perl 6 problem. I would say then that your preferred editor will have more and more problems surviving in a more and more unicodey world.

      In the past, one could create nasty Perl 6 code by assigning operators to zero-width symbols, but as far as I know this is no longer possible, so I agree, it is no longer a Perl 6 problem. On the other hand, I am actually really, really happy that my editor did display the atom symbol (for which it has a glyph) and the zero-width symbol (for which it displays a "FE0F" surrogate glyph) as two separate entities, so it was rather obvious why Perl 6 complained about a "Bogus postfix".

      For fun, try to type the following into a Perl 6 interactive shell, or feed it into the Perl 6 chat. Try to figure out which of the two fails before you paste it (Looking at the page source is considered cheating):

      • my atomicint $a = 1; $a⚛++; say $a
      • my atomicint $a = 1; $a⚛️++; say $a

      I am in awe about the depth of Unicode support in Perl 6, as far as data are concerned. But I am not so happy about its use in code.

        So, should I hop over to the Netherlands and let you type the character or steal your MacBook Pro instead?

        You're welcome to try :-) But seriously, my point was that in the future there will be more ways to enter Unicode characters. Now, how that VARIATION SELECTOR-16 got there, it looks like it is a new feature of High Sierra :-( I've recently upgraded and am 100% sure it would not add the VARIATION SELECTOR-16 before. Grrr. It even does that from the Symbols viewer. Double Grrr.

        Thank you for spotting this. Wonder whether we would need to fix this in Perl 6 (so that it wouldn't matter if there is a VARIATION SELECTOR after it or not.

        With regards to possible confusion, that's also possible in the ASCII world: e.g. atomic-inc-fetch($ok) versus atomic_int_fetch or atonic-inc-fetch.

      Maybe I'm just unlucky, but on my Windows desktop for work I couldn't get any of the standard fixed-width fonts to display this glyph. I tried it in both gvim and putty, with no luck.

      Does Perl 6 normalize the code points (like Unicode::Normalize) before it parses the code? haj might have answered that question

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1216387]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (6)
As of 2019-08-21 15:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?