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.
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.
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.
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!
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?
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.
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.
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.
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.
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.
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.
> 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.
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 :-)
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. ;-)
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)
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 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.
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.
(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.
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.
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.
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.
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`
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.
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:
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:
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.
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!
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.
> 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 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.
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.
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.
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"
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.
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.
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...
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.
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.
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.
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.
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!
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.
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.
http://www.wall.org/~larry/perl.html
Perl 6 is still the future of Perl?
https://www.perl6.org
reply