Ask Larry Wall
About what? Perl is probably a good topic choice. No one knows more about Perl than Larry Wall, right? We'll send 10 of the highest-moderated questions to Larry by email, and post his answers when we get them back. Note: Due to Slashdot's line length restrictions, lines of code over 50 characters long may not display correctly. Please be aware of this if you include code samples in your question.
If you were to have a second chance at designing Perl, what would you have done differently?
It's clear that Perl is undergoing a huge revision now, but even in the midst of this, you have to refrain from straying too far from the existing userbase. What would you do if you didn't have to satisfy those people?
I have been pwned because my
No, this is not a Troll! It seems to me that Perl is as much about expressiveness as it is about creating software.
What do you think about the argument that Perl is a good language for small/medium sized websites and Java/J2EE is what should be used for large enterprise websites??
We all know perl was born because you couldnt get something to work right using awk. I'm curious - what could awk not do that implored your self-proclaimed laziness to go off and design Perl?
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
I've been using perl for a very long time, but primarily as a scripting language. I indeed mostly use it for extraction and reporting. With the recent developments in perl, however, there seems to be the trend that perl is able to do much, much more (while retaining compatibility to be "just" a scripting language).
What do you think about how people are using Perl today? Are you satisfied that most people use it for simple tasks like log parsing? Would you like to see more advanced applications being built with Perl verses a compiled language?
Moderation: Put your hand inside the puppet head!
What language do you use when you're not using Perl?
PDHoss
======================================
Writers get in shape by pumping irony.
If given the chance, what 10 questions would you ask yourself?
42
Thanks for Perl and the excellent Camel Book. I've been using Perl for 7 years now and am very grateful for having such a tool at my disposal.
Now for the question. Many times people ask the question "Does open source software pay?", and I am under the assumption that it has for you with the profits from the Camel Book and the Perl Resource Kit, etc. So has OSS been profitable for you?
PS, I miss the Hmm..... and other funny comments while applying patches :)
Due to Slashdot's line length restrictions, lines of code over 50 characters long may not display correctly.
Isn't this something that can be fixed in Perl?
MjM
I only mod up...
XKCD:Xeric Knowledge Comically Dispen
I'm a CS student who's recently become very interested in Perl along with other languages. However, I don't really have too much everyday (or even occasional) need to actually USE much Perl. I am big into learning as much as I can about it for its own sake.
:)
Now, for the question: Given this approach to learning Perl (just for a general working knowledge, maybe light usage,) is it really worth spending a lot of my time learning Perl now, or should I wait for the big Perl 6 revision?
Thanks
Sharpies don't just sniff themselves.
Do you have any suggestions for improving SLASH?
Do you even lift?
These aren't the 'roids you're looking for.
Do you think that Perl the fact that Perl is so easy to learn and alows a lot of "Baby Talk" is a disavantage in the workplace were it makes a good programmer indistinguishable from a amateur wannabe. Compare that to Java where even if you just want to print "Hello World" you have to understand inheritance, polymorphism and static class methods. Would a Perl certification help give managers that fuzzy feeling of security?
Je t'aime Stéphanie
What do you feel about the future of Perl? Where is it moving to, and what still has to be done? .NET and XML? Do you see them as being possibly sucessful in light of Perl's flexiblity? There are so many languages and standards out there, it's hard to see what will some to the top.
Do you see Perl moving towards ever being a greater language for "programming" as C++ is? Or is it's place pretty well defined and not moving?
In addition, what do you think about other languages and systems such as the
Tibbon
tibbon.com
Thus I worry that perl has Python-envy. I've tried to use python several times but always go back to perl. The reason is my daily need for a parser dominates my choice of language and maintains my fluency, since I dont want to have to be fluent in both, perl becomes my language of choice for advanced tasks too, even though python might be better for strcutrued programming.
So my question is, is perl 6 making make perl a structued language like python? Would it be a good idea if perl did not develop any further for fear of becoming too complicated and thus disorganized. (witness the evolution of java from clean slate to giant mess with intricate redundant libraries half of which are deprecated).
How many average sized ducks can fit into a two car garage. I need to know quick.
Larry, Perl has been accused of not being object-oriented because it only supports one of The Three Pillars(encapsulation, the other two being inheritance and polymorphism) of Object-Oriented programming.
In my experience having the programming language handle the complexities of the object type is just as good as having explicit types like int, float, string, etc. But others disagree. And, I'm sure that by creating packages that call other packages, inheritance can be simulated. Others would disagree with this as well.
Additionally, the people who criticize Perl's object-orientedness claim that Object-Oriented programming is "bolted on" to Perl, and therefore is somehow unnatural compared to a language like Java which is built to be object-oriented from the ground up.
How would you answer these critics, and how well does Perl in fact support Object-Oriented Programming, in your opinion?
No, Thursday's out. How about never - is never good for you?
Which language do you prefere between Python and Ruby?
Why would you pick Perl over other web (or even shell) scripting languages like PHP, ASP or any of the others?
There are only 10 kinds of people in this world... those who understand binary and those who don't
What's your favorite Perl poem?
Cheers,
b&
P.S. Thanks for creating something as wonderful as Perl! b&
All but God can prove this sentence true.
Mr. Wall,
I know that you are an amateur linguist, since you originally wanted to be a missionary, and I was just wondering what other languages that you know and how they influenced your design of perl. I believe that you mentioned in the Camel that Greek was one of the languages that you drew from, and I was just wondering about the others you used, and why you chose them.
Thanks!
you can find that in the Llama book, the Camel book, and elsewhere; basically he was working on a text parsing project, sed and awk weren't up to his task, so he started to write his own tool. Indications are that somewhere in the pre-1.0 stage he completely altered the syntax, breaking everyone's programs, and some of them have yet to forgive him for doing that.
What is your Slash Rating?
I use and Love perl for a myriad of tasks... from website scripting to core business app frontends to SQL databases to embedded system programming.
I absolutely love perl based on the fact that you HAVE to give out the source... It's just works that way...
what is your opinion on these up an coming perl compilers? do you feel it's onyl about obfuscating and trying to lock down a perl program jsut to make a buck or try and avoid being Open Source? what are your feelings about peopl's efforts to try and make a perl program closed source this way?
Do not look at laser with remaining good eye.
How do you think Perl compares to languages such as Ruby, Python, or Lua? Where do you think Perl has its strengths, when these other languages are accounted for?
Larry, I am a perl user for quite sometime now, infact in many organizations like us perl is the defacto language for scripting. And I feel Perl has reached a pinnacle. Perl as such will be difficult to improve. Of course better regex and such minor issues can be fixed, but for all that matters I waould call it perfect, so do you plan to branch into something completly differnt, yet on the same philosophy. Perhaps perl with more intution, more power, an altogether differnt language with the same underlying philosophy of perl?
My Aurora : http://www.youtube.com/watch?v=o91ZsGwJYyg
FB : https://www.facebook.com/TanveersPhotography
What would you say has been the number one requested feature that you will not put into Perl 6, and why not?
What are your thoughts on these other scripting languages? What do you like about them, what do you dislike?
Do you even lift?
These aren't the 'roids you're looking for.
In the Camel Book, you mention Tolkien's Lord of the Rings as good background reading for Perl.
Do you think the Peter Jackson movies are an acceptable alternative? Or do I have to read the books?
The opposite of progress is congress
At the college level, the programming classes are taught using C,C++,Java, etc. Do you see a place for perl being taught in the classroom? I find that it is often overlooked and dismissed as simply a scripting language.
Don't pet the burning dog
Just to set the record straight, I use whatever language that I think will be the best tool for the job.
Larry, my question to you is why should I use PERL over Python for system administration? Why should I use PERL over PHP for web content? What do you think that PERL is best suited for?
-either- :)
What are your favorite things that have Perl or Pearl in them, either literally or figuratively? e.g. Pearl jam, Oysters, etc...? Please don't say Slashdot
-or-
Did your naming of Perl have anything to do with a linguistic memory of someone dear to you who used the word pearl in sentences such as "oh... he/she is a real pearl (of a person)"
Conversion Rate Optimisation French / English consultant
What is your opinion of .NET in general and Perl's role in it? Given that .NET supports Perl as one of the languages would you recommend actually using it for any projects? Do you see good future for this tandem?
Larry,
One of the limitations that I have found on Perl is
its lack of modern concurrent processing support in
the form of a standard stable threads package (yes, there is ithreads) or some way to make Perl modules execute and comunicate remotely (nope, rsh* won't do, neither is SOAP the solution)
More and more other languages are providing mechanisms or libraries of modules that are standard in their distribututions.
I would like to know what kind of ideas you would have in this area. Do you think that Perl needs to
have this capability as a standard component?
Thanks for all the fun!
Mr. Wall,
Your campaign seems to have the momentum of a freight train. Why are you so popular?
Finally, math books without any of that base 6 crap in them.
WARNING: a Christian topic follows. Close your eyes and stop your ears if that bothers you.
I hear that Mr. Wall once wanted to be a missionary translator but that a chronic health problem prevented him from going someplace foreign. I further hear that missionary translators use Perl a lot.
Has he heard any cool stories about how missionaries use Perl?
Would he ever want to do a short-term missionary gig?
How is his health nowadays?
Having read some of the more recent Apocalypses, I have a question for you: are you crazy? The regexp changes you're talking about in Apocalypse 5 will make Perl 6 deeply incompatible with existing scripts and practice. In particular, I object to the conversion of [] to non-capturing grouping rather than character class. As a long-time user of Perl, I have to say this is insane. You're wrong when you say "we're really simplifying" -- you're making things more complex. Changing this breaks Perl and much more; why do you think you're immune from the negative side-effects of hubris? And it is hubris. We know this because you start page 2 of the Apocalypse by saying, "Regex culture has gone wrong in a variety of ways...." One of Issawi's Laws of Progress says that society (even Perl regexp culture) is a mule, not a car -- if pressed too hard, it will kick an throw off its rider. Something this radical and wrong will hurt Perl 6 adoption and will retard the acceptance of some very nifty features.
Dog is my co-pilot.
What are your thoughts on the comments made by people that Perl is not designed for projects that require more than one programmer? Many people have stated over and over again that Perl code can not be managed by more than one person ... what are your thoughts on that statement? How would you manage a large Perl project? Do you think Perl should be used for large projects? (or should it be used strictly as a "quick and dirty" programming language?)
BTW: I love your work (someone had to say it)
HallmarkOrnaments.Com
Used to write hardware diagnostics, on VME and Multibus cards in a chassis; one master card, many test cards. Master reported errors over a serial line, and over 15 years the format had gradually changed. Any 24 hour run could have a real stray dog variety of error reports. I needed to analyze the output for patterns, and tried using awk, sed, sort, etc. It was an incredible pain what with all the subtle variations from board to board. After two weeks struggling with awk, sed, sort, I tried Perl, I think Perl 4 at the time, and within a couple of days had learned enough of the language to do the entire job.
Infuriate left and right
One of the big methodologies in vogue at the moment is eXtreme Programming and closely-related Test-driven Development (where you write your tests before writing your code.)
Considering that XP is a "high-discipline, low formality" methodology, how do you think XP and Perl fit together? How would you go about doing test-driven development in Perl? Is Perl a good language for XP?
-Peter
Mr. Wall
Are there any issues in Perl that will not be fixed in Perl6? By an "issue" I mean an aspect of the language that is being widely critized and is admittedly suboptimally implemented, like the current OO implementation.
Stop the brainwash
What application of Perl most suprised/pleased/amused you when you discovered Perl's use in that role?
Despite your major efforts at rationalization, Perl6 looks to be just as, if not more complex than Perl5 when it comes to the human readers interpretation of the meaning of the combinations of punctuation marks, brackets, etc in Perl6 source code.
Why not just be done with the concept of multi-punctuation operators and just map the each of the operators into one of the many single Unicode characters available. Imagine the money the Perl institute could make from the sale of keyboards.
How do you go about getting ideas for/stoking the creative muse for doing language design?
Perl newbies are obvious. They don't take advantage of hash keys, and generally write Perl just like they were coding in C (e.g. if/then/else to do multi-way cases, lack of good exception handling, for(;;) loops when a foreach loop is much more clear, etc.)
They also "re-invent the wheel" with everything where an obvious CPAN module application would have made life easier for everyone involved.
Larry,
I remember reading at some point that you are a
Christian, and there have been suggestions that
some of your early missionary impulses (a desire
to do good, help others) are perhaps part of the
zeal you have put into Perl over the years.
Preferring a scientific view, I am not religious,
and have no desire to be. Perhaps there is a
God, but if there is, I think he/she has no
opposable thumbs; in other words, has no power to
change anything; reality is just playing out
according to the laws of physics (whatever those
are).
Please tell us how in the world a scientific or
at least technical mind can believe in God,
and what role religion has played in your
work on Perl.
Thanks for doing this interview, and thanks
for Perl!
That was what I wanted to ask, actually. I was wondering if I could have a date with your daughter, Heidi.
Thanks.
Hi Larry,
Like many others, I *love* Perl. I use it both professionally and personally. You've not only helped make my career, but also given me a very pleasent past-time. I was wondering what I can do to say thank-you? Can we give you money? Dontate something to someone, etc.?
When the new Programming Perl came out, I didn't really need anymoe (viva perldoc!), but wanted to make sure I was putting a few bucks in the pockets of those who made Perl great. What else can I do to say thanks?
-Bill
SlashSig Karma: Excellent (mostly affected by moderatio
perl 1-5 have been great UNIX configuration/management languages. This includes small-scale webserver platforms. It's very difficult to find any other language that is as versitile in this respect where it reigns in it's niche. It is the perfect combination of speed, power, simplicity and huffman encoding (especially given the co-UNIX-tools look-and-feel).
Perl 6 on the other hand, changes this formula around; favoring a more general solution that potentially reduces performance (due to abstractions), and deviates substantially from the UNIX-family-syntax - Namely: c-ish-syntax ( colon, question mark, select, exception-handling, etc), awk/sedish reg-ex's, raw c-libray-wrappers, etc. It was these very similarities that made learning and accepting perl so trivial since learning CIS and UNIX administration was sufficient to master perl in 2 days.
My question is: does perl 6 have a niche in mind? Or is it spreading itself too thinly; competing more and more against Java/python/C# and thus losing it's identifiable niche?
-Michael
What is your favourite quote? (*coughsigcough*)
When in doubt, parenthesize. At the very least it will let some poor schmuck bounce on the % key in vi. (Larry Wall)
More than any other programming language, Perl has an extensive culture built up around itself. It is a language that people get quite passionate about, and it's used daily by system adminstrators, application programmers, researchers, hackers, and even poets. When you set out to develop Perl, did you envision this culture blossoming out of it? What is it about Perl that inspires such passion?
I'm a perl programmer who uses it daily. The push is on from the C?O types to get rid of Perl, even though a bunch of us here know it and are very proficient and fast with it. The new standard is Java with web services and all that other BS. This sickens me, because a) I'm biased towards Perl and b) I know Java is simply a fad language and the overhead/infrastructure only serves to give do-nothing architect types jobs.
The high-level technical people in my company don't take Perl seriously. They see it as some kind of super-Awk or an artifact of the early days of the web. Smart people know better, but we're not in charge.
What do you think it would take to get people to take Perl seriously as a programming language [again]? Is widespread use of Perl a goal of yours, or do you not care?
I hear your interest in linguistics has had an influence on Perl and Perl's "there's more then one way to do it" attitude mirror's well the flexibility of the languages of the world, better then most programming languages(for better or for worse). I was wondering if you could tell us a little how Perl has been influenced by linguistics and how you wish/hope it will be?
Hello Larry, if you would develop a complete new language, not with perl6 in mind, how would it look like? What would be the design goals? Would it be total object oriented? Thank, Hermi
I'd find it hard to beleive that someone could argue that Perl as a language has a better design than Ruby (now's your chance if you want to). If Larry Wall is any sort of visionary shouldn't he swallow his pride and switch to Ruby?
NOTE TO [STUPID] MODERATORS: This is not a troll. This is serious. Think about it.
-... ---
Microsoft ads on /.? I think i'm going to finish loading all the MRE's into my basement and ride out the oncoming cataclysm.
>
-- Sorry, I can't think of anything funny to say here.
Polymorphism is the key to OOP. Its what makes everything reusable, and melds everything together in a program.
Most OO fans will say something like "X is the key to OOP". Yet X is always different. X has been "composition", "patterns", "inheritance", "abstraction", "reuse", "encapsulation", "modeling noun interaction", etc. etc. etc.
I would like to ask Larry what he *feels* about OOP rather than what Perl does with it. If you want to know what OOP features Perl has, then RTFM.
Please, don't waste questions on stuff that you can find by RTFM.
(oop.ismad.com)
Table-ized A.I.
Ahhhh, Grasshopper, if only that were true.
I have seen firsthand so-called "professional programmers" using Java to create some of the worst God-awful spagetti code I have seen in my 15+ years of . No matter what the virtues and ideaology behind any language, someone can come along and screw it up beyond recognition.
Power tools in the hands of amateurs regularly results in the loss of limbs.
-Steve
Hey, Windows users, there is no such thing as "forward" slash, there is only slash and backslash.
At that time, there was no credible competition to Perl in any of the niches it basically created. These days, there is more competition than I can comfortably list. Indeed, if I were choosing a language like Perl today, I would be very, very tempted to choose Ruby instead, and I am not the only Perl programmer who feels this way. Interestingly, Perl6 is beginning to look and feel a lot more like Ruby. Are there indeed aspects of Ruby that you were deliberately trying to have in Perl6? Are there any aspects of Ruby you are especially wary of?
Babar
Could you please put in multi-line commenting in the next version of Perl? My # key is getting rubbed off.
OddManIn: A Game of guns and game theory.
Larry. What is the best programming language you did not desing?
Dyslexics have more fnu.
I don't know why Perl wants to be a kitchen-sink language designed to fill any programming role. It is ignoring Perl's strengths to try to do and be everything to everyone. What struck me about the parent post was that just last night I was trying to decide whether Perl would have taken off like it did if it had looked like what Perl 6 will look like. I don't think it would have.
Perl is The Clampetts of programming languages.
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
This interview should help to enhance the questions.
Do you know of any Perl modules that might assist Slashdot editor's from posting duplicate articles over and over again -- even within a six hour time period?
Strange women lying in ponds distributing swords is no basis for a system of government.
there are others who would say the same about java...take a look at what Paul Graham (lisp master)
has to say about java in item 2: Java's Cover, by P. Graham
*Cough* underrated? Perl can be written simply so that a C programmers(or yes, even Fortran programmers here where I work) can understand what's going on. Not many other langauges have that sort of versatility. Also, if you would *RAFM*, you could quickly pick up its idiosyncracies and write things a lot quicker than in most other languages. And difficult to install? That's funny...it's standard on just about every UNIX distribution, has a Mac port, and has a company (that successfully makes money) that backs it, selling tools and offering free-for-enterprise-solutions interpreters for Windows. Install? I just double-clicked and hit enter a few times.
--- What
I agree that you can distinguish a good Perl hack from a not so good Perl hack, but I don't think it's limited to newbies. I've seen folks who've used Perl for 3+ years continue to write unreadable page noise. They get by on experience, but the next guy who has to maintain their code would do best to sack the current code and start from scratch.
You had a cornea transplant a few years ago (Google cache). How's it doing?
Stupid job ads, weird spam, occasional insight at
Traditionally, computer programming languages have competed against one another, but now we seem to be moving towards a world in which a programmer will be able to choose from a set of virtual machines (VM's) as well as from a set of programming languages. The Perl 6 VM (dubbed "Parrot?") can execute Java source-code (because Java source can be compiled into Perl 6 bytecode) as well as Perl source-code, and, indeed, almost any programming language can be compiled into Perl 6 bytecode. The same is roughly true of Java. Because the source-code of nearly any programming language can be compiled into Java bytecode, a JVM can execute code written in nearly any programming language provided that a compiler has been written to transform the source code into Java bytecode. Examples of such compilers include Jython (which compiles Python source-code into Java bytecode), NetRexx (which compiles Rexx into Java bytecode), and JRuby. And, of course, there is Microsoft's .Net, which, IIRC, also contemplates (or at least permits?) the compilation of nearly any source-code into a bytecode specified by MS (of course, MS wants the bytecode's execution to take place on a MS O/S exclusively). Furthermore, there's no reason (that I can think of) that would prevent, say, Java or Perl from being compiled into Python bytecode and executed by a Python VM.
There are many implications and consequences of giving software developers this degree of choice. In your opinion, what are the most significant of these consequences?
A lawyer & digital forensics examiner. Also an expert on open source software (OSS).
(* What exactly is the difference between "scripting" and "programming". *)
I like to make this distinction:
1. Static typed language (ST)
2. Dynamic typed language (DT)
3. Scripting languague (SL)
ST languages check all typing at compile time, and are thus usually compiled.
DT checks typing only during run time, or has no built-in types (everything is a string or just bytes to the interpreter and numeric operations convert/check them on the fly. Thus there is a sub-distinction between those DT langs which carry internal "type" codes for variables, and those that don't). However, DT languages may target large projects and have a lot of features, and thus a longer learning curve.
SL are meant to be easy to learn and usually a "glue" language. They keep features to a minimum in order to make learning them easy (except they do tend to have a lot of string operations to help in gluing). Unlike DT, they are not meant as a "career language". The language author assumes that the programmer will be using many languages, and will not assume that their SL language will be the primary language for your shop, thus it does *not* have to carry the burden of being everything to everybody.
Perl is a DT language, but not an SL anymore.
Table-ized A.I.
Perl seems to have been accreting features at a very fast pace since Perl4, and Perl6 doesn't seem to slow that down. Is there ever going to be a significant reduction in features? Perl at this point looks so huge and daunting that I really can't recommend it to newcomers as a scripting language anymore.
A scripting language is one that you don't like.
A programming language is one that you do like.
Did you consider using a name other than Perl 6 for your new language? Many current Perl users recoil at the extreme changes made to their favorite language, even though they can still write Perl 5 for the most part. (And I really like the new regexp design.)
In retrospect do you think a new name or version nomenclature would have warmed the reception and/or reduced confusion?
One of the features I really miss in perl is a clean way to pre-compile
scripts. Both to speedup loading times and to byte-[en]code to program.
There is perlcc, which really isn't supported as a production tool and doesn't take
modules into account.
What do you think about technologies like Zend?
Is this really a issue for perl? or just a matter of time?
Larry-
:-)
My name is Brian Wall and I live in Minnesota. Any chance we're related?
There is no reasonable defense against an idiot with an agenda
:wq
Doesn't look like you need to know much about inheritance, polymorphism, and static class methods to me.
I have a dire question and I hope that /. 50 cha$
Thank you Larry,
I won't jump off this building until I hear your answer
Live web cams
lock, change, test, commit, unlock
or
change, test, commit, merge?
Are you a locker or a merger?
it's not going to stop until you wise up, no it's not going to stop. so just give up.
"Doesn't look like you need to know much about inheritance, polymorphism, and static class methods to me." -- says the man as he defines a static class method.
Never underestimate the bandwidth of a 747 filled with CD-ROMs.
I was just looking at www.wall.org and the site for your church, of which you are the webmaster. Neither of these sites use any perl whatsoever. Coming from you, I would have expected to see a super cool Perl based calendar and lots of other neat dynamic stuff. What's your reasoning for using no perl on either of these sites?
There is no reasonable defense against an idiot with an agenda
:wq
Larry,
As a fellow Christian (I'm sure that revelation won't get me mod points) I must say that I have really appreciated your 'State of the Onion' speeches over the years. Thanks for showing that Christians can think and that we don't all mindlessly follow a 'televangelist' religion.
Now for the question:
Why do you think that the geek/tech community is so anti-Christian and what can we do to help change their negative stereotypes of Christians? Why is it that so many in this community feel that being a 'Thinking Christian' is an oxymoron? People like Knuth and yourself show that Christians can think and make contributions in the technical world.
I tend to believe that the anti-Christian bias has some justification - meaning that Christians have often not displayed the grace which the Founder displayed and taught us to live in. What is it that Ghandi said when asked about Christianity? "Christianity I like, but it's those Christians that I'm not sure about". I also suspect that the anti-intellectualism of the pop-televangelists that is unfortunately so visible bears much of the blame (often when I come across one of those so-called Christian TV shows I think I'm looking at some kind of religious mutation and when I realize that these folks claim to believe the same things I do, I wince).
Geez, "my language is better than your language" trolls are bad enough in normal Perl articles but this is going to get read by the creator of Perl itself.
As for Ruby Jobs, I've been recently unemployed looking for a new job, in all my searches I've found Ruby mentioned maybe once. The biggies? C, Java, Perl. There aren't even all that many people looking for PHP.
The Anti-Blog
It is called Faith.
They've been running for months, and invariably someone comments on it in EVERY article.
Enough already, we know MS advertises on OSDN, no need to tell us for the 209348098th time.
No, that's not what I said. I said that qualities of good code include using "idomatic Perl" (i.e. not writing C in Perl) and making use of Perl's strengths (like hashes). Do these and you'll be a good ways towards writing readable code.
As others have pointed out, Perl's garbage collector does lend itself to the circle of garbage problem because it uses reference counting. Could you comment on the tradeoffs weighed when designing the garbage collector? e.g., Efficiency, time to implement, etc. If you could, would you reimplement it so that it used techniques like the Train Algorithm instead?
/<en
I second this question... To quote Leonard Richardson, Larry Wall has many of the mannerisms of Weird Al Yankovic, and he also had the Weird Al glasses and Hawaiian shirt (and old-school mustache).
Even perl.org mentions this possibility (with pictures)!
Slashdot's first reaction to VMware
By the way. Your definition of dynamically typed languages are far off. If they don't carry typecodes to check types at runtime, then they are not dynamically typed.
If e.g. everything is a string (tcl used to be that way, not too sure anymore), or a machine word (e.g. forth), then it is an untyped language. And there is a large difference between untyped and dynamically typed.
Also, it would be more correct to say that statically typed languages check most types at compile time. An obvious counterexample to "all types" would be an object-oriented language (otherwise dynamic dispatch wouldn't work). Or C, because it allows you to fake anything with casts and unions.
As for what constitutes a scripting language, I think that will be debated for ever, simply because it's not possible to define. Personally, I like Larry's answer in the Camel book.
What's it like for a celebrity to be a part of a community of Christians? Do you pass the collection plate and hand out programs before service starts like any other member, or do you get the celebrity treatment there, as well? I guess I'm asking how deep and intrusive into your life this celebrity stuff goes.
Keep it up, I appreciate it, and the world needs more Christian heros!
Siggy Wiggy Figgy Tiggy a bana bo Biggy!
The basic POD format used for Perl's documentation is too simplistic, providing no support for tables.
It is not possible to obtain high quality print documentation either--sure, a man page can be converted to PostScript, but the result still doesn't look very professional. This node on PerlMonks also discusses these issues for anyone who is interested.
So, do you consider Perl's documentation to be a limitation to its more widespread acceptance? Could you use your considerable influence in the Perl world to start a new drive towards improving documentation?
"Hello Word?" Are you stealing that bastard paperclip's code again?
"If he thinks he can hide and run from the United States and our allies, he's sorely mistaken." Bush on bin Laden
Perl is so easy to learn and alows a lot of "Baby Talk"
Perl is easy to learn, and yes it allows "baby talk" in the same way that C++, Java, smalltalk or any other complex language does. Those who are just learning will use only a small subset of the language. This is always true.
it makes a good programmer indistinguishable from a amateur wannabe
I can certainly tell the difference, and I do so in phone screens and interviews for my company.
Someone just coming to the language can write code, yes. But they won't be able to write high-quality programs that take advantage of the language. This is true everywhere. Read "Effective C++" for a really good sense of what it is that C++ programmers won't know from day one, even if they've memorized the BNF for the language.
Note to moderators: This is a serious question. You may disagree with what is said, but your disagreement does not make this question one that should be ignored. Please don't think that Larry Wall is fragile and needs to be shielded from confrontive questions. Note also that this question needs to be phrased in several ways to make its breadth fully clear.
Larry, now that you have seen what Perl has become after all the excellent work and all the years of effort, was Perl a good idea? Did we need another language? Would it have been better to have added features to an existing language, and to have made a more capable C++ interpreter, an advanced CInt, for example?
Now that Perl is a mature, full-featured language, do you think it is a properly designed language? When you first worked on Perl, did you imagine what it would eventually become? It was an easy language to learn then, and that was one of its advantages. Has Perl, now that it is mature, become just another language, with the exception that it is an interpreter? Are there any features of Perl that could not be added to C or C++? Are there features of Perl that were designed to make it easy, like implicit variables, that are not a good idea for a mature language? What are the features of Perl that make it a necessary addition to the numerous languages?
I think you'll find your answer here... http://www.wall.org/~heidi/
It's no secret that Perl 6 is being designed/developed as a radically different (to the point of mutual unintelligibility) language than Perl 4 was a decade ago (and even Perl 5 is today). On top of that, in today's development there are a lot more people a lot more involved in the design (eg. Conway, Sugalski) than there have been historically. So, all that said, has demand from the community caused changes in Perl as a language that you would not have envisioned otherwise or that take it in directions you would rather not have gone in personally?
MOO;IANAL.
There used to be a picture linked here.
Irrelevant. Just because a person copies "public static void main" out of example 1.1 in Learn Java in 24 hours doesn't mean they understand what it means. I would wager that 90% of Perl programmers who use "my" regularly don't have a clue about lexical vs. dynamic scoping, but it doesn't matter because "my" does what they expect.
I know of some bible translators in a country I won't mention, where Perl is used to provide an automatic PGP-encryption of the plaintext emails into cyphered emails and vice versa, before anything is e-mailed out to the rest of the world or when received, before it is dropped in the mailboxes. For want of a real ISP the machine dialed out to a base of the same organisation elsewhere in the world where the same setup exists and from there the mails get send on in plaintext. All this is done to make sure that when communication is monitored no Christian texts are discovered.
Now you might say that that is not secure, everything is still in plaintext on the server of the missionaries and you're right. (not to mention the bibles in their houses, the work stored on the computer etc.) The reasoning behind this is, that the censor/secret police in this country have a policy what they don't explicitely know about, they won't bother with. They can't read the e-mail, so they don't know about it, so they don't need to take action.
All of this was hacked together by a bible translator (a linguist) on an of the shelve Redhat old.ancient linux machine. The man-pages provided enough information for him to finally get it all working.
Use Adsense for Charity
First, many thanks for Perl, which has saved me much anguish.
I know you're an aikidoka, and after studying aikido for a year, I've come to see several similarities between aikido and Perl. For example, Perl gives you a nice feeling of blending with the problem instead of struggling directly against it, just as you blend with and redirect your attacker's energy rather than directly confronting it in aikido. Similarly, TMTOWTDI ("there's more than one way to do it") in aikido as well as in Perl (at least in my dojo, where understanding and reaching the goal is more important than slavishly copying the sensei).
My question is, did you consciously approach Perl with aikido in mind (or vice versa :-)? Or is it just that they both appeal to your personality in the same way?
Also, incidentally, what style of aikido do you practice?
``Life results from the non-random survival of randomly varying replicators.'' -- Richard Dawkins
The interview is with Larry, not Guido, Fido.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
what are the most obfuscated few lines of Perl you've ever seen~?
http://cltracker.net -- powerful craigslist multi-city search
My question is, where do I go from here? I'm wanting to learn everything there is to learn, and do everything that can be done with Perl. I'm not expecting to get to your level of knowledge, but I'd sure like to try.
I've already purchased the Camel book and that's where I'll go after the Llama book. What would you recommend after that? Perl Cookbook? Advanced Perl? Memorize all the PerlDocs?
No boom today. Boom tomorrow. There's always a boom tomorrow. - Cmdr. Susan Ivanova
No, you are a really good perl coder when you can write a program that expeditiously solves the problem and a non-programmer can read and comprehend what the program does. (How it does it is a different matter altogether;)
My observation is that the quality of the tools bound the quality of the solution: people don't build a Cadillac from Legos.
How about an anecdote (or two) about a Red Sea-sized problem parted by a slightly unmiraculous, yet nifty, regular expression.
As has been noted elsewhere, the fact that other languages (JavaScript, VBScript) refer to their RegEx syntax as 'Perl-style' is a hefty compliment. Any disgruntlement about that?
Perl6: how soon?
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
Like Linus Torvalds, you are the alpha programmer, the founder and "benevolent dictator" of a major open source project. Of course, both projects now have large and well-structured teams of developers with many recognized leaders, but nevertheless, everyone looks to both you and Linus for guidance and leadership, and everyone accepts that you have the final say in issues of dispute.
:-)
The open source movement hasn't been around long enough for us to witness the transition to a new top dog in a worldwide, highly visible project, so we all have to wonder sometimes what will happen when you and Linus decide to pass the baton, and how it will be handled. Have you decided what has to happen for you to retire from the Perl project? Or do you think you'll be hanging in there at 75 and above, a John Lee Hooker of programming languages, until the day you flop over your keyboard? Do you think that you'll hand over the scepter to a successor at the pinnacle, or do you think Perl can be taken over by some kind of committee? Doesn't there have to be an individual who has final say on important and possibly controversial decisions? Do you think the developer community will accept a new leader on your sayso, or will there have to be some sort of election? And if you do consider choosing a successor, what will your criteria be?
BTW, I'm an atheist, but I hope you don't mind my saying God bless you for creating Perl.
Always keep a sapphire in your mind
He claimed the design of Parrot was fundamentally flawed and pointed to it's highly unusual design and the very high number of opcodes. I was wondering exactly what you're thoughts are on Parrot. It's claimed that it'll be a good target for any language, both static and dynamic, but are you really interested in pushing this? Could you see Parrot as worthy competition to .NET in the cross-language VM space? Is having a very large number of opcodes an advantage or a disadvantage?
(* By the way. Your definition of dynamically typed languages are far off. If they don't carry typecodes to check types at runtime, then they are not dynamically typed. *)
Whose's classification system are you using?
(* Also, it would be more correct to say that statically typed languages check most types at compile time. *)
So "staticly typed" (and "dynamicaly typed") are a *continuum* in your opinion? I guess I can agree on that.
(* Personally, I like Larry's answer in the Camel book. *)
Yes, but it ignores a commonly-used term/concept whether he likes it or not. Even he does not have enough power to change most tech lingo.
Table-ized A.I.
You should be using PHP anyway, not C++. =P
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Is this really a issue for perl? or just a matter of time?
If this isn't a perfect setup for a Larry Wall-ism, then I don't know what is!
"And like that
But a bigger issue for me as a Perl app writer has been ease of installation. Is this going to get better in Perl 6? Installing a Perl app can be a fairly complex process, especially if you need lots of CPAN modules, and a lot of them call C code that needs to be compiled. Also, there seems to be a general assumption that modules are going to be installed in /usr, but many end-users might not have the privs to do that. None of this is a big deal in the world of sysadmins and webmasters, but for naive end-users it's a problem. Will the advent of Parrot make it possible to give the user a big ol' bytecode file that includes everything? I know it's going to become easier to glue C and Perl together -- will this translate into an easier exeprience for the end-user as well?
I guess I'm just spoiled by the MacOS X experience, where an application appears as an icon in the Finder, and to intstall it, all you do is drag it to the Applications folder. Wow! Java also does a good job of streamlining the installation process, although it's at the cost of making the standard library ridiculously huge.
Find free books.
taken! (by Davidleeroth) Thanks Bingo Foo!
Whatever gave me conciousness, that's God.
c-hack.com |
How sweet, she's wearing a calculator watch!
Larry, we understand you are a home automation enthusiast, can you tell us something more about your setup? Powerline/Wired/Wireless? Cameras? Sensors? A "smart" home? Just Curious. Thanks.
Well,yeah. I was also thinking of the move to "dot" syntax for "methods" (lots of languages do this, but Ruby was the closest in other ways), some aspects of the new "module" keyword (disclaimer: I have not gone over the exegesis on this as carefully as I might have), and other things that don't come to mind at this instant since I'm making sure Milo doesn't tear down the house while I type this...
I don't consider the semi-colons optional. :-)
I haven't misses strict.pm yet; dunno what that says about me. A big plus for me with ruby over python is actual delimiters for "block-like" things. I like the Perl6 notion that {} always
creates a lexical closure, except that it has forced other syntax for things you would think are in braces...until you remember the closure bit.
Well, I personally now consider a lot of the automagical conversions of Perl to be a failed experiment. What looks nice in a short script here really, truly falls down in the large. The dorkiest thing about Ruby, though, is the "everything including an integer is an object" notion. Integers are values; they do not have state.
Thanks for the feed-back, non-Larry. :-)
Babar
Ok, let me follow your logic here. You say Perl CGI is less easy/intuitive to use than PHP, which is usually used as an Apache module. You then say that mod_perl might do the same for you, which is correct BTW, but then you go on to say that PHP "is a lot easier to use in that particular niche"...
So, you are comparing PHP to mod_perl, which you admittedly have not learned anything about, and then conclude that PHP is easier?
I'll be blunt, you're a fool.
Sticking feathers up your butt does not make you a chicken - Tyler Durden
Irrelevant. Just because a person copies "public static void main" out of example 1.1 in Learn Java in 24 hours doesn't mean they understand what it means.
By that logic, you don't need to know how to program at all, you can just copy full programs from open source projects.
The underlying argument is that Java requires more "advanced" programming structures to do simple tasks than Perl. Whether beginners understand them or not is irrelevant.
Never underestimate the bandwidth of a 747 filled with CD-ROMs.
Perl's philosophy is largely a complement of this sentiment. This kind of thinking was in vogue for a long time, and Perl's bucking of the trend was (largely) responsible for its popularity.
Perl advanced the notion that syntax is not a byproduct of grammar. It should not be an orthogonal representation of the language's capabilities. It is important that the concatenation operator be one or two characters. A language is for humans to use; it should reflect how humans think. Give the computer the tedious job of normalizing that input, and spare the human's cycles for more important things.
Read the Apocalypses, or Larry's intro to the ORA books, or the Exegeseses(es?). You'll note artifacts of this philosophy everywhere, including in a discussion of original complaint, anonymous character classes: Unicode makes unnamed character ranges less of a Right Thing than before. And with real set operators for named classes (you can say Word Characters and Whitespace but not Digits), they're a lot less necessary. They're still in there, but it's a couple extra characters to reflect their diminished relevance.
There are some that disagree with this thinking, but I'd question what attracted them to the language in the first place.
Mr Wall,
I've been using Perl for quite a while now. I've fallen in love with it. It's my first choice language, (when I do have a choice).
That said, I'm very nervous about Perl6. What if it ends up suffering from second system effect? What if it just isn't very good? Theory and practice being so different, it's possible for you to be completely wrong about where Perl needs to improve.
In short, what would be your course of action if Perl6 isn't very good in the real world?
...which could start to explain the egyptian pantheon :)
To answer your first question, yes; but let's back it up even more. Consciousness is, of course, extremely complex system behavior. But how did that system get started? Even if we evolved from microbes, who created the microbes? Did the universe simply always exist? Science says no, right? Then what came before? If there was a big bang, who started it (frankly, I think the big bang is about the most creationist theory ever to come about)? Whoever did, it's who I call God. I guess it might be kinda like saying "whoever pooped in your litter box, that's your cat." I don't need to see your cat to know it exists.
So I guess I should amend my original statement to "whoever created existence, that's God."
c-hack.com |
Seriously. Perl 5 will be around for a long, long time, and even after Perl 6 is out for awhile, Perl 5 will likely still be the standard with the more conservative(and mainstream) *nix OSes.
:-)
And at the same time, learn Perl 6(start now, at parrotcode.org). While some here will say Perl doesn't really have anything new, I say that isn't necessary. Sometimes it's enough to just do something better than it's ever been done before.
Seeing Perl6's introduction of more powerful map-like and reduce-like operators in the hypers, I would like to know if you have used and been influenced by the modern APL derivatives: Dr. Iverson's APL successor, J, is more well-known; but Arthur Whitney's K mixes more functional, Lisp-inspired abilities into the language.
Perl is the scripting language "to beat", so like C++, it is often the target for insulting comments and unfair comparisons by advocates of other languages. Usually from fanboys who can be dismissed, but surprisingly often from intelligent and educated people who ought to know better.
You, however, never seem to enter such discussions, much less answer in anger. How do you manage that? Doesn't it hurt? Or is it your Christian faith that gives you strength?
Whose's classification system are you using? English. If the programming system can't somehow tell you or check the type of something, then it isn't a typed system. Hence untyped. But of course, if you can come up with some dynamically typed system not using any form of typecodes, but instead relying on e.g. magic, I'd be happy to say I was wrong.
Any time someone tells you OOP has an absolute definition (with pillars, requirements etc.) they're probably lying to you. Object oriented programming has an evolving definition (which is starting to solidify, but could still change). The problem with many languages that implement OOP is that they implement a static view of OOP (as perceived by the language designer at the time of the implementation).
Actually, because Perl's object orientation is "bolted on" it is possible to implement any view of OOP as appropriate to your own current opinions. Or (perhaps more correctly) as appropriate to the problem you are tackling. If encapsulation is all you need, implement encapsulation all by its lonesome. If you need it all, implement it all. If you have some experimental ideas about an expanded definition of OOP, implement them for a single project.
With the caveat that strong typing != OOP, type is another example of Perl's dynamic nature. With object typing, you can implement exactly the parts of strong typing that you need.
Perhaps the right questions is: "How dynamic is OOP in Perl? Can it be expanded to include aspect-oriented programming?
Eternal vigilance only works if you look in every direction.
...Perl6.
As a committed user of Ruby, I find this question just plain silly. Perl has an enormous library and an enormous user-base. For many things I still use Perl. When swagr's ported all of CPAN to Ruby, I won't need to anymore.
But some people may still prefer Perl. Grow up.
Eternal vigilance only works if you look in every direction.
Did you ever want to choke him? Do you consider being a utter boor good advocacy for Perl? If so, Tommy Boy fits the bill.
Comparing it to Windows will be a moot point, since El Dorado is going to have a 40% larger code base than XP.
(* If the programming system can't somehow tell you or check the type of something, then it isn't a typed system. *)
Well, it is sometimes said that the "programmer must manage types", meaning that any "typeness" is up to the programmer to handle properly.
I guess in a strict interpretation, if the language does not recognize the concept of "type", then it could be called "typeless", but in practice the *concept* permiates many design decisions, such as how the API handles doing math on non-numeric values.
BTW, my pet language, L, is pretty much "typeless" in that sense.
Table-ized A.I.
Eek, I left out a "not" and made it sound like IE does more incremental rendering than Mozilla. Corrected text:
One other advantage of using CSS rather than tables is especially applicable to Slashdot: over a slow connection, users of older browsers such as IE 6 for Windows can not see the first comment without waiting for the rest of the comments to load. Mozilla can display comments one at a time despite the table-heavy layout, but last time I checked, it can only do so in Slashdot's light mode.
The shareholder is always right.
That's my whole point. I don't think God exists, per se. You have the something (matter? or if you like, 1), and the nothing (antimatter? or 0), and the void that came before it, the absence of both something and nothing; and you have God, which is whatever was around when everything was null.
It was my impression that it was widely accepted among scientists that the universe was x years old, and therefore had to spring into existence at some point. But I could be wrong. That the universe simply always existed seems impossible to me. Everything that exists in the world had to be created at some point, out of existing matter: Slashdot, my car, this computer, etc. I can't believe that the universe just exists on it's own anymore than I can believe that no one is responsible for making Slashdot. I define God as the thing that always was, that created the universe, and therefore, is incomprehensible. I can't say that the universe always existed because it itself can be seen, studied and understood. God, being unable to be comprehended, is therefore worthy of worship. I'm not sure if I'm getting my point across or I'm dancing around it. It's a tricky point to make.
Okay, let me try another analogy. I can rip a CD using iTunes and make mp3s from it. But I don't understand the algorithms behind it, I just know which buttons to press. The person who programmed iTunes is at a level of sophistication higher than me, at least in mp3 programming terms. By the same token, we can all go find a woman and make a baby (theoretically; this is Slashdot). But no one knows really how a human is made; no one can put consciousness into lifeless tissue. Except God. Jesus has even done it (or so I believe).
Personally, I belive that to think God is a who is pretty dumb. If I were to try to describe God, I'd say He's a consciousness. Either that, or he is existence. When they say man was created in God's image, I figure that means something more like a disk image, rather than picture. The key point about this image being it's ability to make things for their own sake, not just to use them for something, which is what seperates us from animals (I figure).
c-hack.com |
That doesn't follow, at all.
That's an inaccurate generalization, that is only supportable by two minor instances:
Nothing else else about Java fundamentally requires more "advanced" programming structures than C++ or Perl.
Yes, or partially untyped, like C is. As long as two distint types use the same amount of bits in it's representation, C allows you to interpret those bits in any way you like with casts. but in practice the *concept* permiates many design decisions, such as how the API handles doing math on non-numeric values.
I have no idea what you mean here. If you mean things like pointer arithmetic, I agree, because pointer arithmetic can be quite useful, and I guess some languages have an API for that instead of doing it in the base language like C. Things like vectors, matrices and formulae are usually handled in a typed manner.
But yes, there is room for many different typing schemes in the world of languages. And many successfull languages are in between the three main alternatives (which of course can be subdivided further).
I have never heard of L though...
Nothing else else about Java fundamentally requires more "advanced" programming structures than C++ or Perl.
I cannot agree with that. (First, I never mentioned C++, I'm talking about perl vs. java here. C++ is a whole different story.)
To use most of the Java built-in features, you have to understand OO enough to be able to instantiate new objects, call public methods, and handle the exceptions they return. And this is the case if you wrote your hole program as one "public static void main" function. Otherwise, you'd have to know how to define a class, use interfaces, etc.
Basically, it's OO+Exceptions vs. functional interepreted script. I know several Perl programmers who can do wonderful things in Perl, but Java is way out of their league -- you probably know some, as well. Do you know any Java programmers who wouldn't be able to handle a scripting language like Perl?
Never underestimate the bandwidth of a 747 filled with CD-ROMs.
I'm developing my own language nowadays, after getting tired of OO Perl (which is excellent).
:= value defines the way the value of name is evaluated when it is used, ie. a function. name.subname can be either a value in a hash, a method of an 'object', or a value of a hash returned by a function - who cares? A sentence ending in a dot makes the definition constant. And stuff. I find myself rebuilding a lot of Perl's inner structures. Stupidiosity is all mine.
I'm going along the lines that a name = value is calculated "immediately", whereas a name
I tried to do like stuff in Perl, but failed at a simple attempt to load classes dynamically through recursive eval(). Will eval() be recurseable in Perl 6?
Should probably have spat that out better, but I'm late anyway. Bollocks.
I think, therefore thoughts exist. Ego is just an impression.
Just testing if you could see that OK :)
But seriously -- how goes the corneal transplant T+4.7 years? There hasn't been an update on your transplant in quite some time!
thelocust[dot]org
Hell to debug, though. :-)
And I'm not talking about being able to read it.
Thank goodness for optional strong typing in Perl6, and what looks like some decent contract support.
after:
and ?"Provided by the management for your protection."
. I think the language architects who aren't living in reality tend to like multi-language solutions a lot more than ordinary folks do.
Do you folks, agree with that because i don't. My last product involved writing a java server, that produced XML that was passed into javascript by a perl script, using a custom minilanguage for the
template.