Hacker News new | past | comments | ask | show | jobs | submit login

I honestly did not expect to see the day Perl 6 gets finished. This must have been one of the most difficult - if not the most difficult - births in the history of programming languages.

At work, I have been using Perl 5 increasingly often over the past two years, mainly because handling unicode in Python 2 is not a lot of fun (and I still haven't come around to learning Python 3), and I have rediscovered why I used to like it so much.

So far I have not looked into Perl 6 seriously, because I did not see the point to do so before it was finished. Guess I know now what I'll be doing this Christmas. :)

Also, you gotta love Larry for quotes like this one: "This is why we say all languages are religious dialects of Perl 6..."




> I still haven't come around to learning Python 3

I'm not using it everyday yet either, but it's not a whole new language. More like just a few cleanups to sensitive portions of the API.


I would love to see a concise document with the differences.




If you haven't had the time to learn the transition from Python 2 to 3, don't expect to find time to transition from Perl 5 to 6. Perl 6 is orders of magnitude more different from Perl 5 than Python 3 is from Python 2.


Perl 6 is not different, its a new language. You don't transition from Perl 5 to Perl 6. You learn Perl 6 as a new language and use it.

That's completely different compared to the case of Python, where Python 3 is a continuation from Python 2. But breaks backwards compatibility with the entire ecosystem. Bulk of the language remains same, you are migrating non backwards compatible parts.


What is there to learn about Python 3? It's just a relatively small, but backwards-compatibility breaking, update.


This: https://docs.python.org/3/whatsnew/3.0.html

Doesn't look small and I already saw several things I was using that have changed behaviour. Someday I might even learn how to use them. :)


You can build Perl6 and try it right now if you want, see my [early Perl 6](http://g14n.info/2015/03/early-perl6/) article for detailed building instructions.


Or use rakudobrew. http://codeselfstudy.com/wiki/Perl_6

I don't know Perl, but I saw the presentation and was blown away. Installed it today, and definitely will try building something with it soon.


These instructions show how to build the Rakudo 2015.03 release, 2015.09 is the current one.


The link I posted should install the latest version. http://codeselfstudy.com/wiki/Perl_6


Oh, it didn't get finished. Perl 6 is just getting started!


What's this deal with people having to learn Python 3? For most of the things you do there is literally no practical difference.


Exactly! The only real reason I was not using Python 3 was library support, but now things have changed: https://python3wos.appspot.com/


Tiny correction: I heard it as "all languages are really just dialects of Perl 6," which makes a bit more sense in context. Either way it's a cute Wall witticism, of which there were many that night. Word has it that there will be a video in a couple of weeks, at which point you can judge for yourself!


I share the same sentiment. I am so glad to see it finally formally launched. Now, to dig in to Perl 6!


Unfortunately unicode in Python 3 is not necessarily better. See http://lucumr.pocoo.org/2014/5/12/everything-about-unicode/.


If you are anal about getting every edge case correct, Unicode is a straight up nightmare to support.

Even in Perl's supposedly superior support has issues. See how deep the rabbit hole goes by reading the first response to the question here:

https://stackoverflow.com/questions/6162484/why-does-modern-...

There is really no way for a simple program to account for all of those possible edge cases. Something as simple as a print of a string can be a minefield depending on what is in those characters. And it's not like the old days where you could safely filter out all non-printable characters to avoid most problems. Have you considered how your formatting is going to look when people intersperse Right to Left words in your output for example?


> There is really no way for a simple program to account for all of those possible edge cases.

The post to linked you contained a piece of boiler-plate code which accounts for said cases.

> Have you considered how your formatting is going to look when people intersperse Right to Left words in your output for example?

There are modules to handle this. It of course means that you have to stop using non-Unicode-aware functions like `sprintf`.


The boilerplate on there is only a start. Any time you read or write a Unicode string, or do any manipulation of the string, you need to consider possible edge cases, and they can be nightmarish.

Consider something as simple as outputting zero padded numbers (so they form a nice column in the output), except that the numbers might not be Arabic, zero might not be 0, they might not be written in the direction you expect, and padding might not even make sense. This is how you go crazy.


Both Perl 5 and Python 3 are built with the assumption that a "character" is what the Unicode standard generally refers to as a "character".

This is a serious problem and will I suspect one day be understood to be the biggest long-term mistake made when designing Python 3.

I wrote a comment about this a few months back at https://news.ycombinator.com/item?id=9791211 (see second half of the initial comment and then the followups).


same here, had to do a double take when i saw the headline in my email. it's been so long perl 6 has become somewhat of a running joke.


"At work, I have been using Perl 5 increasingly often over the past two years, mainly because handling unicode in Python 2 is not a lot of fun (and I still haven't come around to learning Python 3),"

Why?


From what he's saying, it's because of Perl 5's excellent Unicode support.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: