Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Larry Wall's Very Own Home Page (www.wall.org) similar stories update story
303.0 points by mhasbini | karma 751 | avg karma 6.53 2018-10-09 12:07:53+00:00 | hide | past | favorite | 173 comments



view as:

Larry’s Perl page is a bit telling:

http://www.wall.org/~larry/perl.html

Perl 6 is still the future of Perl?

https://www.perl6.org


Perl5 definitely isn't the future IMO, but many will point out that neither is Perl6.

Perl5's CPAN is still very useful, the language is still available on most UNIX systems, it has some really nice OO modules like Moose, and the community still has lots of conferences and releases regular updates. I personally prefer Python in this space though.

Perl6 on the other hand is gorgeous. You can write beautiful OO, FP, imperative...whatever code. Grammars and MOP are great. The parallel support is cool and the Unicode support is top notch. You can also do really cool stuff not normally seen in scripting languages like restrict the type going into a function to be a non-negative integer in the range of 1..10 kind of like in Ada. The downside is that the language is still immature and adoption is slow. The VM is getting better, but with things like Nim, Julia, Crystal(fast languages), Perl6 is a tougher sell.


I will never understand why it was not possible to leave Perl5 as Perl and call Perl6 something else, maybe 'Butterfly'. They share very little except their creator.

One of the most active Perl 6 contributors made a repeat plea to Larry on the topic of its name just the other day: https://perl6.party/post/A-Request-to-Larry-Wall-to-Create-a...

And it has been mostly rejected by everyone else, just like the first time it was made.

This is a silly debate but I suppose Zoffix has contributed enough awesome code to buy himself some credit.

In any case, it is Perl6 and changing the name now would be an even bigger mistake.


Larry was just discussing this with my wife (the official(?) Perl poet) yesterday. His wife and my wife didn't like the name he proposed. I kinda liked it.

I don't feel at liberty to disclose the name, but it might be in the recent irc logs.


I'd have called it Amber. A natural gemstone, as is a pearl, but takes a lot longer to form :)

The same reason the spiritual successor to Modula was named Modula-2 by Wirth.

Not sure how you see Perl6 and Nim/Crystal as being competitors...they occupy completely different niches.

Perl6 is supposed to be a new approach for dynamic scripting languages. Maybe you think stuff like gradual typing means it is trying to compete with systems languages...but I don't even think it is the case that "idiomatic" Perl6 will have a lot of type annotations and I personally don't use them much.

I think a better comparison is Racket. Racket is also trying to push the boundaries for dynamic languages. I do not consider Python3 to be a competitor because it seems quite clear that Python3 is not intended to offer up much in the way of fresh thinking, just a cleaned-up Python2 (which is perfectly fine).


They are in different niches to a degree, but when you have a language like Nim that is as easy to use as Python, nearly as expressive as Python...etc, then you might go ahead and choose Nim over something like Perl6 as it is so fast and distribution is just a binary. C++ is in a different ballpark than Perl6, but not Nim & Crystal. They overlap to the slower lang's detriment.

You are comparing these tools based on superficial syntactic characteristics and completely missing the dynamic capabilities.

You should look at a tool like Perl (5 or 6) much like you would a Lisp - a dynamic system that provides interesting and useful runtime features.

I use Perl when I want features like `eval`...or when I want to push data around while delaying evaluating its type.

This is why I suggest comparing the Perls to tools like Racket.


Oh man I haven't seen geekcode in years

Even when it was popular, there certainly weren't many people who couldnt legitimately claim P+++++

According to the Code of the Geeks, P+++++ means: I am Larry Wall, Tom Christiansen, or Randal Schwartz.

So yeah, not many people may claim that.


Full decode of the P section is even more amusing:

GEEK PERL CODE [P+++++(--)$]

My tendencies on this issue range from: "I am Larry Wall, Tom Christiansen, or Randal Schwartz.", to: "Perl users are sick, twisted programmers who are just showing off." Getting paid for it!


Surprised Damian Conway never made that list .. I thought he was sort of heir-apparent at one point

According to this geek code generator[1], the requirements for "P+++++" are:

>I am Larry Wall, Tom Christiansen, or Randal Schwartz


s/nt// :(

Too bad the domain is gone. But we still have the archived version: https://archive.fo/zbxk

I've actually been hosting a copy here:

http://www.jaruzel.com/apps/geekcode/

With the intention of doing something more... interactive with it. Never got around to it though. Also, search engines don't index the archiver sites, so how are people supposed to find dead stuff?


Wow, I'm too young to have known the original one, I'm glad I stumbled upon your comment.

Me too. Funny thing is, I'm pretty old.

I have to admit I did cringe at the sight of that. Yet I also get a strong pang of nostalgia. A relic of a much more innocent era.

:-)

> I hate my telephone. Please don't ask for my phone number.

Yup, who doesn't :)


I think we hate our telephones more than we used to and I have a theory about why. The time lag between saying something and the other person hearing it is very noticeable on cell phones as compared with landlines. This makes conversations very annoying. Person A will begin speaking and then half a second later, they'll hear Person B "interrupting". Of course Person B didn't know he was interrupting because he hadn't yet heard Person A begin to speak. Then they both stop talking, followed by some dead air. And then they both yield to one another. "No, you go ahead, please". For whatever reason, landlines seem to have lower latentency and this doesn't happen.

That and of course there are a zillion more interesting things to do on a smart phone than talk to someone.


