State of the Onion 11 278
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.'"
scripting (Score:5, Insightful)
Re:scripting (Score:5, Insightful)
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.
Re:Yup... and he doesn't apologize for it (Score:2, Insightful)
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 rambling short history of "scripting" languages, and a rundown of various language design choices with "Perl 6 will have [x]" statements.
I guess I really don't get the purpose of the essay.
As to TMTOWTDI, I've concluded TOABWTDI (There's Often A Better Way To Do It).
Re:Perl 6: The Language of the Future (... Forever (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:Perl 6: The Language of the Future (... Forever (Score:2, Insightful)
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...
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?
Re:scripting (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 code, you are doing something wrong. They encourage you to rewrite these image processing functions in C/C++ if you are serious about performances.
And yes, given this definition, one can write scripts in C.
Worst presentation in a while. (Score:4, Insightful)
Re:Fine by me (Score:2, Insightful)
BUT if it was 20-30 times faster people would be able to use it for a lot more stuff where they'd otherwise have to resort to stuff that involves a lot more work
Parrot hasn't been very impressive, and ponie is dead anyway.
Yeah I know python is a bit faster and cleaner but so far it doesn't seem like a huge improvement.
I've looked at Lisp and I've come to the conclusion that:
Lisp is powerful for all the code you write, unfortunately you still have to write a lot of that code yourself.
In contrast Perl is powerful because of all the code you don't have to write.
Re:scripting (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.
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:scripting (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 always translate into the same simple pattern of assembler.
Basically the only thing that cleanly differentiates a language like Perl from a language like C is the "eval" function - which requires access to a Perl interpreter/compiler to work.