Live data from Hacker News

Is Perl 6 Being Renamed?

blogs.perl.org

221–230 of 424 posts

Re: Is Perl 6 Being Renamed?

#221
post #167

Earlier quoted context omitted.

I would love to see a upgrade to cpan able to handle names converted to lowercase internally. To remind that you must write "use MymoDuleSQL" instead "use myModuLeSqL" can become pretty frustrating for my tired eyes.

This would be a pretty difficult change. Aside from backwards incompatibility, module names are both filesystem lookups and package stash lookups, and in most cases both of those are case sensitive, and it's entirely possible for valid programs to use two modules that only differ in case - at best I could see a warning that searches for a "did you mean?" but that sounds slow.

> Aside from backwards incompatibility

Isn't Perl 6 already backwards incompatible?

> module names are both filesystem lookups and package stash lookups

>> names converted to lowercase internally

Converting names to lowercase internally fixes this.

> it's entirely possible for valid programs to use two modules that only differ in case

Many people (myself included) would see this as a mis-feature not worth saving.

Re: Is Perl 6 Being Renamed?

#222
post #35

Earlier quoted context omitted.

What good reason is that?

Off the top of my head: 1. CPAN was great 20 years ago, but it's a joke compared to modern dependency management systems. 2. Functions don't have explicit parameters, and still shift off of @_. (This can be kind of a catch-all for all the "things that are useful for scripts, but suck for programming in the large" design decisions in Perl 5, because I honestly don't remember all of them at this point.)

> CPAN was great 20 years ago, but it's a joke compared to modern dependency management systems.

Modern dependency management systems (at least for language-specific packages) still don't hold a candle to CPAN, IMO. The namespace structure alone is something that's sorely lacking in pretty much every other language-specific package system. I'm glad Perl6 is (finally) gravitating back in that direction (though the prior system of "let's just pull from a bunch of GitHub repos" was still better than 91% of other languages' dependency/package/library/module/plugin/etc. installation approaches, or at least so I felt, having used a lot of such languages).

> Functions don't have explicit parameters, and still shift off of @_

I don't see anything fundamentally wrong with this. It's different from other languages, but not necessarily bad (again: IMO). It makes it easier to reason about things like varargs without needing special syntax for it.

The class system is similarly deconstructed (i.e. you explicitly "bless" arbitrary data structures instead of relying on the language to automagically do something behind the scenes), and I appreciate that explicitness.

---

Like, I find it kinda interesting that the two things you cited as "bad" are also two things I very strongly like about Perl. Different strokes for different folks, I guess.

Re: Is Perl 6 Being Renamed?

#223
post #167

Earlier quoted context omitted.

This would be a pretty difficult change. Aside from backwards incompatibility, module names are both filesystem lookups and package stash lookups, and in most cases both of those are case sensitive, and it's entirely possible for valid programs to use two modules that only differ in case - at best I could see a warning that searches for a "did you mean?" but that sounds slow.

> Aside from backwards incompatibility Isn't Perl 6 already backwards incompatible? > module names are both filesystem lookups and package stash lookups >> names converted to lowercase internally Converting names to lowercase internally fixes this. > it's entirely possible for valid programs to use two modules that only differ in case Many people (myself included) would see this as a mis-feature not worth saving.

This thread was regarding Perl 5.

Re: Is Perl 6 Being Renamed?

#224

Earlier quoted context omitted.

FWIW, C++ is a different language from C, and C code is more C++ compatible than Perl 5 is for Perl 6.

> FWIW, C++ is a different language from C It's been 20 years so my information could be very much out of date, but at that time anyway I would not have said this statement was true. C++ then was a superset of C, and any C++ compiler was capable of compiling ANSI C.

Even back then, C++ introduced new keywords, so valid C code like

  int new;
would not compile in C++.

Re: Is Perl 6 Being Renamed?

#225

Serious question: what does Perl 6 bring to the table? What advantage does it provide over Perl 5, Python 2/3 or Ruby? I could google this (which I will), but give me the HN summary. What do you think is a good reason to use Perl 6?

Four of my favorite things are the built-in MOP, the syntax for declaring values and their traits in objects, hyperoperators, and native support for user grammars rather than just regexes and parsing modules.

Re: Is Perl 6 Being Renamed?

#226
post #33

As a German, I don't like the name "Camelia" very much because it is associated with hygiene products here (brand name). "Raku" sounds nicer for me.

Anecdotally, "Meijer" is one of my favorite retail chains in the US.

Re: Is Perl 6 Being Renamed?

#227

Earlier quoted context omitted.

TIOBE is not a relevant barometer, it's just the number of searches and hence a noisy metric. Look at https://www.tiobe.com/tiobe-index/ . It indicates that the popularity of C and Java halved between 2016 and 2018 and then made a dramatic recovery, doubling in less than a year. It would be absurd to suggest that there was a real world change to the usage/popularity of these two languages corresponding to this. A bet…

Even then I'm surprised to see Lua fall off the table, and Go's stagnation seems kinda odd. Given how much lua is used as an embedded language in Games, Databases, Servers, etc. I feel I've only seen it's usage increase. Go I can see as "appearing more popular then it is due to HN" but even then I feel like clis/networking tools have been using Go more and more.

Its usage has increased, but so has the usage of other languages. Its drop in popularity is relative to its share of all users.

If Alice has two apples and Bob has three apples, Bob has 60% of the apples. But if Alice gets four more apples and Bob only gets one, Bob has only 40% of the apples, despite having more than he did before.

It's the same with TIOBE's popularity index.

Re: Is Perl 6 Being Renamed?

#228
post #144

Earlier quoted context omitted.

Memorizing everything is not required, there is reference documentation. Learning the language would familiarize you with the important syntax, as with any language, and all languages have such oddities, they just appear in different forms.

No, all languages do not have such oddities. That's a false equivalence. And it doesn't excuse Perl's bad design or justify its intellectually bankrupt TMTOWTDI philosophy. Python's philosophy of "There should be one — and preferably only one — obvious way to do it" is diametrically opposed to TMTOWTDI, and Python's vastly more successful than Perl because it's much easier to learn, read, use and maintain. Can you na…

$, is the output field separator, which in short or English form is very rarely used. Generally people explicitly determine what they want on output with something like sprintf(), printf(), or join() rather than sending a list to print().

Just like a natural language, there's a tiny pidgin subset you can learn and use to great effect. You then learn obscure vocabulary on the rare occasion you come across it.

If you have had to maintain code by people who intentionally obfuscate it, you should be at least as angry with those people as with the designers of their tools.

Re: Is Perl 6 Being Renamed?

#229
post #70

Routinely I see in numerous online discussions that people refuse to even consider Perl 6 because they hate Perl. Or there are younger people who think of Perl as "their grandfather's language" (in much the same way people in my generation view COBOL). I am not a fan of Perl, but this feels tragic to me. Perl was so radically different. I remember being on Perlmonks way back in the day, and someone would post a quest…

> The analogy to natural language carried further into practice than Larry Wall could have dreamed. Over the years I've seen this mantra repeated a million times but I've yet to have anyone actually explain what it means beyond a piece of marketing fluff. What actually is this analogy in concrete terms?

Writing and reading Perl was meant to feel more like producing and consuming natural language. When in comes to natural language, our ability to use it for practical purposes is a fact, and whether it can be understood rigorously or shoehorned into a logical framework is an academic question. With that in mind, Perl was designed without regard for whether the everyday user of the language could understand the logic beneath it. All that mattered was that people could learn to produce meaningful chunks of code and understand code produced by others who wished to be understood. Unlike any natural language, of course, there was a standard implementation, so there was a logic underlying it all, but being able to pull apart a piece of code and explain how the parts worked together was considered to be of secondary importance to being able to successfully produce working LOC.

You even saw "folk theories" about how the language worked, which were valid and useful to the extent that they helped people produce and understand a certain subset of valid Perl. These folk theories would trip up people like me who expected them to be mathematical truths that could be combined with each other in novel ways, while more Perl-attuned people knew that this kind of analysis was as hazardous as assuming that fingers fing, or that "black big dog" is as valid as "big black dog." There are always new rules to learn and more precise versions of rules you thought you already knew, and ideally you would end up following the rules without knowing them [1]. Ideally, the better you got at reading and writing Perl, the less you thought about those things, just like we study rules of grammar as children while we're learning to stop writing incomprehensible crap like "dog run big I saw," and the better we get at writing the more we realize that the "rules" of grammar are mostly wrong and beside the point anyway. You didn't expect the sysadmin producing reams of working Perl in the next cube to be able to explain what a reference was just like you didn't expect a master advertising copy writer to be able to diagram a sentence for you.

In my attempt to learn Perl the way you would learn math, or the way you would learn a traditional programming language that was designed to be used by logically combining completely understood parts, I discovered that there were some people who understood Perl and could confidently recombine pieces into new idioms and know what they would do without trying them, but in the Perl community it was considered okay that these extraordinary people were a small minority, just like we don't worry that there isn't a professor of linguistics standing by when you order a meal in a restaurant.

Personally, I found it to be a fascinating abomination. An abomination because it flies in the face of how I think good reliable software should be written, and fascinating because it seemed to work surprisingly well.

[1] https://twitter.com/MattAndersonNYT/status/77200275722200268...

Re: Is Perl 6 Being Renamed?

#230
post #206

Earlier quoted context omitted.

> But why do people talk about ParrotVM and Rakudo as if they're different things? Java has a compiler and a VM, they're called "javac" and "jvm." Bad example: Java actually has many VMs available for it: Oracle, OpenJDK, Zing, and IBM come to mind. (EDIT: And "Dalvik", for all the Android fans). I'm unsure if Java has multiple compilers, but its quite possible. Python has CPython 2.0, CPython 3.0, and Jython at leas…

> Bad example: Java actually has many VMs available for it And it always had a single official and complete reference implementation in the form of the Sun JVM and later the OpenJDK. kbensons description makes it look as if Perl 6 had/has neither. > And "Dalvik", for all the Android fans Dalvik was intentionally incompatible in many ways and wont run a spec conform jar no matter how hard you try. Might as well call C…

> And it always had a single official and complete reference implementation in the form of the Sun JVM and later the OpenJDK.

True though even in the mid to late 90s there were other JVMs available from companies such as Microsoft and IBM. In fact for a period, Sun’s JVM was one of the worst implementations despite being the reference implementation.

Post reply on HN