For me, it's that the telephone demands immediate and synchronous attention. It's the same as someone barging into your house/office, interrupting whatever it is you were doing, and demanding your attention on something entirely different.

I think this is also largely why text-based communication is so popular: it's asynchronous. You can send someone a message, they reply when it's convenient. There's very little effort involved as the recipient (compared to say, voicemail or a live conversation).

A scheduled or expected voice call is entirely different: it's just an efficient form of communication. I personally would also rather have a 5 or 10 minute phone call than send texts or e-mails back and forth dozens of times over the course of hours or days.


I hate it when it starts ringing. My phone is on silent all the time for that reason (lots of missed calls, sorry), and when I'm busy the interruptions greatly irritate me (and I'm always busy).

I have been looking for an Android app that simply turns the phone to silent when it is put face down. That way I can do that when I don't want to be disturbed.

You can set that up with Tasker pretty easily. I hadn't considered it before now but I just set mine up to go to vibrate when I flip it over.

Huh, I never noticed the latency when talking on a mobile phone, but I also don't remember the last time I used a landline, so maybe I just forgot how much better it was.

The reason I hate the phone function of my phone is that I see calling someone as an ultimate disrespect: "I demand your attention and I demand it now, I don't care what you're doing, it will be up to you to call me back if you don't pick up the phone now!" Then I hate calling other people because I don't want to be disrespectful towards them.

Maybe it was different back when phones were a nice thing, nowadays, like someone mentioned, they usually mean trouble, annoyance or more work. Ugh.


Maybe they just want to talk to you

I hate telephones because the audio quality, even today, is bad. I can tell when I'm talking to a landline because it's so much more clear.

For some reason, it's difficult for my brain to process even a little digital noise. A modern cell phone is just about at the limit of what I can understand. It's hard for me to carry on a conversation because I've lost my hardware acceleration. I'm spending all my cycles trying to interpolate what words were said.

Literally every 10 seconds I have to say "What did you say?" It didn't used to be this way.


An interesting observation. It seems to be almost like light pollution, where we don't even know anymore how our ancestors perceived the night sky and just stopped looking up at night. Because landlines are also not what they used to be, now that everything is VoiP (even when your last mile is still analog copper).

Apparently, when our voice is passing congested packet networks, we need exponential backoff on OSI layer 8.


When I was younger, my friends had my telephone number. I used to enjoy coming home and chatting to friends on the phone. I loved receiving calls. There was something nice about having that landline handset against my ear.

Nowadays, the tax department, my boss, various Government departments, my bank, etc. have my phone number. It's never good news.

Of course, back in the day I didn't spend 4 hours a day on YouTube and doing stuff on my computer when I get home, so I viewed telephone calls as less of an "interruption".


Phones are what email would look like without spam filters.

Whenever I pick up my phone, it's a robocall trying to sell me either insurance for a car I don't have or political stuff for a district I don't live in. If I could only talk my workplace into sending texts instead of calls, I'd never pick up my phone again.


I don't actually hate my phone, but I tend not to take the calls unless I know the person calling.

I miss sites like this being a greater proportion of the internet.

When everything else was just fields... and javascript was to be used as little as possible.


> and javascript was to be used as little as possible.

You seem to have forgotten about "dhtml". That damned ascii-analog-clock-that-follows-your-mouse still haunts my dreams.



Avast claims there's malware on that site, fwiw.

Mouse clocks are malware, for sufficiently broad definitions.

Looks like a false positive. Virustotal sees clean: https://www.virustotal.com/en/url/e1aefef6b413b1f232d72c7b37... (except Dr.Web, but they appear to basically flag everything)

One of my favourite things to do on Slashdot during its heyday was go through the comments and open all the "Homepage" links from user profiles. It was usually a treasure trove of personal websites in this style.

I've been on a rant lately about how much I miss the wild west days of the web, 33k connections and all. I used to visit a blog (it was basically a blog, but probably 5 years before I'd heard the word blog) written by a guy who was chronicling the government controlling his mind with electricity. It was endlessly fascinating, and I can't even find it now. I miss finding the unexpected.

I don't blame javascript, I blame businesses for swallowing everything in an attempt to make money. I think I miss it because people mostly created pages out of passion or curiosity, and they hung out on IRC because they didn't care if everyone could see how poignant their comments were.


I think I remember the blog you’re talking about, and now I’m wishing I could find it too. Everyone knew about the Time Cube guy, but the guy whose brain was being controlled by government electricity, that took your links page to another level.

I distinctly remember getting sucked into it and then having the realization that a percentage of the population were paranoid schizophrenics and that they could publish now. He helped me build some armor (and compassion) for the social media age.


Man, I'm really glad to have some confirmation that I'm not crazy and that page really existed. I recall spending hours reading his reports, it always sucked me in somehow. I think he was actually a good writer.

> I miss finding the unexpected

You could try Reddit


Yes, we all use reddit. But it makes me sad that all the content is located in a handful of places. And all of that content is regulated by the reddit company. /b/ is much closer to what things used to be like, but since there was more places it was easier to avoid edgelords.

It can't have been more than five years ago or so that I was browsing Usenet (through an actual server, not a web interface) and there were definitely a collection of, shall we say, interesting characters.

I made the choice that, despite being a front-end developer, my personal site would have zero Javascript. Hasn’t stopped me putting up anything I’ve wanted to so far. Guess I should probably add a script-blocking CSP too, actually.


