News for hackers. Stuff that matters.
Re:A Review of Perl 6 by pram on Sunday August 13, 2017 @05:07PM (#15004944)
Its been endlessly stated but naming it 'Perl 6' was a huge mistake. Perl 5 has an enduring reputation for crufty, unmaintainable code written by graybeard sysadmins. I wrote a lot myself that I wouldn't want to ever deal with again. I think they would have benefitted from a clean break from a marketing perspective, especially considering it's completely different.
Re:A Review of Perl 6 by jfoutz on Sunday August 13, 2017 @07:11PM (#15005504)
Perl 5 was my first love as a programming language. I rarely use it now, but it will always have a special place in my heart. I learned so much with that language. Blessing a regex for example. That was the first time I felt like I had a super power.
Re:A Review of Perl 6 by daxelrod on Monday August 14, 2017 @08:56AM (#15008260)
"Perl 5 was my first love as a programming language" is exactly how I describe it too.

The language has tons of warts, but also an amazing community. Participating in that community taught me more about the practice of software engineering than my computer science degree.

Re:A Review of Perl 6 by smegel on Sunday August 13, 2017 @07:36PM (#15005610)
Perl 5 is still a great replacement for sed and awk in one-liners. Which is what it was originally envisaged as (although more than just one-liners), and is probably how it should survive - the most powerful one-line tool in existence.
Re:A Review of Perl 6 by goatlover on Sunday August 13, 2017 @09:16PM (#15006057)
With all due respect to APL?
Re:A Review of Perl 6 by throwaway7645 on Sunday August 13, 2017 @10:52PM (#15006341)
I think they mean Nix terminal work. APL & J obviously win hands down as overal one-liner kings. Can Dyalog be used via the terminal in that manner? I'm guessing so, but never seen it used outside the IDE.
Re:A Review of Perl 6 by gbacon on Sunday August 13, 2017 @08:32PM (#15005874)
[citation needed]
[dead]
Re:A Review of Perl 6 by JadeNB on Monday August 14, 2017 @12:12AM (#15006540)
> > Apples and oranges. Haskell is defined by a language specification, not an implementation.

Do you have the wrong thread? You're quoting https://news.ycombinator.com/item?id=15005881 , but replying to https://news.ycombinator.com/item?id=15005874 (albeit by the same user).

Re:A Review of Perl 6 by zoffix222 on Sunday August 13, 2017 @05:16PM (#15004981)
There's actually talk about amending the name for next major language release ( https://rakudo.party/post/The-Hot-New-Language-Named-Rakudo ). Exactly for the reasons you state: it's a completely different language than Perl and so far it proved too confusing for everyone.
Re:A Review of Perl 6 by cygx on Sunday August 13, 2017 @06:11PM (#15005236)
For what it's worth, I disagree and was a bit annoyed that you've re-opened that particular Pandora's box again ;)
Re:A Review of Perl 6 by zoffix222 on Sunday August 13, 2017 @06:44PM (#15005395)
I don't mind annoying people to solve problems.
Re:A Review of Perl 6 by labster on Monday August 14, 2017 @03:42AM (#15007148)
You should mind annoying people to cause problems. Bringing up the language naming thing, again after 10+ years of discussion, has all of the problem solving ability of "hay guise whats going on in this thread?"

Branding is not the problem with Perl 6, though it is the easiest thing to bikeshed. The problem is compiler speed, language interoperability, and enough of a toolchain to start building serious apps. Make that good enough, and no one will care what our language is called.

Re:A Review of Perl 6 by jacobush on Monday August 14, 2017 @10:41AM (#15008879)
Well, I present to you "D", the language impossible to find anything about on the Intarwebz.
Re:A Review of Perl 6 by olaf on Monday August 14, 2017 @03:10PM (#15011680)
You can try "dlang"
Re:A Review of Perl 6 by cygx on Sunday August 13, 2017 @07:48PM (#15005660)
I think you're trying to solve the wrong problem: Don't move the languages further apart through rebranding, move the implementations closer together through improved interoperability.

Have a frontend that can invoke the perl5 interpreter as well as Rakudo as appropriate, supporting the perl5 command line flags, and arguably quite a bit of the problem goes away.

Re:A Review of Perl 6 by panic on Sunday August 13, 2017 @09:07PM (#15006028)
Maybe the problem isn't with the "Perl" part of the name, but with the "6" part? It sounds like an incremental update when it's actually a new language.
Re:A Review of Perl 6 by labster on Monday August 14, 2017 @12:40AM (#15006600)
Perl X 10.0, like Apple did then?
Re:A Review of Perl 6 by moocowtruck on Thursday August 17, 2017 @12:20PM (#15038122)
dunno perl6 seems fine to me, rakudo just looks like something half my team will wonder how to pronounce.. I agree with the other guy that people want a platform that they can use and is performant
Re:A Review of Perl 6 by omaranto on Sunday August 13, 2017 @07:04PM (#15005472)
I think the people behind the Eta programming language would agrwe with you: they implemented Haskell on the JVM, fully compatible with the Haskell standard and including many popular GHC extensions, but don't mention the word Haskell at all on their landing page: http://eta-lang.org/
Re:A Review of Perl 6 by gbacon on Sunday August 13, 2017 @08:33PM (#15005881)
Apples and oranges. Haskell is defined by a language specification, not an implementation.
Re:A Review of Perl 6 by mbrock on Sunday August 13, 2017 @10:54PM (#15006345)
Only that most people program in GHC, not Haskell.
Re:A Review of Perl 6 by michaelcampbell on Monday August 14, 2017 @12:52AM (#15006631)
I feel there's a subtlety to your comment that I don't get. Can you explain? (I've not yet learned Haskell.)
Re:A Review of Perl 6 by mrkgnao on Monday August 14, 2017 @01:37AM (#15006746)
There was a 1998 "Haskell Report" which formally defined Haskell-the-language. This version of Haskell is called Haskell 98 (sort of like C++98). There is also an updated version released in 2010, which defines an expanded language called Haskell 2010.

https://www.haskell.org/onlinereport/

https://www.haskell.org/onlinereport/haskell2010/

The purpose of these documents is to specify what an implementation of Haskell 98 or 2010, respectively, should support. Just like the analogous standards published for the C and C++ languages, the Haskell reports make no reference to any specific implementation.

The most popular implementation of Haskell is the GHC compiler. (In fact, in reality it's the only compiler anyone uses, with very few exceptions. For better or worse, Haskell is a one-implementation language at present.) GHC accepts a greatly expanded language compared to what the reports specify, including a large number of language extensions that can be turned on with flags. (sort of like how Clang or modern GCC accept C++11/14). There are minor changes from one version to another, so the language accepted by GHC today is often called GHC Haskell for disambiguation.

What GP is pointing out is that almost everyone using Haskell today writes in the language that GHC accepts today instead of sticking to some official standard.

If you want to learn Haskell, you don't need to worry about this at all. All reference materials and books teach modern GHC Haskell, which is also what is used by practically all Haskell users. As noted before, very few people use non-GHC compilers (usually it's just the people implementing or testing them) and you're very unlikely to encounter these implementations.

Re:A Review of Perl 6 by mrkgnao on Monday August 14, 2017 @04:25AM (#15007276)
> so the language accepted by GHC today is often called GHC Haskell for disambiguation

s/by GHC today/by the newest available GHC/

Re:A Review of Perl 6 by labster on Monday August 14, 2017 @03:45AM (#15007167)
Perl 6 is defined by a test suite, not an implementation. So more like oranges & lemons.
Re:A Review of Perl 6 by nerdponx on Tuesday August 15, 2017 @08:51AM (#15017683)
Once I got about halfway into this review, talking about the "whatever star" and all the different ways to declare hashes, it seems like this language is right on track to do the same.
Re:A Review of Perl 6 by thanatropism on Sunday August 13, 2017 @05:11PM (#15004965)
I know the break from Python 2 to 3 is also a mistake, but I don't know which one.

I learned Python 3 because it seemed that it was the new one, but to great confusion Python 2 is alive and default in Linux distributions.

Re:A Review of Perl 6 by gkya on Sunday August 13, 2017 @06:33PM (#15005336)
I don't get all this confusion wrt Python 2 and Python 3, it's not different from GCC supporting different C standards. Just run the correct executable (i.e. python2 or python3) and done.

In response to parent comment, Perl 6 is Perl. I don't think that it's difficult to understand that Perl is a family of languages, and Perl 6 is a more recent and sophisticated sibling to Perl 5.

All of this is bikeshedding to me.

Re:A Review of Perl 6 by eej71 on Sunday August 13, 2017 @07:15PM (#15005523)
I think the Python 2->3 and Perl 5->6 _is_ different from GCC supporting different C standards.

I think that you are overlooking the fact that the vast majority of python 2 code wouldn't run by default with python 3. Yes, there are now conversion utilities that handle most (all? maybe?) of the scenarios, but the fact remains that both Python 3 and Perl 6 break backwards compatibility.

C and C++ have tried very hard to not do this. Your old C code and your old C++ code will almost always compile as is with a newer standard.

Re:A Review of Perl 6 by cygx on Sunday August 13, 2017 @07:33PM (#15005600)
Your old C code and your old C++ code will almost always compile as is with a newer standard.

Depends on the code: Some of it won't compile without providing just the right set of flags.

In case of C, for me the crucial feature is not so much full backwards compatibility, but interoperability (you can link the object code regardless of the language version) and the convenience of using the same frontend executable.

In case of Perl, the former is currently possible to some degree via the Perl5 module Inline::Perl6 and the Perl6 module Inline::Perl5.

Personally, I would like to see the latter become a reality as well - this is the solution I'd perfer over trying to distance Perl6 from Perl5 via rebranding.

Re:A Review of Perl 6 by raiph on Tuesday August 15, 2017 @06:42PM (#15023405)
If you browse the #perl6-toolchain logs[1] you'll see folk making steady progress toward practical interop of multiple versions of the P6 language (6.c, 6.d, etc.), P6 compilers (Rakudo 2017.07 etc.), and P6 modules on the one hand and hosting this stuff on CPAN on the other. But perhaps you know about that already.

I may be imagining things but, peering years into the future, it seems this versioning management aspect of the P6 toolchain might end up being the foundation of a new multiple lang/compiler/module version juggling Perl package manager that can be used with P5, P6, python etc. Does that make sense to you?

[1] https://irclog.perlgeek.de/perl6-toolchain

Re:A Review of Perl 6 by b2gills on Sunday August 13, 2017 @08:00PM (#15005712)
It is different, all of the differences between Python 2 & 3 seem like the difference from one version of Perl 5 to another as far as I can tell. The main thing is Perl 5 tries to remain mostly backward compatible. I have heard of one company switching back to Perl 5 after switching to various “fad” languages for this very reason. (I wasn't told which company it was, likely because of an NDA) There have occasionally been bugs that P5P were hesitant to remove because someone might be relying on them.

One of the things I've heard is that `print` went from a keyword to a subroutine in Python, or something to that effect. In Perl 5 for most of them there is not really a difference, and what difference there is gets smaller every year.

Another is Unicode, which Perl 5 managed to improve without breaking most existing code. (some of it has to be enabled with a pragma statement)

Usually the only code that gets broken, is code that digs into the internals in some fashion, or use an unintended “feature”. (or occasionally even a feature that should have never been added in the first place)

One such unintended feature which relied on the compiler generating incorrect code was:

    sub foo {
      my $bar = 10 if 0;
      say $bar++;
    }
    foo; # 10
    foo; # 11
    foo; # 12
Which was superseded by the `state` declaration.

    sub foo {
      state $bar = 10;
      say $bar++;
    }
As far as Perl 5 vs Perl 6, it is more like C++ vs C# + Haskell + various other languages

Perl 6 breaks backwards compatibility in all the ways that needed to be broken to modernize the syntax, and reduce special cases. Even infix operators are no longer special.

From what I can see Python 3 breaks backward compatibility for things it didn't really need to if they tried harder. (It would have made the implementation more difficult to work on.)

Re:A Review of Perl 6 by gkya on Monday August 14, 2017 @06:50AM (#15007761)
Correct, but practically, it doesn't matter. If you compile C89, you use gcc in that mode, if C11, similarly. With Python, if you want Python 2, you run Python 2, if 3, Python 3. Backwards compatibility is another issue. IDK if people really build say C89 code with C99 or C11 compilers or use multiple standards concurrently in a given project.
Re:A Review of Perl 6 by slaymaker1907 on Sunday August 13, 2017 @05:40PM (#15005113)
I think Ubuntu switched over to python 3 by default recently.
Re:A Review of Perl 6 by makecheck on Sunday August 13, 2017 @07:34PM (#15005608)
If they still call the executable "python" then they’re demonstrating the whole issue with keeping the same name for wildly-incompatible upgrades: it “shouldn’t" matter what version a reasonably-modern OS chooses and yet it does, solely because of the name. No one would complain about having "/usr/bin/python", "/usr/bin/py3k", "/usr/bin/perl" and "/usr/bin/rakudo" all at once on the same OS but being forced to choose two is insane.
Re:A Review of Perl 6 by cat199 on Sunday August 13, 2017 @08:06PM (#15005742)
So like, the same thing that happened between various perl versions (inc 4x -> 5x) and python? Or C++ versions? or even c-library or executable format changes?

Things break sometimes.