Object Oriented Perl is extremely powerful and flexible. It's possible to do exotic things like multiple dispatch, it *does* support true encapsulation, and you can change inheritance hierarchies at run time. I've seen people write first-class objects and classes (think Self), and I've implemented mixins having seen them in Ruby. You can use all sorts of design patterns, have compile time member checking, and even modify objects as the code is running. There are even good reasons to use multiple inheritance (Perl's not the kind of language that thinks it's smarter than you.)
If you mean "member data tends to be class based instead of object based", then you're right. That's a true limitation of OO Perl. It would also be nice to have a refactoring browser like Smalltalk has.
As for readability, I can't read anything written with Kanji characters. That doesn't mean I'll ever claim it's "unmaintainable compared to English". (To be fair, complex data structure dereferencing *can be* hard to read in Perl.)
I've had that problem with PERL, but then I discovered its predecessor, Perl. It's a much nicer language -- it has warnings, an optional pedantic compiler mode, lexical variables, embedded comment support, a debugger, copious documentation, numerous libraries, and activeusercommunities. Best of all, it's not limited to CGI!
If you've had a bad experience with PERL, give Perl a try!
Check out Documentation/Changes. You'll probably need to upgrade binutils, modutils, e2fsprogs, and PPP (if you're running PPP). The file has pointers to applicable versions.
If you're comfortable compiling a kernel, it shouldn't be any trouble.
I think filehandle properties will let you do the definedness trick, though while() {} trick in Perl 5 is currently magical that way.
Changing the meaning of the dot operator is pretty big, though. It'll take a while to get used to method calls without -> and concatenation with _.
Using a leading underscore as a stringification operator could be advantageous... especially when dealing with an expression that returns a list, like a hash or list slice, or a method call. There are lots of things that aren't easily interpolated into a string. Give that one a chance.
(And, yes, I understand typeglobs.:)
Higher order functions are functions that can be treated as values... passed to and from other functions. They're terribly handy.
I also wouldn't worry about excessive punctuation. If someone else doesn't already have plans to provide English.pm for Perl 6, I'll do it. It'll probably end up being handled the same way Ruby does it. Internally, everything's an object, and you can access regexp captures through methods or regexp properties, but there are also optional magic punctuation variables available for Perl afficiandoes or shortcut gurus.
The really big changes are the dot and the underscore. Most beginner and intermediate Perl hackers aren't going to notice many of the other changes.
Nothing in the Constitution compels us to listen to or to view any unwanted communication, whatever its merit. . . We therefore categorically reject the argument that a vendor has the right under the Constitution or otherwise to send unwanted material into the home of another. . . We repeat, the right of a mailer stops at the outer boundary of every person's domain.
-- United States Supreme Court, Rowan vs. U.S. Post Office, 1970
Perhaps you're looking for the FSF, or Free Software Foundation?
Re:Decent XSL Reference anyone?
on
XML in a Nutshell
·
· Score: 2, Informative
O'Reilly have just published an XSLT book. I've not read it yet, but will hopefully pick it up soon. It does include a chapter and an appendix on XPath.
Re:Read between the links...
on
XML in a Nutshell
·
· Score: 3, Informative
Just to be clear, this is a hobby for me. I receive no financial remuneration for book reviews. That's right -- no money from OSDN, no money from referral links. I've never even joined any sort of affiliate program. Hemos (and others) have sent me free review copies, though I've also purchased books on my own to review.
Just remove the toner cartridge and fuser, replace the drum with a roll of electronic paper, and that's it. There's a stage at the end of a cycle that applies a uniform charge to the drum in preparation for the laser. That can reset the paper to white.
Not that I've ever seen anything similar in a prototype, oh no...
I added that back in to the Story Edit page, after it disappeared from Bender. It's not in the comment formatting code, though it wouldn't be difficult to add. Krow and I discussed that last month.
E2's going to need more speed, though, and no one's had time yet to hook up the second hamster.
He was an author on the third edition of Programming Perl and spoke at the Perl Conference a couple of weeks ago. Less visibility than normal, yes, but still around.
He's a decent guy in person. I spent a couple of days around him, Chris Dibona, Krow, Pudge, and Patrick G. as well. They're all decent guys, and at least half of them are brilliant.
Maybe it's different 'cuz of my business dealings, but Malda sure wasn't a whiny prima-donna. He's got his opinions and all, but doesn't take himself too seriously (really!). I now have the impression half the stupid article comments are meant to poke fun at himself.
Besides that, he bought a round of drinks one night and supper another. (Of course, he probably did it to pay back Jim Gettys for the years of work on X11.)
I still wouldn't hire him to write software that anyone else would ever maintain, though.
I expect people to cook meat long enough to reach a temperature that will kill most harmful bacteria. I expect my roommates not to leave the mayonnaise or milk or eggs out for several hours. I expect they know enough to wash vegetables before making a salad.
If Pasteur could convince people of these things, maybe there's hope for the average person. (At least put your milk in a wet paper sack!)
Mark arranged for me to receive a review copy after I finished the marathon Linux book series last summer. Due to various things, like work for pay and several other books in the queue, the review wasn't ready until recently.
Sometimes, the editorial side slows things down as well. In this case, I thought the book was good enough that it deserved a review. (It compares very favorably to other books in the marathon series.)
You could e-mail Hemos or Timothy with an offer to review a recent book. My list is rather large at the moment. They're good about working with people who follow the guidelines.
Acually, Lucas and Chris Claremont (yeah, the X-Men writer) co-wrote three books continuing the story of Willow. In order, they're Shadow Moon, Shadow Dawn, and Shadow Star. Who knows how much Lucas contributed besides the basic story.
I read the first. I don't remember much. It was pretty good, but it wasn't Dune or A Canticle for Leibowitz.
What if you're compiling a kernel for a completely different computer? What if you want to experiment with a new option, or turn a feature into a module?
I'm not a fan of creeping featurism, but there's clearly room for kernel configuration. (And hey, it looks like ESR got the design of CML2 right. I'll give him credit for that.)
Because Perl threads are experimental until 5.8 is released?
Object Oriented Perl is extremely powerful and flexible. It's possible to do exotic things like multiple dispatch, it *does* support true encapsulation, and you can change inheritance hierarchies at run time. I've seen people write first-class objects and classes (think Self), and I've implemented mixins having seen them in Ruby. You can use all sorts of design patterns, have compile time member checking, and even modify objects as the code is running. There are even good reasons to use multiple inheritance (Perl's not the kind of language that thinks it's smarter than you.)
If you mean "member data tends to be class based instead of object based", then you're right. That's a true limitation of OO Perl. It would also be nice to have a refactoring browser like Smalltalk has.
As for readability, I can't read anything written with Kanji characters. That doesn't mean I'll ever claim it's "unmaintainable compared to English". (To be fair, complex data structure dereferencing *can be* hard to read in Perl.)
If you've had a bad experience with PERL, give Perl a try!
Feel free to drop me an e-mail (see user info page) if you have ideas.
There's been work to get similar things for the kernel, as well.
I'd personally be a little scared of testing kernel functions, but I've tested a lot of so-called "untestable" things lately. It's worth doing.
If you're comfortable compiling a kernel, it shouldn't be any trouble.
Changing the meaning of the dot operator is pretty big, though. It'll take a while to get used to method calls without -> and concatenation with _.
Using a leading underscore as a stringification operator could be advantageous... especially when dealing with an expression that returns a list, like a hash or list slice, or a method call. There are lots of things that aren't easily interpolated into a string. Give that one a chance.
(And, yes, I understand typeglobs. :)
Higher order functions are functions that can be treated as values... passed to and from other functions. They're terribly handy.
I also wouldn't worry about excessive punctuation. If someone else doesn't already have plans to provide English.pm for Perl 6, I'll do it. It'll probably end up being handled the same way Ruby does it. Internally, everything's an object, and you can access regexp captures through methods or regexp properties, but there are also optional magic punctuation variables available for Perl afficiandoes or shortcut gurus.
The really big changes are the dot and the underscore. Most beginner and intermediate Perl hackers aren't going to notice many of the other changes.
Several CPAN modules have been written to allow Perl 6 syntax in Perl 5. More will certainly follow.
It'd probably save on energy bills, with a built in will to power. On the other hand.... think of HAL 9000. Yikes.
Or exactly what right NetZero had to shutdown ZeroKnowledge... If you'll pardon the pun, "zero".
-- United States Supreme Court, Rowan vs. U.S. Post Office, 1970
Presumably they already have to attend Microsoft pep rallies, where Steve Ballmer may dance again. Haven't they suffered enough?
Perhaps you're looking for the FSF, or Free Software Foundation?
O'Reilly have just published an XSLT book. I've not read it yet, but will hopefully pick it up soon. It does include a chapter and an appendix on XPath.
Just to be clear, this is a hobby for me. I receive no financial remuneration for book reviews. That's right -- no money from OSDN, no money from referral links. I've never even joined any sort of affiliate program. Hemos (and others) have sent me free review copies, though I've also purchased books on my own to review.
Just remove the toner cartridge and fuser, replace the drum with a roll of electronic paper, and that's it. There's a stage at the end of a cycle that applies a uniform charge to the drum in preparation for the laser. That can reset the paper to white.
Not that I've ever seen anything similar in a prototype, oh no...
Interesting logic. What you're saying is:
Someone like Larry Ellison might disagree about DBAs wanting support.
If you can't *use* the application with a command line, there's no reason you should be able to *run* it that way.
You're missing out. Try xhost sometime, ssh into a remote machine, export your local display, and run a GUI program. It's very handy.
(Yes, my parents run Linux.)
I added that back in to the Story Edit page, after it disappeared from Bender. It's not in the comment formatting code, though it wouldn't be difficult to add. Krow and I discussed that last month.
E2's going to need more speed, though, and no one's had time yet to hook up the second hamster.
He was an author on the third edition of Programming Perl and spoke at the Perl Conference a couple of weeks ago. Less visibility than normal, yes, but still around.
He's a decent guy in person. I spent a couple of days around him, Chris Dibona, Krow, Pudge, and Patrick G. as well. They're all decent guys, and at least half of them are brilliant.
Maybe it's different 'cuz of my business dealings, but Malda sure wasn't a whiny prima-donna. He's got his opinions and all, but doesn't take himself too seriously (really!). I now have the impression half the stupid article comments are meant to poke fun at himself.
Besides that, he bought a round of drinks one night and supper another. (Of course, he probably did it to pay back Jim Gettys for the years of work on X11.)
I still wouldn't hire him to write software that anyone else would ever maintain, though.
I expect people to cook meat long enough to reach a temperature that will kill most harmful bacteria. I expect my roommates not to leave the mayonnaise or milk or eggs out for several hours. I expect they know enough to wash vegetables before making a salad.
If Pasteur could convince people of these things, maybe there's hope for the average person. (At least put your milk in a wet paper sack!)
--
Mark arranged for me to receive a review copy after I finished the marathon Linux book series last summer. Due to various things, like work for pay and several other books in the queue, the review wasn't ready until recently.
Sometimes, the editorial side slows things down as well. In this case, I thought the book was good enough that it deserved a review. (It compares very favorably to other books in the marathon series.)
You could e-mail Hemos or Timothy with an offer to review a recent book. My list is rather large at the moment. They're good about working with people who follow the guidelines.
--
Acually, Lucas and Chris Claremont (yeah, the X-Men writer) co-wrote three books continuing the story of Willow. In order, they're Shadow Moon, Shadow Dawn, and Shadow Star. Who knows how much Lucas contributed besides the basic story.
I read the first. I don't remember much. It was pretty good, but it wasn't Dune or A Canticle for Leibowitz.
--
What if you're compiling a kernel for a completely different computer? What if you want to experiment with a new option, or turn a feature into a module?
I'm not a fan of creeping featurism, but there's clearly room for kernel configuration. (And hey, it looks like ESR got the design of CML2 right. I'll give him credit for that.)
--