I re-did my homepage recently with this thought in mind. My previous one was the usual big hero section at the top, second section with three highlight cards, etc, etc.

My goal is to show my personality and not use a CSS framework. Partially to express myself but also to learn and practice. I have some javascript but just use it for an easy to find easter egg.

http://www.patrickjustinbradley.com


Are you serious? This site looks horrible. And the only reason it's not a pain to navigate is because it has very little content. I definitely don't miss those days of the Web when UI designers were not invited yet.

Some of my other favourite low-bloat/retro websites (interesting overlap with internet legends):

* Fabrice Bellard: https://bellard.org/

* DJ Bernstein: http://cr.yp.to/

* Tim Berners-Lee: https://www.w3.org/People/Berners-Lee/

* Richard Stallman: https://stallman.org/

* Programming in the 21st century: https://prog21.dadgum.com/

* idlewords: http://www.idlewords.com/


Even a commercial website that represents hundreds of billions of $ does not need to be bloated:

http://www.berkshirehathaway.com


Another billions of $ managed on a stealth website: https://www.rentec.com/

(Those behind Cambridge Analytica, btw)


Love that they provide their financials in machine readable format.

Where? I just see a link to the Edgar filings which are mandatory for publicly traded companies in the US.

> If you have any comments about our WEB page, you can write us at the address shown above. However, due to the limited number of personnel in our corporate office, we are unable to provide a direct response.

Love it.


And the 'address above' is a physical street address!

They mean write it on paper and put it in the mail.


yup. As in they don't want to hear from you unless you have such important criticism that you are gonna sit down, write a letter and mail it.

I find the Geico ad to be an interesting addition. Seems rather out of place, regardless of the fact that they are a subsidiary of BH.

A small-caps header made only with <font>-tags. From the time when web designers cared about the craft!

Another of a my personal programming heroes has a page that's even simpler https://bellard.org/

Wow, that background color peels off my retina.

Recurring corneal erosions sufferer checking in. Yeah, this color scheme is not one I'd be spending reading time on during a bad eye day :-)

FTA : "I'm also keeping a diary all about my cornea transplant."

Wow. Is that linked? I'll check it out. Eye conditions are weird that way, maybe the color really helps him out. I need relatively dark and low-contrast when part of my cornea has just been peeled off :-)

Yup! http://www.wall.org/~larry/cornea.html

It's actually a really cool read - I wish he had more stuff posted on his blog to read :(


Imagine read this at night on your phone. Instant blindness?

Haha. I couldn't imagine that. If I do any reading in the dark, at night, I'll try to at least yawn a few times, maybe punch myself in the nose, to generate some tears. ;-)

His "Web and CGI programming" part cracks me up.

I really like this, and hope that at least some part of the web moves towards a similar federated approach (as opposed to having all personal information on other services like FB or LinkedIn etc)

Other efforts in this vein: https://indieweb.org/

