21 ms·
Perl 6 Released
- marshray 11y agoOn behalf of a long time onlooker: Congratulations, Perl 6!
- zoffix222 11y agoThank you!
- danso 11y agoCongrats! The new regex features sound exciting ("Dramatically reforms and sets a new standard in regex syntax, which scales up to full grammars – powerful enough to parse Perl 6 itself") I really liked the post that precedes the submitted one, in which Perl 6 is described as a teenager being adopted into a family, "An Unexpectedly Long-expected Party" https://perl6advent.wordpress.com/2015/12/24/an-unexpectedly-long-expected-party/ https://perl6advent.wordpress.com/2015/12/24/an-unexpectedly...
- Aardwolf 11y agoAnd also interesting unicode features in the regexes... \d matches anything that is a digit in unicode for example. What if you only want ascii though, like for computer languages and maybe security? EDIT: security as in, no similar-looking but different characters to confuse users etc...
- gkya 11y agoGuess one can always do [0-9]+. Though I can't see why, for example, an arabic numeral pose a security problem. ISIS?
- kjs3 11y agoThere are a number of security issues, mostly around using "look alike" Unicode characters in phishing/impersonation attacks. See, for example: http://unicode.org/reports/tr36/ http://unicode.org/reports/tr36/ http://unicode.org/faq/security.html http://unicode.org/faq/security.html https://www.blackhat.com/presentations/bh-usa-09/WEBER/BHUSA09-Weber-UnicodeSecurityPreview-PAPER.pdf https://www.blackhat.com/presentations/bh-usa-09/WEBER/BHUSA...
- unixhero 11y agoLearn X in Y Minutes[0] is a fresh and quick intro to Perl6. It looks jolly good, readable(!) and quite fun! I hope I get to work on a project in Perl6. [0] https://learnxinyminutes.com/docs/perl6/ https://learnxinyminutes.com/docs/perl6/
- guelo 11y agoAlso http://perl6intro.com/ http://perl6intro.com/ is a good intro.
- woah 11y agoFirst thing I read is: #`( Multiline comments use #` and a quoting construct. (), [], {}, 「」, etc, will work. ) This level of flexibility in how you make comments seems a bit... odd
- unfamiliar 11y agoI guess the intention is to let you use whatever form of parenthesis inside the comment without causing problems.
- Ulti 11y agoQuoting is highly generalised in Perl 6. Comments happen to be more feature rich and dynamic than other languages. They aren't simply ignored by the compiler but completely parsed and used in a variety of ways. The flexibility looks odd because it's meant more for quoted string interpolation, but reuses the same mechanism for comments. Generality of concepts is a common theme throughout Perl 6, if something looks round and spins it should be a wheel. For example all of the literate style POD6 comments are accessible within a variable as a fully structured tree in the $=pod variable. The 'q' quoting context in the main language allows you to use any matched quote/bracket from unicode as the markers of the start and end of a string or regex, or comments as you've picked up on. This is super helpful if you want all sorts of weird quotes and brackets inside of a string and still have it interpolated for variables for example. say q⧚This string has a "'weirdly quoted bit in'"!⧛; Will print out: This string has a "'weirdly quoted bit in'"! To see some examples of how extreme you can have these characters be from unicode check out http://xahlee.info/comp/unicode_matching_brackets.html http://xahlee.info/comp/unicode_matching_brackets.html
- SwellJoe 11y agoPerl 6 sort of set itself up for a tremendous uphill battle. By taking so long to "firm up", in terms of specification (or the test suite, in this case), while Perl 5 had a period of neglect, it lost a whole bunch of its early momentum to other languages. Sometimes, former Perl programmers have passed through two or three other languages as their "primary" language since they last called Perl home (I know there are several formerly reasonably well-known Perl folks who are more known now for their involvement in JavaScript, Go, or Haskell, or Rust, etc.). It would take a ridiculously advanced language to counter that turning of the tides. Luckily (or, I guess, not due to luck but because Perl 6 developers realized they had to deliver something amazing to justify the time lost in the wilderness), Perl 6 is a ridiculously advanced language. I haven't started a new project in Perl in several years (though my primary projects, which have existed for 9-17 years, are in Perl), but I'm strongly considering making my next project a Perl 6 project. It looks like a really fun language. All the stuff I like about Perl, with almost none of the stuff I don't, plus some advanced stuff that I don't even know enough to know why I might want it. But, I know that Higher Order Perl for Perl 5 (which I actually read while I was mostly working in Python) was a lot of fun and made me a better programmer, so I assume Perl 6 and its new paradigms will be similarly eye-opening.
- monk_e_boy 11y agoHappened to me, had to choose a language to write a web crawler in ended up with Python (this was 5 or 6 years ago.) We got a contractor in who was a Perl guru, he wrote one of the popular web frameworks but even he couldn't put forwards a good case for using it over PHP. And now in the company my brother works for (a cloud hosting provider) they are currently switching from Perl to Python.
- godzillabrennus 11y agoDuke Nukem Forever and Perl 6 in my lifetime? Next thing you'll know we will have cold fusion.
- floatboth 11y agoAnd TextMate Forever, er, 2. Is Half-Life 3 next?
- pyre 11y agoDon't get ahead of yourself, Half-Life 2: Episode 3 needs to come out first. :P
- spb 11y agoAll signs point to Valve skipping HL2E3 and going straight to HL3 (I was pretty sure they'd confirmed it): http://www.denofgeek.us/games/half-life/250840/why-half-life-2-episode-3-never-happened http://www.denofgeek.us/games/half-life/250840/why-half-life...
- krylon 11y agoA couple of years I had a nice talk about operating systems with a couple of pretty smart people (smarter than me, at least). I remember bringing up GNU Hurd and saying how sad I was it still wasn't there, yet. And somebody else said to look at it in a more positive way, because by the time it would be ready, at least I could run Perl 6 and Duke Nukem Forever on it. So who knows, maybe we'll see Hurd 1.0 before, say, 2020. ;-)
- Ulti 11y agoMaybe they'll rewrite Hurd in Perl 6...
- schoen 11y agoNetHack 3.6 just recently came out too! http://www.nethack.org/v360/release.html http://www.nethack.org/v360/release.html
- sofaofthedamned 11y agoHow many times is it going to be posted on HN that Perl 6 is released?!
- cosarara97 11y agoThis time it's for real!
- xaduha 11y agoNot quite too, it's a compiler release (Rakudo), but ordinary users should stick to a distribution with common modules (Rakudo Star). Usually comes a few days after.
- Ulti 11y agoOnce? This is the only time there has been a release of a versioned specification for the language compilers can target. That's what has been in development for 15 years! The specification of the actual language. It's like the difference between JavaScript existing as a language for a while and then one day ECMAScript 1 was defined. Apart from Perl 6 was always about the evolution of the spec with various implementations showing the way. The first major implementation of Perl 6 back in the early/mid 00s was Pugs written in Haskell where Perl 6 picked up a tonne of functional heritage both in the compiler at the time and the language spec. The more recent Rakudo compiler has a lead architect who often works in C# where the compiler and the language spec picked up and redefined a reactive programming concurrency model with lots of nice new syntax like the react/whenever block. Rakudo Perl 6 and Pugs and the host of other early implementations have been around a while and released often when they were worked on, monthly in the case of Rakudo with the first publicised release in 2010. Rakudo is also releasing a version of the compiler compliant with the newly frozen and released specification.
- pyre 11y agoI think that the parent to your post is referring to this: https://news.ycombinator.com/item?id=10793029 https://news.ycombinator.com/item?id=10793029 which already made the front-page.
- kriro 11y agoPerl was probably the first language I did interesting stuff in (yay IRC-bots, who didn't write one in Perl) but I gradually moved on to other languages. I didn't keep up with it at all, only knew that Perl6 took forever. Then I read up on Perl6 and now I'm really excited about the language. One of the projects I want to work on involves building a DSL, most likely an external one. I was pretty set on using ANTLR4 for it but now I'm seriously thinking about Perl6 as that seems to be one of the strength of the language.
- Ulti 11y agoGuess what you can do both at the same time! :D There is already a module which converts an ANTLR4 grammar into a full Perl 6 grammar which then provides a ready made parser for you :) https://github.com/drforr/perl6-ANTLR4 https://github.com/drforr/perl6-ANTLR4
- carlosrg 11y ago> Perl was probably the first language I did interesting stuff in but I gradually moved on to other languages Same here. But recently I had to convert a strange proprietary file format from a poll into CSV for a personal project of mine, and I decided to use Perl (5) just for nostalgia sake. I got a solution in minutes despite not having used Perl in years and I enjoyed programming on it, I'd say more than Python and sometimes bash which are my go-to scripting languages. Perl is the kind of language that you enjoy using for quick but effective hacks, maybe because it doesn't get in your way. Definitely I'm going to use it more.
- bitmadness 11y agoToo little, too late, IMO. The world has moved to Ruby and Go for the web/cloud and Python for data analysis/scientific computing.
- Ulti 11y agoRuby and Go for the web?? Really? Not JavaScript and PHP (still). Python is old hat too it's all about Julia now :P and R is making a come back in some weird computing renaissance.
- benbristow 11y agoRuby is very popular with the excellent Rails framework. Also Sinatra as a DSL if the power of Rails isn't needed.
- b2gills 11y agoImagine what DSL would look like in a programming language that is itself defined as several DSLs. That is signatures, immediate strings, regular expressions are all separate domain specific languages that share parts of the same grammar but with certain domain specific modifications. There is a thing called a Slang where you can replace the Perl 6 grammar with a different one entirely. So you could write a Ruby slang and write Ruby in Perl 6. Unfortunately the design for slangs wasn't quite good enough yet for the Christmas release of ROAST the specification testsuite.
- noblethrasher 11y agoStackoverflow was written in C# when the rest of the world had moved on to Ruby. WhatsApp had clients written in Java against J2ME. JaneStreet is (apparently) killing it with OCaml. iOS apps were written in Objective-C when the rest of the world hardly even heard of that language. This site is written in a niche dialect of Lisp.
- draw_down 11y agoThe world is not a monoculture, yes. Not sure why that should mean people will start using this new version of a language that has been dormant for fifteen years.
- doodpants 11y ago> We will continue to ship monthly releases, which will continue to improve performance and our user’s experience. Is that a Freudian slip? Do they really only have one user? :-)
- cokebot9000 11y agoUgh, good catch. Looks like someone fixed it up already, thanks.
- hercynium 11y agoReminds me of a friend whose band cut an album back before anybody could do it, and got a local music chain to put them on the shelves. A month later, he bought a single copy from that store, explaining, "I just wanted to double my record sales"
- gabesullice 11y agoDidn't quite make it by Christmas
- colomon 11y agoYou might want to read the date on the article...
- cokebot9000 11y agoI can vouch that that there was plenty of Christmas left in my timezone when I uploaded the tarballs and posted the release notice. :)
- sampo 11y agoIn about half of the countries in Europe, Christmas is generally taken to mean the Christmas Eve, i.e. the 24th.
- cygx 11y agoColloquially, sure. More properly, that's 'Christmas Eve', 'Heiligabend', ..., ie the day before Christmas; the 'first day of Chrismas' ('erster Weihnachtsfeiertag') is the 25th. So there :p
- dragonwriter 11y agoTraditionally, Christmas starts on Christmas Eve (and ends quite a lot later, on Epiphany, or thereabouts.)
- 3dfan 11y agoVariable names can contain dashes? Then how do you know what this means: users=users-churn-rate*time oh, i see ... they are prefixed with $. so it's: $users=$users-$churn-rate*$time Hm... still a bit confusing. But ok. It can be avoided by avoiding dashes in variable names.
- pyre 11y agoI could craft you unreadable code in any language. Someone removing all of the whitespace between their operators is not going to be producing code that I want to be responsible for maintaining... in any language.
- sirclueless 11y agoGo has an interesting take on whitespace-around-operators -- it starts removing whitespace around binary operators if there are higher precedence operators in the same expression. So, for example, you get: x = 2 * y x = 2*y + 5 This is pretty readable. In fact I think it is more readable than the usual convention of "spaces around every binary operator," but it would be untenable without the existence of gofmt. The most common argument against a convention like this is, "subtle bugs will be introduced if the actual precedence is different than the one implied by whitespace," which is why it's great to have a benevolent formatting overlord telling you when or not your formatting is consistent.
- pronik 11y agoThat's why Perl 5 is still an unbeaten champion in terms of managing the complexity of legacy code. Perl::Tidy (and Perl::Critic) is a super-configurable beast to the extent I've not yet seen in other languages.
- pyre 11y agoYou could probably do something similar in Javascript or Python, there are many tools that provide you access to the AST, it's just that no one has written such a tool on top of it (or maybe they have, but they never gained traction).
- scriptdevil 11y agoI installed rakudo and played with it a little. However, the repl was horrible. Is there a repl that accepts multiline subroutines and if possible readline support?
- zoffix222 11y agoI think you may want to install the module called Linenoise. If you have panda (Perl 6 module installer), just type panda install Linenoise and you should be all set. https://github.com/hoelzro/p6-linenoise https://github.com/hoelzro/p6-linenoise
- scriptdevil 11y agoYeah, that fixes the readline situation. Still, if has to type everything in one line for it to evaluate, the REPL isn't of much use is it?
- b2gills 11y agoI use rlwrap instead. The REPL is one of the features that hasn't gotten as much attention as it should. It was much more important to spend the time getting the rest of the language into shape. That said I use the REPL for 90% of my coding. Including temporarily replacing parts of the runtime while trying to fix them.
- zoffix222 11y agoNo idea :) In my 16-year programming career I never used a REPL of any sort. Just pop up a temp file and edit it with $editor-of-choice? XD
- SwellJoe 11y agoI thought that way until I worked with iPython for a while (back when it was primarily a clever REPL, and didn't really have the "notebooks" feature at all, yet, I don't think...this was back when it was new). Having a really strong REPL when debugging is like having a rocket, when you're used to having a hot air balloon. I've always been bothered by the weakness of Perl REPLs. It's only recently started to improve (in the past five years or so) for Perl 5, but there are some decent ones, though nothing even in the same league as iPython.
- julianpye 11y agoMy first thought for Perl 6 killerapp: a html5/js build replacement for grunt, gulp and other such monstrosities.
- DCoder 11y agoYou can write a replacement for gulp in Perl 6, but if it doesn't have the plugins, who will use it? Grunt and gulp have huge plugin ecosystems, which is both a blessing (you can find ready-made plugins for a lot of tasks) and a curse (everything moves very rapidly, plugins get abandoned, blacklisted and superseded all the time - if you want to compile TypeScript files, half the blogposts will recommend gulp-tsc .. but wait, it's been blacklisted, you should use gulp-typescript instead ). Grunt: ~5400 plugins: http://gruntjs.com/plugins http://gruntjs.com/plugins Gulp: ~2000 plugins: http://gulpjs.com/plugins/ http://gulpjs.com/plugins/ Gulp's list of blacklisted plugins: https://github.com/gulpjs/plugins/blob/master/src/blackList.json https://github.com/gulpjs/plugins/blob/master/src/blackList....
- deniska 11y agoI personally like the idea of using good old Make for that task. You don't need "huge plugin ecosystem", you just need executables to use it. And unlike many other systems it does incremental builds without any special machinery.
- DCoder 11y agoThat's a valid approach, but "Good old Make" is only good if you are already familiar with it (and its quirks). If you're a new-ish web developer, "learning Make" and "learning Gulp" are two equally foreign tasks.
- Kabacaru 11y agoAlso think of your target audience. All of them can program in JavaScript more or less, not all of them will want to learn Perl to do something they can do without learning a new language.
- deleted 11y ago
- mintplant 11y agoAre there any good tutorials/introductions/blog posts/etc. on using Perl6 for language parsing/implementation?
- cygx 11y agoFor Perl6 proper, not that I'm aware of. For the NQP toolchain in which Rakudo Perl6 is implemented, there's https://github.com/edumentab/rakudo-and-nqp-internals-course https://github.com/edumentab/rakudo-and-nqp-internals-course
- deleted 11y ago[deleted]
- BuckRogers 11y agoI can't say I'll be using Perl6 for my next project, but I'm glad it's here because it should push other languages forward in meaningful ways. I think the PL landscape has been missing something and Perl6 was it.
- cies 11y agoI'm really excited about Perl6, it is so jam packed with interesting novel features, that it serves as an amazing testbed for stretching the limits of what programming languages are capable of. I always feel that Ruby was a language that came out of Perl; a subset of it's features, carefully selected and implemented with the knowledge of what did not go too well with Perl. This might just happen again with Perl 6, judging from the exotic features it brings together. Thanks Larry and co! So this Christmas it did happen :)
- meesterdude 11y agoPerl was the very first language I learned. I was using it to parse incoming emails to insert records into a timetracking database, so i could log my time via email. loved it. But ya know, 15 years is a long time. in fact i was around 16 at the time, and am 30 now, and remember talk about perl 6. I'm a ruby guy now, and I don't see how I could ever go back to perl. Is perl 7 going to take another 15? or 30? Despite whatever features came about; i should not need to wait half my life to get them. That I think reflects poorly on the perl culture, or its momentum. And it's not that perl 5 was without issues (though they were rare for me) Maybe a revival will come about from this, and maybe a change of pace and approach; but as it stands the 15 years it took to release feels closer to failure than to a success, and to tie my code to such neglected foundations does not jive with me. Or maybe I just really like ruby now. Honestly, I hope something good comes of it. Even if its just new features that other languages go on to adopt or take cues from.
- devdas 11y agoPerl 5 is still around and being developed. Perl 6 is a different language.
- zoffix222 11y agoI don't think Perl 7 will be a thing in anyone's planned future. There are now two languages in the Perl family: Perl 5 and Perl 6. Perl 5 is still developed, has yearly releases and feature additions. Perl 6 is a brand new language that just had its first release. There is some history involved in why it took 15 years and why it's named "Perl" and not something else, but it's an entirely new language.
- Ultimatt 11y agoThere is no Perl 7. Perl 5 has been having releases the whole time you've been doing Ruby. Each minor release of Perl 5 since 5.10 had major features comparable to Python 2 to 3 but with full backwards compatibility. Perl 6 is a whole new language. There is no plan for a Perl 7 instead like Smalltalk and friends Perl 6 will just endlessly bootstrap itself to the next generation with its MOP and grammar engine.
- xorcist 11y ago
- bane 11y agoThis is impossibly exciting. Most people don't realize it yet, but it's like a programming language hand grenade just went off in the world...little bits of the new paradigms in Perl 6 are going to start winding their way into languages of the future. I first remember learning about rumors around the development of Perl 6 about the time I picked up Perl 5 for the first time. I had been doing a bunch of C and C++ code (and a smattering of Java) up to that point, but coding in Perl was like hitting the idea accelerator. At the time (programming resources on the Internet were few and far between) I didn't even know where to look to find resources to do things in C++ that were quick one-off scripts in Perl. Need CGI? No problem. Mucking around with a database, here ya go. I jettisoned C++ and dove heavily into Perl for years after that. I'm pretty sure that Perl made me a much worse programmer (it turns laziness into a kind of opiate), but a better conceptual developer -- I now had a much better idea of what computers could do, and didn't have to reinvent an entire civilization every time I wanted to do something (not a joke, where and when I worked, I was partially responsible for working on a pre-STL String library for C++, that's where we were in the world). Perl was really the first time I had encountered the productivity benefits a true high-level language could bring. I've since abandoned Perl and have moved onto Python for day-to-day. There's lots of electrons spilled by many former Perlers who've made similar transitions. I've never really liked Python in the same way I liked writing Perl. With Python I've always felt like I'm assembling Tinker Toys or an erector set into a thing. It's quick to build and it works in the end but there's not much passion in it. With Perl I always felt like I was writing poetry -- code just sort of fell out of me. I thought about checking out Go, but there's something about the sort of terse opinion the language designers have about the language that's made me feel like the entire language is a premature optimization that's going to go stale quick. Perl 6 feels like we've just entered a new evolutionary period, where we've been given all new tools, where the opinion is careful inclusionism. It's like being stuck writing couplets and haiku in Perl 5 and now we can write anything. Congratulations Larry et. al. This has been a long time coming, and I hope this is an amazing start!
- trop 11y agoAll this progression rings true, but also the initial attraction of Perl. Back in the late '90s I used Perl at a job where everyone else worked in C. This was in the days that programmers of compiled languages were skeptical of interpreted languages. One day a friend invited me by where he worked, where the sysadmin was a "real computer guy". The sysadmin turned out to be a man with long hair and a long gray beard. He was using a very thin Sony laptop with Linux and a command-line TTY (he said he'd never bothered to install X-Windows) and after he deployed a new release of the company's code using a single command and started nmap running on the internal network (he wanted to see who else was running a Unix), he asked me what sort of programming I did. I was a bit cowed, and apologetically said that I didn't really program, I only did scripting in Perl. He looked at me in the eye for the first time and said, "Perl is most bodaciously a real programming language." Seeing Perl 6 release notes like "Use of EVAL now requires a declaration of ‘use MONKEY-SEE-NO-EVAL’" and "Non-digit unicode characters with a numeric value (½ and such) can now be used for that numeric value" reminds me of the nerd coolness of Perl, so different from the straightforward sensible air of Python. I don't see many deep-hacker sysadmins these days, but I hope the excitement of Perl 6 can inspire some inefficiently marvelous coders...
- Thiz 11y agoI like what I see. Now make it available at Godaddy, Namecheap and all hosting providers for it to dethrone PHP as the king of the web.
- SwellJoe 11y agoI think "king of the web" is gonna look a lot different in the future than it does today and did in the past. JavaScript will be, for the foreseeable future, the king of the web front end, and I suspect it'll also hold a strong role on the back end. It may even be unstoppable on both ends because of the incredible resources being thrown at it. However, systems management, deployment, provisioning, data aggregation, log/event analysis, etc. on a large scale becomes more important by the day, and if there is an area where Perl is still quite popular, it is in those back end tasks. There are trendy tools in newer languages, but you'd be hard press to find very large deployments (at least on Linux or other UNIX) without a few hundred thousand lines of Perl running some elements. Perl 6 with concurrency built-in, grammars and the most advanced regular expression engine in the world, seems very well-suited for that future. Being somewhat familiar for old school sysadmins who've always relied on Perl for their scripting tasks is a bonus (Python has made some inroads in that space in recent years, particularly with Red Hat and Ubuntu/Debian shipping many system utilities that are written in Python). Anyway, on the web front, I think we need a reasonable database abstraction layer (e.g. Perl DBI/DBD), at the very least, before it gets elevated to "always available" on hosting providers. I'd say give it another year, and we'll have a pretty good Perl 6 web development ecosystem to work with.
- Ultimatt 11y agoPerl 6 already has its own DBI and even a Slang DSL for writing SQL directly in Perl 6 as a loop construct. https://github.com/tony-o/perl6-slang-sql https://github.com/tony-o/perl6-slang-sql
- SwellJoe 11y agoSeems pretty immature. No interpolation (in either module), but I hadn't seen the SLang. That's a wonderful example of creating a DSL! But, probably not gonna be using it in production today.
- nstart 11y agoOn a side note, I love how welcoming all the language is around getting people to join the community. Off to the irc we go :)
- Sniffnoy 11y agoThis should be changed to the permalink: https://perl6advent.wordpress.com/2015/12/25/christmas-is-here/ https://perl6advent.wordpress.com/2015/12/25/christmas-is-he...
- Kabacaru 11y agoI'm fairly disappointed with this release. My read through of a tutorial in it went something like this: * Oh you're sticking with that confusing % for hashes, @ for arrays then $ for everything else... maybe maybe classes have been sorted out though. * Hmm, why is the syntax for defining a class totally different to defining functions and variables everywhere else * Well they can't have made anything WORSE. Oh fields can have minuses in them?? Packages exist and you can define them but you're not supposed to anymore? * Well at least you can't totally rewrite the language in some arcane way which means every bit of perl you come across is totally different and unreadable for 45min while you work out what the custom DSL does. looks at phasers, Meta operators, fix'es sigh Great that this has finally been released, but it really doesn't solve the problems that Perl always had that it is TOO expressive and too customisable, meaning it'll always be vastly different project to project. On top of that it doesn't have the things that people are really excited about now, which is channels, selects and other things that make async easy. I think that this would have been an amazing release when Ruby was getting popular, but I think it's a few years too late.
- xorcist 11y agoConfusing? How would you signify context then? A keyword?
- Ultimatt 11y agoYeah I can tell you've now learnt enough of the language to judge it at all... Or perhaps not at all! http://docs.perl6.org/type/Channel http://docs.perl6.org/type/Channel Though supplies with react/whenever is a lot more exciting than channels.
- raiph 11y ago> Oh you're sticking with that confusing % for hashes, @ for arrays then $ for everything else... The claim is something like: Some folk like distinguishing singular ($foo) and plural (%dict, @array) nouns even if some others dislike it. Many human languages make the same sorts of distinctions to good effect which may give you pause for thought, especially given recent neuroscience emphasizing the apparent central role of natural language processing rather than math processing when folk comprehend code (the study I saw involved Java code fwiw). Note that you can bind a name to avoid sigils: my \foo = %; # bind foo to an empty dict foo = :bar, :baz # foo now has two key/val pairs > why is the syntax for defining a class totally different to defining functions and variables everywhere else The claim is something like: Perl / Perl 6 are more serious than most other langs about variable scoping. Classes aren't closures and object lifetimes are different from lexical variables'. > Oh fields can have minuses in them?? The claim is something like: Many folk love that, eg lispers, and Perl isn't about telling experienced coders that they can not do things they consider elegant or useful. > Packages exist and you can define them but you're not supposed to anymore? The claim is something like: You generally don't need to use the 'package' keyword because keywords like 'class' and 'module' are themselves variants on 'package' and do the necessary work of the 'package' keyword for you. Perhaps you've read some doc that was written by someone who was learning Perl 6 and for whom English is a second language such as the learnXinY? > Well at least you can't totally rewrite the language in some arcane way which means every bit of perl you come across is totally different and unreadable for 45min while you work out what the custom DSL does. looks at phasers, Meta operators, fix'es sigh The claim is something like: Perl 6 is a granularly malleable language. The features for empowering users to use this have been carefully designed to be sane but they can be abused. > On top of that it doesn't have the things that people are really excited about now, which is ... things that make async easy. The claim is something like: Perl 6 has the things that people are really excited about now, including things that make async easy. Perl 6 includes sweet concurrency, parallel, and async constructs. I think you've read poor material or misinterpreted it. > I think that this would have been an amazing release when Ruby was getting popular, but I think it's a few years too late. Fair enough. Time will tell.
- stesch 11y agoSome of the operators use non ASCII characters. Here is how you enter them: http://doc.perl6.org/language/unicode_entry http://doc.perl6.org/language/unicode_entry No risk, no fun.
- hahainternet 11y agoThere are ASCII equivs for most, they're called 'Texas' operators.
- stesch 11y agoLarry Wall is a linguist. I'm sure there has to be some reasoning behind making the language more complex. Do you know of a text by him explaining why there are two kind of writing the same operators? And why using non ASCII characters?
- Ultimatt 11y agoIt's kind of obvious the reasoning behind it... The unicode is the mathematical or good choice for the operator character, but the majority of people have no idea how to type it. I have yet to see a keyboard with most of the unicode maths operators on.
- bshimmin 11y agoI have a lot of fond memories of Perl from a decade or so ago, and would love to do something more than just installing and tinkering with Perl 6 and then forgetting all about it. I also conveniently have a little "weekend project" coming up where I can probably just choose whatever language seems most fun (and then rewrite it in something sensible later if it grows beyond "weekend" status). If I chose Perl 6, what's a nice Sinatra-esque thing, and is there an ORM? And how do I deploy it and run it in production (copy it into cgi-bin?!)?
- frik 11y agoIt's impressive how different the languages Perl (5 -> 6), PHP (5 -> 7; no 6) and Python (2 -> 3) developed in the last 10 years. And how their community reacted and their transition to newer releases.
- bad_user 11y agoThe thing that excited me about Perl6 was Parrot (http://parrot.org http://parrot.org), which is supposed to be this very ambitious VM targeting dynamic languages. But unfortunately it seems that Perl6 is Rakudo and they've developed a Rakudo specific VM. Maybe that's best for Perl6 the language, but it also makes it less interesting for me.
- hahainternet 11y agoPerl6 is actually ROAST, but Rakudo is the first compiler that approaches implementing it. Parrot was unfortunately discontinued but Rakudo will not be the only compiler (hopefully!)
- deleted 11y ago[deleted]
- xaduha 11y ago> Rakudo will not be the only compiler (hopefully!) You're correcting people, but sort of wrong yourself. Rakudo is written in NQP and Perl 6 AFAIK, but NQP can be implemented for different VMs. A while back it worked on Parrot, MoarVM and JVM. I'd say keep Rakudo, but add more backends such as CLR/.NET, WebAssembly/LLVM.
- xaduha 11y agoIt's not a Rakudo specific VM, it's NQP specific VM, as I understand it. Rakudo is written using NQP and Perl 6. You can implement other languages using NQP same way as Rakudo is done. https://github.com/perl6/nqp/tree/master/examples/rubyish https://github.com/perl6/nqp/tree/master/examples/rubyish
- bad_user 11y agoThanks, I haven't been up to date with the development of Perl6.
- rubyfan 11y agoAnyone have an idea of how perl6 performs? All the performance articles I've read are really old.
- raiph 11y agoIt has some native typed features that mean one can speed up numeric or raw byte/bit operations to be faster, sometimes a lot faster than, say, Perl 5, but it's generally a whole lot slower, 10x and even 100x slower wasn't uncommon a few months ago. Some users claim it's worth trying it to see how it works out for the sort of code a given user writes. This release is about nailing down the language with a compiler that passes a test suite. Next comes a focus on improving what they have -- nailing bugs, speeding it up and expanding the test suite while making sure it continues to pass the test suite and keeps users' code running. I'd expect some benchmarks to be published on #perl6 in the next few weeks.
- rubyfan 11y agoInteresting, does poor performance hold true using JVM? I'd expect MoarVM to have some performance issues since its new. Is the multi-vm approach anything more than a novelty or is this expected to be a feature, i.e. a common spec and intermediate layer with support for different backend VMs?
- Ultimatt 11y agoExpected very much to be a feature. Someone is working on emitting JavaScript from Rakudo too for Perl 6 in the browser :)
- raiph 11y agoFirst of all, no one can yet run 6.c code on the JVM. Maybe the JVM backend will get there by Christmas 2016. The JVM's JIT is pretty awesome once it gets well warmed up. MoarVM's JITing is much less impressive so far but it's early days. The JVM will almost certainly always underperform relative to MoarVM in these two ways: * Much poorer startup time (unless an evalserver "cheat" is used) * Using much more RAM (I recall a report of something like 5x or so for typical code running on recent versions of the JVM backend compared with the MoarVM backend) My understanding is that the multi VM approach is strategic for Perl 6, for the Rakudo Perl 6 compiler, and for the underlying NQP compiler toolchain.
- rsiqueira 11y agoPerl6 example: sub Σ(@array_to_sum) { return [+] @array_to_sum; } say Σ (1,2,3,4); # It will display 10
- nedludd 11y agoAs if to confirm Perl's descent into obscurity they give the release a name that 95% of the people of the world can't read. The cherry on top of the public relations disaster that the introduction of Perl6 has been...