Slashdot Log In
State of the Onion 11
Posted by
Zonk
on Fri Dec 07, 2007 11:05 AM
from the my-personal-favorite-is-french-onion-soup dept.
from the my-personal-favorite-is-french-onion-soup dept.
chromatic writes "Larry Wall's State of the Onion 11 address is now online. Every year, he describes the state of Perl and its community through metaphor and analogy. This year, Larry explored the history of scripting languages, from their dimly-lit beginnings to their glorious future. Along the way, he also describes several of the design principles invoked in the design of Perl 6. 'When I was a RSTS programmer on a PDP-11, I certainly treated BASIC as a scripting language, at least in terms of rapid prototyping and process control. I'm sure it warped my brain forever. Perl's statement modifiers are straight out of BASIC/PLUS. It even had some cute sigils on the ends of its variables to distinguish string and integer from floating point. But you could do extreme programming. In fact, I had a college buddy I did pair programming with. We took a compiler writing class together and studied all that fancy stuff from the dragon book.'"
Related Stories
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
scripting (Score:5, Insightful)
Re: (Score:2)
I don't think Perl or Python are scripting languages. I think sh-script is a scripting language.
I don't like to think about AppleScript.
-:sigma.SB
Re:scripting (Score:5, Insightful)
Parent
Re: (Score:2)
Re: (Score:3, Insightful)
It doesn't. It does, however, require a 32 bit integer data type (which the OP said). It doesn't. It does, however, require a 32 bit integer data type (which the OP said).
Close, but not correct. C requires *at least* 16 bits for a short, and *at least* 32 bits for a long. It actually doesn't require an exactly 32 bit integer datatype. Well, to be really pedantic, the C Standard specifies a range of values that a datatype must support, so technically a binary machine is not required.
Re: (Score:3, Insightful)
Hand compiling is only moderately more complicated for Perl than it is for C. Just as the C function turns into a specific pattern in assembler, the various things that Perl provides can be turned into assembler patterns too. The stuff that Perl does for memory management implicitly is only moderately more complex than the stack manipulation that C does implicitly for lexical variables. Even the two data structures that Perl provides - vectors and hashes - are just very simple data structures that would alw
Re: (Score:3, Interesting)
To me, the term scripting has nothing to do with the level of abstraction. Rather, it is more about whether or not the source is directly interpreted or compiled into an intermediate form. Having said that, I must admit that it would be awfully silly to create a low level language that is interpreted.
From most of the languages that he lists, it looks to me that what he is really talking about are Dynamic Scripting Languages. Scripting languages that are also dynamic provide a lot of flexibility and can
Re: (Score:3, Informative)
Re: (Score:2, Interesting)
Languages like Python make it easier to design and implement algorithms without having to worry about other concerns.
High level != "automated memory management" (Score:5, Informative)
Can we please stop bashing C++ memory management? I write C++ for a living, yet very rarely use what the critics typically call "manual memory management". Either it's really not that hard to do things in better ways, or I guess I must be a superhuman programmer, because according to all the checking software, I haven't introduced a memory leak since... no, actually, I've never introduced one in as long as I've worked here. If you want to talk about the advantages of garbage collection, knock yourselves out, but please stop treating C++ and C as if they're the same in terms of memory management. They are different worlds.
In any case, garbage collection is far from the biggest benefit of using a scripting language (or whatever we want to call them) over something lower level. As others are pointing out, the more important properties exhibited by most of the modern scripting languages that make them "high level" include first class data structures, first class functions, and dynamic typing.
Parent
Re: (Score:3, Informative)
Before anyone else points it out, I realised that my final sentence in the parent post reads as though I think dynamic typing is necessary for a high-level language. I don't think this is so in general, but in the context of scripting languages, I think it's one of the key features that lets you write higher level code more easily. In a statically typed language, some sort of type inference serves a similar role, keeping the code generic and cutting out unnecessary boilerplate code.
Re:High level != "automated memory management" (Score:5, Insightful)
If we don't insist on treating the tools themselves as the end product, then how will we perpetuate mis-information, and sell "new" products, which are, dared we look at them objectively, just re-shufflings of what has come before?
Parent
Re: (Score:2)
I guess you haven't used STL.
I have not used Perl for a while but when I did I would have called it a scripting language. It just didn't lend it's self to large programs. Python looks like it is better for large tasks but I haven't had time to get into it.
Perl and PHP are what I consider the crescent wrenches of programing.
Not the best tool but just too u
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
That's not like C or Java, when what happens when the program runs is what is inside the main function (or static method). And that happens only after you turned your text file into something else.
I think we may be creating a category where there is none or, better, we a
Re: (Score:3, Insightful)
Every people use the term differently. Here is mine : I am doing a script when I give directives to launch programs or functions written in another language. When the CPU spends 90% of its time outside my program, I consider that this is a script.
Python's philosophy is that it is a scripting language in the sense that if you spend more than 10% of your CPU time interpreting some python
Re: (Score:2)
Re: (Score:2)
Perl 6: The Language of the Future (... Forever) (Score:5, Funny)
Re:Perl 6: The Language of the Future (... Forever (Score:3, Informative)
And this year he barely even did that!
Fine by me (Score:4, Insightful)
I view Perl 6 as an continued employment mechanism for those who write books about Perl and teach Perl to others.
Parent
perl 5.10 should not be neglected (Re:Fine by me) (Score:3, Interesting)
perl 5.10 is about to be released, and it has a number of significant improvements over perl 5.8. Off the top of my head: it has a real "switch" statement included (as originally designed for perl 6), it has recursive regular expressions that can be used to do Text::Balanced sorts of things (if for some reason that now-standard module doesn't do it for you), and a number of new modules have been
Re: (Score:3, Interesting)
I'm not a Perl wizard, but I have used it. I find a lot more limitations than just slowness.
Calling on external C functions from Perl is a pain. You can't ignore all those C functions, there's way too many useful ones out there. There's UNIX system calls, XWindows and higher level GUI libraries, socket and networking stuff, file manipulation, and everything in libc. Perl has a good bit of that covered natively, but suppose you want to use OpenGL? Then you're stuck trying to figure out Frozen Bubble f
Re:Perl 6: The Language of the Future (... Forever (Score:3, Funny)
Re: (Score:2)
Re:Perl 6: The Language of the Future (... Forever (Score:4, Interesting)
Parent
Re: (Score:2, Insightful)
I'm not saying that ugly Perl doesn't exist, because it sure as hell does. Perl does not enforce any coding standards at all on its programmers, so undisciplined coders will write undisciplined code, but I'd rather be in Perl's side of the enforcement continuum than, say, Java's or Python's side.
Re: (Score:2, Insightful)
Re: (Score:2)
Perl will let you approach a problem however you want. Imperative, functional, OO programming all works out of the box; constraint, logic, aspect programming are possible. This liberates many programm
Re:Perl 6: The Language of the Future (... Forever (Score:5, Funny)
Except for actually existing.
Parent
Re: (Score:3, Funny)
I wonder how this guy turned out: "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 Perl6 revision?"
Yup... and he doesn't apologize for it (Score:5, Interesting)
Unless someone is willing to finance full-time development on Perl 6, this is the best we get. I think it's pretty good.
Parent
Re: (Score:2, Insightful)
Re:Yup... and he doesn't apologize for it (Score:5, Funny)
Parent
Re:Yup... and he doesn't apologize for it (Score:4, Funny)
Kicking myself for not saying paragraph instead of sentence.
Parent
Re: (Score:2)
In other news... (Score:4, Funny)
Thanks, and see ya! (Score:2, Insightful)
However, I moved on several years ago. One of those Python guys inspired negatively by Perl. Much of what keeps me away from Ruby, in fact, is the Perl resemblance. I still have a legacy Perl application to maintain, but I don't do any new Perl work.
I'd think a regular "State of the Onion" pronouncement would be an avenue to discuss where we are today, and where we are headed, with Perl. Instead, it's a
Re:Thanks, and see ya! (Score:5, Insightful)
I guess I really don't get the purpose of the essay.
It was also (IMO) a damn fine read, with lots of intriguing rhetorical flourishes (I also learned a little C. [...] That's because a little C is all there is) and thought-provoking concepts, like how most human languages can express anything, but they differ in what you MUST express.
I think most people have a rough idea where Perl is now (present, though likely slipping as a % of interesting code being written) and where it's going (a guess about how the new perl 6 would be received when it finally shows up)
If the latter, well sure... there will almost be another way that is better in some subset of the parameters you could use to measure "Betterness". One tradeoff you always have to make is how much time and conceptual effort do you put into optimizing that...
Parent
the provocative larry wall (Score:3, Interesting)
Actually, it occurs to me that I probably do know why perl provokes such rabid responses, I think it's because of "The State of the Onion" talks.
BASIC/PLUS (Score:3, Funny)
Oh wow, BASIC/PLUS on a PDP-11 running RSTS. That's how I started too. And yet, I became a Python guy. ;-)
Re: (Score:2)
The real reason they didn't put Unix on it was because that machine was the *only* minicomputer on campus, and ran the school database (written by Larry) and cafeteria card readers. It was locked in to running those critical functions, and V7 Unix certainly wasn't going to run on the oc
Re:BASIC/PLUS (Score:4, Funny)
So one day I decided that my calculator was GLAXIA, my PDP-11/44 which ran RSTS/E (V8 or V7, I forget which...)
I packed the whole thing on a cart; the system (Two BA11s), RA81 disk, and LA-120 teletype, and wheeled it into the classroom.
The teacher asked me what it was - "It's my calculator." The look on his face was priceless.
It was loud as hell, but the teacher allowed me to complete the test with it. I forget what I scored.
Thereafter the calculator policy was changed to read
"You may bring any calculator you like to calculator-allowed tests, provided it does not dim the lights when powered on."
Old hardware rocks!
Parent
I remember the Dragon book... (Score:2)
Worst presentation in a while. (Score:4, Insightful)
Put up or shut up, please (Score:3, Insightful)
Perl6 is a text book example of why rewrites are bad. While these people are busy writing the Programming Language to End All Programming Languages,
So please, put up or shut up.
See also: Netscape.
Re: (Score:3, Interesting)
There is a large amount of programmers who found their comfort zone in certain loosely-typed languages, typically they did a lot of C, moved on to Perl and realized that they were much more productive in Perl, but not really realizing why, only thinking that Perl must be some holy grail. They are programmers who have never used Visual Studio or Eclipse or similar IDEs for strongly typed languages, they have *no* *idea* what refactoring is, and what it can do for your
Re: (Score:2)
Re:Pair programming? (Score:4, Informative)
Maybe one of them is a whiz the language and tools, and but is a bit fuzzy on the domain, and the other one is new to the language, but is a domain expert. At first the whiz does most of the keyboard work and the domain expert handles the meta stuff, but gradually they learn from each other and switching off helps them both progress. The domain expert might come to a point where he is trying to explain something complex, so decides to ask for the keyboard and type in some code that does it. It might not be syntactically correct or use the language structure in the best way, but the whiz, looking on, can help clean it up once the ideas are down.
But really, you can't fully appreciate it until you try it with someone with experience in pair programming.
Parent