And my very own try on a webpage ( I started last week, its even worse than Larry's, please dont judge): http://www.hmontenegro.com


Doesn't have a chartreuse background so +1 :-)

(I can't believe I spelled chartreuse right on the first try..)


Much nicer than my homepage from that era.

Oh man, this brings back memories.

Larry Wall is a wonderful human who I had the privilege of meeting back in college. He came out for a summer tech conference we were hosting and was the keynote speaker. When we broke out into small groups he was in mine and we chatted a bit. He was the first internet famous person I had ever met - kind and unassuming, and also the creator of something highly successful in the Perl programming language.

Perl was one of the original web languages and the Swiss Army knife of scrappy programmers and sysadmins everywhere. It was a direct influence on many more recent programming languages, including Python and Ruby to name a few.

My friends and I discovered this very own home page back around the time I met him some 10 years ago. It was where I first learned the word "chartreuse", and I'm still not fully sure what color that refers to. You can find some of his writings under the "My Ravings" section, which are a hoot.

One of my favorites of his writings is The Three Virtues of a programmer (http://threevirtues.com/):

Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don't have to answer so many questions about it.

Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to.

Hubris: The quality that makes you write (and maintain) programs that other people won't want to say bad things about.


Chartreuse is a kind of green-ish color, it comes for the drink! Go to France and ask it as a digestif it's great ( but gives me terrible headaches ).

And thanks for the three rules maybe now I might explain my manager why my laziness is good


Chartreuse comes from the Alps (Isère), and was brewed by the monks of the Grande-Chartreuse. The drink's history is pretty interesting to read about[1].

There are actually two kinds of Chartreuse, one green (easiest to find) and one yellow. The recipe supposedly containing over 100 medicinal herbs, Chartreuse was originally sold as a "health elixir" rather than a digestif. To this day the recipe is still held secret in the monastery, although production has scaled up.

As you may have guessed, it's one of my favorite liqueurs and has become my go-to "last drink" (after a big meal, when my guests leave).

Also, if you ever go skiing in the Alps, you can mess with the locals of Savoie by asking for a Chartreuse rather than a Genepi[2], a similar drink from there.

[1]: https://en.wikipedia.org/wiki/Chartreuse_(liqueur) [2]: https://en.wikipedia.org/wiki/G%C3%A9n%C3%A9pi


The drink [0] is actually still kind of produced by the monks. The brothers Chartreux, who have all taken vows of silence by the way, collect the medicinal herbs in their remote mountain valley where they live. They live in a castle [1] that looks like something out of the Harry Potter franchise by the way. Each of them has his own multistory rowhouse. Anyway, the herbs they collect make up the mixture, which makes up the drink, then it is brought to the nearby distillery where it is distilled. What's changed from the old days is that they don't do the distilling in the monastery. And there's actually still a Chartreuse "health elixir" [2], me and my partner buy them for our grandmas. It comes in little bottles that are put in a wooden cast-sort-of thing that opens like a matroska. You drink one teaspoon at a time, it's around 60 degrees, it has a different herb mixture, and I think it has less sugar. If you're ever around that region of the alps, the valley of the monastery is a nice place to hike.

[0] https://en.wikipedia.org/wiki/Chartreuse_(liqueur) [1] https://en.wikipedia.org/wiki/Grande_Chartreuse [2] https://en.wikipedia.org/wiki/Chartreuse_(liqueur)#/media/Fi...


There is a great documentary [1] about the Grande Chartreuse, available on DVD [2].

1: https://en.wikipedia.org/wiki/Into_Great_Silence

2: https://www.amazon.com/Into-Great-Silence-Two-Disc-Set/dp/B0...


It's on Youtube [0], though the quality is lacking. Thanks for sharing this!

[0] https://www.youtube.com/watch?v=fgfU_RRNYkw



also, it's the background color for his page

It is also the background color of the page in question if you are looking for a visual example.

You can also have it in feline format as a stone gray coloured little beast with yellow/orange eyes:

https://en.wikipedia.org/wiki/Chartreux

(I wonder if Mr Wall is a dog person or a cat person type. I just realize now that having a cat stomping around could explain the look of some perl code... mmhh)


I learned Perl 4 back in the mid-1990s, before the massive piles of cruft got bolted on that turned it in to Perl 5. It was basically just glorified sed/awk meets shell script in a single process, and it was awesome.

As a junior programmer, I had to do some maintenance work on a couple of daemons written in C that were just launchers for other programs. A couple thousand lines of messy, badly structured C. So I had the clever idea to just rewrite them in Perl. Suddenly they were 50 lines, easy to read, robust, and had really useful logging.

Perl 4 also spoke Sybase really well, which made it our reporting tool of choice. We could grab whatever from our Sybase databases, and format nice printed/screen reports easily in Perl.

I was really excited when Perl 5 came out, but ugh. I wound up writing about 10,000 lines of it at a dotcom, and it was so, so ugly. All the stuff that made 50 line Perl 4 beautiful made 10,000 line Perl 5 an unreadable mess. Worse, there were three of us writing it, so consistent coding standards were a big challenge.

I don't use Perl anymore for anything but one-liner fancy greps on the command line. If I have to write an actual script, it'll either be plain sh/ksh/bash, or Python or Ruby if it needs structure. I'm not going to waste my brain trying to write readable code in Perl anymore.


That mirrors my Perl experience exactly.

In the early nineties it was a force multiplier, and then it seemingly just imploded in on itself.


It was a force multiplier when comparing with C, C++ or BASH.

Perl 5 saved Perl from itself, too bad Perl 3/4 lovers kept writing Perl 3 years after 2000 until they saw the light and the truth and moved to Python.


> I was really excited when Perl 5 came out, but ugh. I wound up writing about 10,000 lines of it at a dotcom, and it was so, so ugly. All the stuff that made 50 line Perl 4 beautiful made 10,000 line Perl 5 an unreadable mess.

I find that Perl gets a bad rap for being "unreadable". In my experience the readability of Perl is the direct result of the discipline of the person writing it. It's not hard to write readable, maintainable Perl 5, but it's _easy_ to write _crap_ Perl 5. So, you have to be disciplined in how you create things.


Same for C++. Generally the problem is when you have multiple ways to do things, you have groups that use multiple ways to do things, and then you have to understand and maintain multiple ways that things were done.

100% agree.

I learned Java before I learned Perl so I've always tried to write code with small functions, use strict enabled and clear variables and I've often heard people say about my code:

"I didn't know that you could do that with Perl! I thought it was just an ugly scripting language."


Just about any programming language can be made readable, with sufficient discipline. But it shouldn't require "discipline" to have basically readable code.

Python is like the opposite of Perl in that respect. It's inherently readable, and you have to go out of your way to make it difficult to grok what the code is doing. (Ruby is somewhere in the middle, but Ruby is more eloquent than Python, so I'll take a little clarity risk for the potential of even greater clarity.)

There's a joke running around Twitter about how it's hard to tell the difference between Perl and a cat stepping on your keyboard. You'll never see that for Python or Ruby.


That Python is fundamentally more readable is a myth. Unless by "readable" you mean that any Python program is superficially more visually similar to other Python programs than are programs in other languages. Syntactic white space will do that.

In comparing Python, Ruby and Perl, each relies to a certain extent on symbols in the code to express meaning. Python uses symbols very sparingly, and those it does use are either very much like other languages or established patterns from mathematics, even going so far as to ban braces for indicating structure--nothing is exotic. Perl is the opposite extreme, with to sigils encode variable context (which is a concept foreign to other language) and complex regular expression and quoting schemes built into to language. Ruby sits very much in the middle between these languages.

The use of all non-word symbols to densely encode meaning helps reduce code size at the cost of apparent readability. That's why you think Ruby is "more eloquent". Perl can be even more expressive than Ruby, but it's compactness can intimidate people, leading to defensive "humor".

Real readability comes from good structure and explicit code, whatever the language. It is especially important for developers using dynamic languages to document the contents of their data-structures.

If Python tends to be readable, it comes from a culture that values readability and focuses heavily on choosing a single, consistent style. Not from any inherent technical factor.

This is a nice piece on code readability in real life terms: http://www.pgbovine.net/python-unreadable.htm (TLDR: code may be readable in over small sections, but what really matters is whether you can understand the whole program. If you get lazy, you will make a mess. Be explicit.)


You can quote all the "facts" you want, but I've done a lot of both Python and Perl, and it's a lot easier to walk cold into a bunch of Python code, even badly written Python. What you call "superficially more visually similar", I call consistency. If I have to use conscious thought to figure out the structure of the code, it's taking from the conscious thought I need to understand its function.

And yes, Perl is even more powerful than Ruby when it comes to making code compact, but compactness and eloquence are two different things.


> All the stuff that made 50 line Perl 4 beautiful made 10,000 line Perl 5 an unreadable mess.

Yeah, that's the best description of Perl I've ever read.

At the time when the options were Perl awk, or C, it was a great language. It's just past its own time now.


I discovered Perl in the later days of 4--wait, I don't have to fuss around with lex and yacc to parse ugly formats?--and was dragged into 5 because somebody up the chain wanted us to run SATAN. Then I discovered Oraperl, and eventually DBI.

I have written some truly awful Perl in my day, and now and then some that I can look through again years later and acknowledge as not too bad. It has saved me, and through me people I work with, a great deal of time.


>I learned Perl 4 back in the mid-1990s, before the massive piles of cruft got bolted on that turned it in to Perl 5.

Interesting. Can you elaborate a bit on what changes made 5 worse than 4, in your opinion?

>Perl 4 also spoke Sybase really well, which made it our reporting tool of choice. We could grab whatever from our Sybase databases, and format nice printed/screen reports easily in Perl.

Can confirm that about Perl and Sybase, anecdotally. A friend worked at banks in Singapore and Japan that used sybperl, which was a way to use Sybase from Perl. IIRC he said it made writing DB-related programs easy.


What made Perl 5 worse than 4?

$this->{mess}

The "object oriented" stuff, while making it more powerful, looked like modem line noise, and created a half-dozen new ways to say the same thing. It drifted away from the shell-like nature of Perl 4, and lost a lot of clarity.


Which is actually incorrect usage of "object oriented stuff", because you should use an accessor, not depend on the underlying representation. So that should have read `$this->mess`

And who writes accessor methods in PERL?

At that point, you might as well start using a heavier language.


In Modern Perl (5) you use a module such as [Moose](https://metacpan.org/pod/Moose) or if that's too heavy for you [Moo](https://metacpan.org/pod/Moo).

You rarely write accessor methods yourself in Perl 5. In Perl 6, you describe your accessors/mutators in the class definition:

    class Pointer {
        has $.x;       # a ro accessor
        has $.y is rw; # a rw mutator
    }
Which, by the way, is now faster than Perl 5.

> has $.x; # a ro accessor

> has $.y is rw; # a rw mutator

Opinion: I don't like the asymmetry of that, although I do understand that having to write "is ro" too, would make the language slightly more verbose.

Python has something similar with the syntax for properties; don't like that syntax too, for the same reason (asymmetry).

E.g.: The 2nd code example in the question here -

https://stackoverflow.com/questions/17330160/how-does-the-pr...

- the one that uses

    @x.setter
I'm not a language designer or close to it, though, just saying.

You can always add `is ro` trait modifier.

    multi sub trait_mod:<is> (Attribute:D $attr, :$ro!) {
      # no need to do anything, because this is the default
    }

    class Pointer {
        has $.x is ro;
        has $.y is rw;
    }
That is assuming you aren't fine with using `is readonly`.

    class Pointer {
        has $.x is readonly;
        has $.y is rw;
    }
Which works better with the trait mod `is required`

    class Pointer {
        has $.x is readonly is required;
        has $.y is rw;
    }

Do you know that Perl 5.0 actually had less syntax than Perl 4? It had more generalizable syntax, and was mostly backwards compatible, but it had fewer actual syntax rules!

Useless trivia. Both the . and the -> notations for OO programming have their roots in C. If foo is a struct, and bar is a property of the struct, foo.bar pulls that property out. If baz is a pointer to foo, then baz->bar does likewise.

In Perl the . was already taken for string concatenation, so -> was the next reasonable choice. And the analogy is surprisingly exact. For example if $foo = $bar = {} then calling bless($foo) will also bless $bar since both are just references to the actual object.

As for lots of ways to say the same thing, TIMTOWTDI was an intentional goal.


Sure, TIMTOWTDI was an intentional goal. I'm not sure it was a good goal, in hindsight. The whole "What idiot wrote this crap? Oh yeah, me" problem was worse in Perl than in other languages. And reading other people's code often involved learning whole new programming concepts.

I worked in a giant Perl, Moose heavy codebase with enforced Perl::Tidy for a bank and loved every second of it.

I admit there was a lot of "clever" code, but contrary to those who didn't bother learning the language, I didn't mind much.


I started Perl 4 back in the mid 90s, but today I use Modern Perl with Moo. I have to say it is much cleaner than what you describe.

Perl remains my go to language for a lot of kinds of tasks because its more flexible approach to data structures than the other languages that might be candidates for me (PHP, Python3), especially if it is a task where I'm having to experiment a lot to find the right approach and so am frequently revising data structures.

The big thing is that in Perl arrays and hashes act like they are infinite.

For example, you can read past the end of arrays or from non-existent hash entries and you get undef, not an error.

In a lot of applications, that is terrible. You want an error, like you get in Python. For those applications, I'd probably pick Python3 over using Perl and having to put things like "die unless exists $hash{$foo}" all over the place.

But for a lot of applications, especially involving reports where going in you don't know what you actually want or need, it is great. For instance, let's say I'm doing a report on sales. At some point I have $account (the account identifier for a customer), $service (a service we offer that they use), and $amount (the amount they ordered of the service on a particular order).

If I have a hash, "my %count", I can use it like this in Perl:

  ++$count{$account}{$service}{orders};
  ++$count{$account}{orders};
  ++$count{orders}
  $count{$account}{$service}{total} += $amount
  $count{$account}{total} += $amount;
  $count{total} += $amount
In the other languages I'd have to somewhere in there explicitly do something equivalent to:

  $count{$account} = {}
when I start processing $account, and

  $count{$account}{$service} = {}
the first time I come across an order of $service for $account.

That doesn't seem like much, but it is noise and if I've got enough different kinds of things I'm accumulating stats on so that I've got a lot of those it gets distracting, the same way that for programs where accessing things not predefined would be a sign of a serious error putting "die unless exists $hash{$foo}" all over the place would be distracting (and so it is clearer to do those programs in Python).

Now suppose I find out that on the report I need to not only list the count for each account of their orders for each service but the order numbers of all the orders. Simple. Just change:

  ++$count{$account}{$service}{orders};
to

  push @{$count{$account}{$service}{orders}}, $order_number;
and anyplace that was using $count{$account}{$service}{orders} as that count, change to using the length of that array (and of course add something to the final output that iterates the array and prints the order numbers in some pretty way).

If a language removes enough of these distractions, you can get into a very productive rapid experiment and feedback loop.

In a sense, I think removing distractions is kind of the point of high level languages. A distraction is anything that that is there that is not a natural part of the way a human thinks about the problem at hand but that is needed because the computer needs it. For example, memory management is a computer thing, not a human thing, so we expect high level languages to handle that.

Once that productive experimental phase is done, though, some of those things that were distractions might cease to be so. They can then become useful documentation to future readers of how the following code intended to use things.

That makes using a language like Perl, which lets you leave off those things when they are distractions, require some discipline if you use it for things that aren't one time throwaways. You need the discipline to go back and put those declarations in, or better to add some block comments explaining your final data structures. If you don't have that discipline, stay away from Perl.

But if you do, or if you are sure it is a one time throwaway, Perl can be a great choice.


You can access an item in a hash in a similar manner with Ruby now.

https://ruby-doc.org/core-2.3.1/Hash.html#method-i-dig


I think Python defaultdict does some of what you are looking for.

https://docs.python.org/3/library/collections.html#collectio...


I like that the perl 5 code I wrote in 2002-2007 is still running, but the python 2 code I wrote circa 2008 to 2018 needs to get ported over to python 3. Should have stuck with perl!

Perl 4 ... the good days :)

I guess require-ing files all over the code and using the global scope for everything and using globals or even a global hash and having functions read and write to that hash is something to be regretted. Not that C is much better.

I have maintained and ported Perl 3 and 4 to Perl 5, I must say the existence of PHP3 made sense after that :)

There was that trick using goto and exit to simulate functions that people writing Perl 3/4 loved. Was it done for performance reasons ?


It was done that way because that's how we learned to write functions. I dunno if it was the best way, I was just a kid then, but if you had the O'Reilly Perl books, that's how you learned it.

I also really liked the follow up on the three virtues, in the 2nd State of the Onion (http://www.wall.org/~larry/onion/onion.html)

> Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.

> These are virtues of passion. They are not, however, virtues of community. The virtues of community sound like their opposites: diligence, patience, and humility.

> They're not really opposites, because you can do them all at the same time. It's another matter of perspective. These are the virtues that have brought us this far. These are the virtues that will carry our community into the future, if we do not abandon them.


> ... the word "chartreuse", and I'm still not fully sure what color that refers to.

Take a look at the background colour of the web site that this thread is about. :-)


Cool fact about chartreuse: it's a color named for a liqueur.

I learned perl almost solely because I love Larry Wall's personality.

I legitimately want to push him down a flight of stairs.

This page loads so fast , why can't all pages be like this? :)

It’s easy, just install NoScript and you’ll find the web loads at the same speed.

True enough but an increasing number of sites I visit load fast because without JavaScript they don't show anything at all!

The static site movement seems to be the modern embodiment of this philosophy. The tools to generate them (eg Jekyll) might be clunky compared to Notepad but it's definitely a positive thing in this day and age of ever-bloated websites.

My personal site does not have any JS, but honestly at this point what I really want is an app where I can edit the page and see the markup and then press a button and it will generate and upload the content to my website.

I tried to finagle gitlab into it (since they offer free hosting and CI) but I haven't gotten the last step to quite work yet. Would be awesome to be able to work in both of line mode or through my Chromebook, and sync everything with git.


Craigslist, HN. Still good–old, fast and extremely useful.

Most newer crap–web has more bugs than features and nearly defunct after all. My opinion is that in this stupid century of hype, ADD, dyslexia and internal censorship immutability is the most precious asset. And swisswatch-like software can be the next big thing.

PS. Booking.com is also cool. BTW, it is still powered by Perl.


Just in case you don't quite know who Larry Wall is: https://en.wikipedia.org/wiki/Larry_Wall

I wrote code for a bank using perl. I'd say 95% of their code at the time was in perl. Website called perl, back-end processing was perl scripts. Cron jobs were all perl script that needed to run to do house-keeping.


It's a shame Perl isn't still used. Maybe not by those who have to maintain poorly written Perl admittedly.

(Edit: disappointed to see the Perl link doesn't actually work).


>>It's a shame Perl isn't still used.

Perl is still one of the most widely used languages in world today.


Why is that a shame? It still exists, there's nothing stopping anyone from using it.

I think it's safe to assume that the people choosing not to use perl have a good enough reason for their decision.


It's not sexy enough to be talked about, but it is still there.

50% of my (new) projects remain in Perl. The other 50% in a mixture of C, Go, and C++.


90% of the stuff I write is in Perl. The other 10% is Tcl.

I design semiconductors and every week I have to write a couple of small scripts to process text files or reports and that is always in Perl. Everyone at work knows Perl. Those that don't learn it.

The EDA tools mostly use Tcl as the internal scripting language so I have to use that.

I have no problem with new languages but I find regex's in other languages to be too verbose.


I have used Perl extensively in all of my last 4 jobs. The biggest reason companies that use Perl (that I am familar with) are looking at other languages is because it is hard to find developers.

Fun fact: the majority of the Amazon.com home page is/was written in Perl (Mason). It's slowly being re-written in JVM languages, but I'd bet that some portion of the rendered HTML will come from Perl for a very long time.

I personally really like Perl. It does kinda encourage code-golfing, but that's what makes it so nice for one-off scripts.


Perl is the original duct tape if the web.

The templating system is still perl, and all their tests are run in perl.

Useless trivia. Perl was doing unit testing back in the mid-80s. One of Perl's early selling points was how portable they were, and the fact that they had comprehensive unit tests so long before the rest of the industry realized that was a good idea is one of the reasons for it.

More like that they invented a simple test protocol, called TAP. It's slow, because perl runs it, but you can also emit tap from C or C++, and it's much easier and more flexible than dejagnu or other low-level test frameworks.

It wasn't just a test protocol. Perl 1 came with a test suite, which its Makefile ran by default before installation.

As Perl grew up, the idea of "you have tests for at least basic stuff" was built into the culture. For example back in the mid-90s it was expected that every module came with a test suite, and every site would run that test suite before installing the module. When you went to package something for CPAN, you were expected to have a ./t directory with tests, and there were lots of examples to show you how to do it. And automated scripts that expected you do to it.

It was something like 15 years before anyone thought of naming the test protocol. It was just how you did things.


"Wall and his wife were studying linguistics with the intention of finding an unwritten language, perhaps in Africa, and creating a writing system for it"

And thus the inspiration for Perl :)


Makes me less embarrassed about my own web page on neocities.

Funny that he lists his personality type, and that it's INFP. I find this is one of the coding types most likely to get a) amusingly literary/language-focused and b) extremely detail-oriented about their code. INFPs are also known for their "do what I wanna" values so the chartreuse decision was amusing in this light. I haven't used Perl much, but I wonder how else it might echo these values. He seems like he's made it his own, at the very least.

Heavy Perl user over the years here. Its the only language after Lisp, that will let you feel the power beneath your fingers. Back in the day I would do with Perl do over a weekend, what a Java programmer would budget 6 months to do. It was just a productivity catalyst from hell.

I still think nothing comes to beat Perl when it comes to regex, and unix level scripting work.

I eventually moved on to other backend languages/stacks. But I still miss the productivity boost Perl is.

Over the years, I came to realize I like Perl so much, not because what Perl is, but the underlying concepts. Eventually I realized Perl is the closest to Lisp in the C world. And I like Perl, because I liked Lisp more. Lisp offers everything Perl offers, and more. And Lisp is infamous for almost the same reasons. These days I think Perl refugees will eventually find refuge somewhere in the Common Lisp or Clojure camps. And that is really good, because Perl like languages are basically a programming philosophy.

Lastly, Higher Order Perl(free to download online) is one of the best programming books you will read. Its a book on the same lines as OnLisp from Paul Graham.


I can't upvote this enough. Thanks for putting my thoughts into words.

Larry used to do consulting engagements in Boulder, and I had the honor of meeting him several times. Larger then life person but in just how he carried himself - he was quiet and unassuming, but still got people to work well together. I was always impressed with how he worked with Tom Christiansen, given the two of them seemed as different as you could be.

Perl never made the javascript transition, but I think you call tell a lot about a programmer by the look in their eyes when you say perl. If the eye twinkles with delight at perl's simplicity, and then the expression is occasionally replaced by a murderous look of rage when you have to maintain a 5k line script, you can tell that the programmer is a great programmer and has a tale or two to inform more junior members of our profession.


then the expression is occasionally replaced by a murderous look of rage when you have to maintain a 5k line script

Try dozens of 5k line Perl scripts

I think my expression will soon be permanently fixed into a look of murderous rage


> If the eye twinkles with delight at perl's simplicity

There are a lot of great things to say about Perl, but does anyone call it simple?


I was just thinking about Perl and how they dropped the ball. I'm sure Perl powers way more things than we want to admit - but its sadly not the first language that comes to mind when you want to write a quick script...

Perl is still my goto language for scripts. It all depends on what you're used to.

rememberry when homepages were called wallpage?

In 2000, I managed to put together $ for a US trip from India to attend YAPC (Yet Another Perl Conference) at CMU. I had been on #perl for years, and knew a lot of rhe community, but I had never spoken with Larry. I remember I was given a shared dorm room (even though I had requested a single), and as I was settling in, this guy in all black walks in, and says hi I am Larry, I am your roommate. I was like hey Larry, and went back to unpacking, and in about a minute realized it was _the_ Larry. It was awesome as Larry then took me around the conference and introduced me to many of the other legendary Perlers. A+ dude.

> "Finger me for my public key".

Double entendre, or unix geek obliviousness?



Pretty clear from my comment I know what `finger` is.

Larry Wall and his wife are some of the nicest people I ever had the pleasure of meeting. I posted this story on HN before several years ago (https://news.ycombinator.com/item?id=9890504), but I think it's worth reposting here:

I have a very charming Larry Wall story. He came to give a seminar to the research center where I was working, and gave a fantastic talk on Perl 6. Late in the evening, I ran into him and his wife on the bus when getting home from work - and started talking to them. Apparently, nobody from the department had arranged to take them out for dinner, so we ended up going out for dinner together, where we had a fantastic discussion covering religion, tolerance, and lots of other topics. I am a staunch materialist and atheist, while both the Walls are serious committed Christians, but we had a really pleasant discussion on religion and the nature of evidence.

I ended up giving his wife a copy of Hume's Dialogue on Natural Religion, and they were kind enough to sign a copy of the Camel book for a friend who is a huge Perl fan.

A lot of people know Larry by reputation - but his wife Gloria is just as smart and kind. It was a bit of a strange evening, but it was a rare privilege to meet two such interesting people.

I cannot emphasize enough how unassuming, kind and decent the Walls are. If you are also interested in very intelligent writing about religion, their son, Aaron, has a very neat blog: http://www.wall.org/~aron/blog/.


This sort of interaction, where multiple grownups just talk about a topic they have fundamentally different beliefs on, and being curious and mature enough to have a civilized discussion about it, seems just so distant and alien in these times.

I've had conversations like these, about VERY sensitive topics, with friends who disagreed, and none of us held a grudge (that I know of). I miss that.

I know this happened years ago, but still, thanks for sharing. It gives me hope.


Larry wall is also the highest profile person I know who spends lots of time on IRC to the point anuone can talk to him basically any time they want.

David Hume's arguments are not valid anymore. Hume argues that we cannot reason from a part of the universe to the universe as a whole but that is clearly disproven by modern science: spectroscopy does exactly that, using the knowledge we obtained from local observation of chemistry to determine the composition of distant stars many lightyears away.

https://web.archive.org/web/20170614081541/http://www.uwgb.e...


Could you highlight his reasoning for being committed Christian? In my experience, it is very hard for intellectuals to cling to their religious beliefs in face of ocean of severe logical contradictions. So many of my discussions have usually ended in “ok, I know what you saying but I am not going to stop believing in [mohamed, Buddha, christ]. How did your discussion ended?

PS: I am not talking about spiritual people, I am talking about religious people who participate in religious processes without question and often financially help their religious institution to further the spread of it.


Anyone else spot the Brainfuck in there?

Geez I think I just found a broken link - his link under the family section for his daughter Heidi links to http://summonedcreature.com which is a comic illustrated by his daughter Geneva instead. Geneva's own link is broken.

Time to write an email to webmaster@wall.org! It's like I'm back in 1994!


The comic is by both. One of the names is a pseudonym.

Oh cool!

What's with the

> Getting paid for it!

On his geek code explanation?

http://www.wall.org/~larry/ungeek.html


It means he makes money off of it, i.e. he works in the field.

It's been decoded from geekcode, the $ on the end translates to "Getting paid for it!" in whatever was used to decode

Larry Wall's State of the Onion talks are pretty entertaining to read. As someone else said in this thread, he has the skill of linking to many other topics and making them seem related, then jumping back to the main topic he is on, and making it all sound interesting, and smooth and natural, not contrived. He also makes lots of good jokes and puns (well, at least some are good [1]).

And speaking of Damian Conway, who was mentioned in this thread as a possible heir-apparent, he is brilliant. I bought and read an intermediate Perl book by him. Some really good stuff in there. Forget the name of the book now, but it should be possible to find it by a web search. It might have been Object-oriented Perl.

https://en.wikipedia.org/wiki/Damian_Conway

[1] That was a kind of mild good-humored jab at him, BTW, the kind of thing that he does a lot in his talks and writings :)


Rule of thumb.

If you have a chance to see Damian Conway talk, do. I don't care if you aren't interested in the topic. I don't care if you think you'll be lost in 5 minutes. Just go.

You won't regret it. I promise.


Great rule.

I hate my telephone. Please don't ask for my phone number.

cool. he's one of us.


If only he would publish his phone number there, then we could all help him hate it together ;-)

I love that this exists. Best webpage I've seen this year! Fastest load time too!

Legal | privacy