You miss the point of what the author is trying to say.
Of course the Turing-complete argument is FUD. However, if you read the article, you see that it was used in a sarcastic sort of tone.
I think the author was trying to say that new features will give new ways of doing things, not necessarily new things to do. That's a subtle distinction, but it is one worth making for many of the people that tend to complain about "mere syntactic sugar."
That's what the author, and many other people working on many other languages, are trying to say. OF COURSE the language can theoretically do anything; itis Turing-complete afterall. How effective it is at expressing a given operation in a reasonable amount of time is another matter. That is what Perl's syntax (especially the new additions in Perl 6), and that is what I think the author was trying to say.
I don't know about many of the financial stuff you spoke of, but I was told video game rental services pay royalties to games manufacturers. That would certainly be a rather nice revenue stream.
Thank you! Your comment gives a good example of what I have been trying to tell people about why Perl6 is a very good thing.
Think of readability as how easy it is to tell what the goal of a piece of code is. The assembly code makes it very easy to tell what each individual step does, but as a whole, it takes a lot of work. The semantics of the code block are obscured.
Perl6 adds so much to Perl5, specifically, a lot of things to unobscure the semantics of code blocks.
I'm really excited about Perl6, becuase I will be able to condense some of my complicated many-line idioms into much shorter 2-3 line segments with clearer semantics.
Re:Hammers, nails, etc
on
Perl6 for Mortals
·
· Score: 3, Insightful
I think that comment in the text of the article was intended more to point out that there really isn't a whole lot to add to a language besides syntactic sugar, since perl is already Turing-complete.
I don't think the author intended for a comparison out of resentment.
As for featuritis, what's wrong with looking at other languages, seeing what they did right (and wrong), and then learning from it? It's how the body of knowledge grows. Perl borrows bits from other places and perl-ifies it. Then at some point in the future, other languages borrow from what perl did, and improve upon it. The result is a cycle of improvement and innovation.
I love programming in Perl for many reasons; one of which is the lingustic aspects Larry designed into the language. If more features are added to make my use of perl more efficient, I'm all for it!
Re:perl motto summararizes its fatal weakness
on
Perl6 for Mortals
·
· Score: 2
But note that this is a problem of documentation.
If the programmer didn't correctly document his algorithms, it is unreasonable for you to decipher them.
This is a problem shared by all languages; without proper documentation, a piece of software is much more difficult to figure out.
typing is a pain in the ass a lot of the time, I have found. The casts and such get in the way of really expressing what you are doing. This point was made clearly in the discussion of the hyper operator. We are trying to calculate a whole list of values based on other lists of values. Why do we have to explicitly set up loops, and go through each element? Sure it works, but that is just stuff vaguely related to what the program is trying to do: calculate a list of values.
The semantics of that block of code are obscured by the loop semantics. By replacing it with a single hyper operator, the semantics are much clearer, I think.
This same thing can be applied to Perl's weak-typing. When we convert back and forth from the types, the semantics are now less clear. Dropping the types allows for the code to be much more readable and understandable since there is less crap that must be filtered out.
If 802.11b can't handle interference, that seems to be a problem with the 802.11b technology, doesn't it?
My cordless phone works in 2.4ghz, and it can handle the interference from AirPort. Other technologies should be expected to play nice" and handle interference as well.
This is a well-written article that clearly articulates what needs to be said. Many got caught up in the Bluetooth hype (and many of those same people are now caught up in the 802.11 hype). What they don't understand is these technologies serve fundamentally different needs; that is, they are solutions to different problem domains.
As such, comparing the two and determining one to be better is almost always meaningless - it would be like comparing a car and a bicycle for getting around your school's campus. The car doesn't make much sense because of the overhead of starting it up/shutting it off/parking, and the fact that there are few well-defined area to drive in. The car is made for longer-distance travel. A bicycle, on the other hand, is made to go shorter distance, but it can manuever many more areas. To consider the car or bicycle a better OVERALL transportation solution is meaningless, because it does not speak to the specific needs a user has at a given time.
There's the problem I have with Microsoft pushing towards software as a service. If they know they they wouldn't want to pay for development tools monthly, and none of the ISVs want to do it, why do they assume that everyone else will want to transition to a monthly fee for all of their other software?
It seems to me that you can only force customers into accepting software as a service when you are as big as MS. Any other vendor would be abandoned quite quickly. However, everyone has made themselves vulnerable by relying on MS software so much; they are going to be stuck with it eventually.
I bought an aluminum case this summer, the Coolermaster ATC 201. Best case I've ever worked with, without a doubt. I've tried Antec, Inwin, and Enlight, but the Coolermaster is just the perfect mix for well-constructed and stylish for me.
I've gotten many comments like "Wow that is a badass case" since I built this machine. Hell, my girlfriend even thought it looked cool, and she is not anything close to a geek:)
Beyond that, it runs 15 degrees cooler than some of my friends computers, and that is without any crazy fans.
I did put in an Enermaz power supply. I have been very happy with the setup.
Is it just me, or does it seem like 7.2 is a little late? I recall downloading earlier fall RedHat releases in mid september rather than mid October. If it means that the code will be of a higher quality, so be it. I don't mind the delay, but I am curious if it is coming soon, and if anyone knows when.
Evey time one of my teachers gets the bright idea to assign a group project, everyone groans. Why?
These projects pit you with people you don't know, and don't care to know. They don't want to do the work, and they are happy with making a C. However, if I want to make an A, I have to make up the slack. Inevitably, there is always at least one person that just doesn't care. Everyone else suffers.
The real problem with this is that, in the real world, you can fire someone if they don't do their job and replace them. In a group project, you never seem to have that luxury. Instead, you are stuck pulling the weight of the slackers who don't care.
Additionally, group projects seem to waste a lot of time because of the need for consensus. In reality, design by comittee is very problematic. However, you often can't explain that to group members. They see it as one person dictating his or her ideas. Sure, you need other people's input, but the endless back-and-forth trying to agree on something just wastes everyone's time. Additional time is wasted on all the communication, and the need for meetings. In real life, everyone works the same hours (or a reasonable approxiamtion thereof). That way you can just pick meeting times and be confident that its not going to be a problem having everyone attend. In a school project, you have to schedule meetings around everyone's work+home+school schedules. Often it means meeting late at night, or on the weekends. Who wants to waste their weekend time meeting for a stupid school project?
The only real advantage I see to most group projects is the one for the teacher: less grading.
I think a better idea is to encorage pair assignments. It's been my experience that I get a lot more out of a 2 man "group" than I do a 3, 4, or 5 person group. Its easier to communicate, easier to divide responsibilites, and it makes it possible to share information and approaches without losing a lot of time. The project has a much more cohesive feel to it, and the concepts are better represented. However, the pair approach still has the problem of the disinterested party. Encouraging students to choose their own pairs would help to alleviate that, as students often take classes with a friend.
Group assignments do have benefits, but I think the problems that go along with them in a school setting tend to outweigh those benefits.
I think banning computer-generated images of child porn is problematic because it sets a precedent for banning other computer-generated imagery.
For example, there was discussion following the Sept 11 attacks of banning burning of the American flag. Suppose that laws were passerd banning flag burning. Would we then have to ban images and videos of computer-generated flags being burned by a computer-generated fire?
I think that anyone that would look at computer-generated child porn is sick, but it really does no harm to any child. It only sets a poor precedent, in my mind.
I disagree, because I really don't see so much difference between how Win32 widgets work versus OSX versus Mozilla that it poses a problem.
To me, widgets are pretty simple. Click on buttons, expand drop downs, scroll through lists, type in text boxes, etc...
I can do all of those tasks pretty easily, without even thinkin about it, in any of the environments I use.
Thus, I prefer Mozilla to have its own widgets that work consistently (remember, the Web-as-a-platform implies consistent widgets in the browser, much as Java-as-a-platform does.) Expcting web designers to cater to each OS is a hindrance. The result of that assumption is designers catering to one OS, and one browser at that.
Crossplatform HTML sucked in Navigator because the widgets for Win32 acted just different enough from Mac and from X Window that it got ugly trying to make it look and act consistent.
Mozilla fixes that problem, and kudos to them for it.
(Not to mention being able to write apps for hte Mozilla platform. That's a nice benefit as well)
I think that is just a matter of perception. If you are not in the break mindset when you are not doing work, then of course it won't feel like a break.
However, if you are taking a seat at the table in the coffee room, having a brief chat with a coworker about a movie you saw (for example), I think that is just as much a break as having a smoke outside for a few minutes. The difference is in perception.
Similarly, if you browse/. for a few minutes in between squashing a few bugs, you're doing something you enjoy. That's just as much a break as any other activity.
Taking breaks is necessary in order to be productive. Having a positive perception of them is also important, IMO.
Its true that big business doesn't schedule "break times". But how much time do you spend at the water cooler or the coffe pot chatting? Or walking around talking to people about this and that? Or reading non-work-related web pages?
From my experiences in the workplace, that is easily more than 30 mins/day. Big business just letsd you decide when to take a break.
I've often wondered about that statement "For all debts, public and private." Lots of things only let you pay by credit card these days (AT&T @Home Cable Internet service, for example). Is that legal? Don't they HAVE to accept cash somehow?
Similarly, when you go in to a fast food place like Burger King, and they refuse any bill larger than $20 or a whole pile of change. How is that legal? If I show up with $100, its real US money, why don't they have to take it?
Or are they required to take it, but will give you a real hard time about it?
You don't have to be ALL MS for that to work. Just your windows boxes all need to be on Win2k. Your UNIX setup can quite happily coexist with the windows crap. Many places do that with great success: run an unstable, aggravating, but business and marketing friendly Windows network, and a stable, productive, efficient, and engineer friendly UNIX network. Engineers can always get stuff done, and the silly biz/marketing drones can just have meetings when the network is down. It happens more often than you think, but it seems to be effective.
Theres no reason to convert everything to Windows if it works great as UNIX. There is some argument for converting your Windows network to all Win2k/AD, but I am among the unconvinced. Sure Win2k works better, but in many places, including my place of employment, NT4 works really well. There really isn't a compelling reason to switch away from NT4.
And millions of people always buy the most expensive gasoline even though their car engines were designed to run perfectly fine on the cheapest (by law). They just think that since it's more expense (or "higher octane") it must be better.
Higher Octane IS better. High-performance car manufacturers especially recommend higher octane fuel for their cars. While it is true that not everyone needs it, but in many vehicles a performance difference is very noticable.
This post hints at the real cause of the "Perl is unmaintainable" mentality that pervades the community with the statement that begins "I've used Perl to prototype..."
Therein lies the problem. Perl really helps the programmer get something done quick. Much moreso than C/C++, and somewhat moreso than Java. However, that speed always comes at a price. Its a lot harder to read code that isn't commented, and that is chock full of clever tricks gleaned from reading comp.lang.perl. The same would certainly be said of C/C++ coders using lots of shortcuts from books and FAQs, and possibly of Java as well. Arguably, Java does enjoy the advantage of verbose method and class naming. This does help make the code a little easier to read, but this isn't something exclusive to Java. Any good programmer should name things properly. Besides, some argue that Java can be too verbose (like Objective C is IMO) and that makes it just as hard to read as if it were too concise.
The real solution is something that is taught in Software Engineering courses, but often ignored: THROW AWAY THE PROTOTYPE. A prototype is meant to be a quick and dirty proof-of-concept, something to give everyone an idea of what the tool is supposed to do. You will run into problems when you extend a prototype into production, whether you are talking Perl, Java, C/C++, or any other language. Prototypes are developed quickly and without much planning. It is this lack of planning that is at the root of most maintenance problems.
Well-written Perl with helpful comments and a good use of whitespace is easy for experienced Perl programmers to read. That same can be said of well-written Java and C/C++. Some even say the expressive nature of Perl can make the code easier to read, and I'd agree. However, I don't believe Perl is inherently unmaintainable. I think that myth is an unfortunate side-effect of Perl's ease of use. You can develop a solution very quickly in Perl, and it will work. But it is unreasonable to expect a maintainable solution to come out of any significant programming project that lacked planning and consideration. Anyone who does prototyping in C/C++ and Java would recognize that it wont be maintainable for production use. Too many simple assumptions are made, and the implementation is often tied too closely to the interface. This is a problem with prototypes in ANY language. Why do some people expect Perl to be different, just because it allows the developer to prototype faster?
Thus, while it may be true that Perl code is often unmaintainable, I don't put the blame on Perl. I place the fault squarely on the shoulders of those who mis-use their prototypes, and don't want to pay the price later.
You miss the point of what the author is trying to say.
Of course the Turing-complete argument is FUD. However, if you read the article, you see that it was used in a sarcastic sort of tone.
I think the author was trying to say that new features will give new ways of doing things, not necessarily new things to do. That's a subtle distinction, but it is one worth making for many of the people that tend to complain about "mere syntactic sugar."
That's what the author, and many other people working on many other languages, are trying to say. OF COURSE the language can theoretically do anything; itis Turing-complete afterall. How effective it is at expressing a given operation in a reasonable amount of time is another matter. That is what Perl's syntax (especially the new additions in Perl 6), and that is what I think the author was trying to say.
I don't know about many of the financial stuff you spoke of, but I was told video game rental services pay royalties to games manufacturers. That would certainly be a rather nice revenue stream.
Anyone know if there is truth to that?
Thank you! Your comment gives a good example of what I have been trying to tell people about why Perl6 is a very good thing.
Think of readability as how easy it is to tell what the goal of a piece of code is. The assembly code makes it very easy to tell what each individual step does, but as a whole, it takes a lot of work. The semantics of the code block are obscured.
Perl6 adds so much to Perl5, specifically, a lot of things to unobscure the semantics of code blocks.
I'm really excited about Perl6, becuase I will be able to condense some of my complicated many-line idioms into much shorter 2-3 line segments with clearer semantics.
I think that comment in the text of the article was intended more to point out that there really isn't a whole lot to add to a language besides syntactic sugar, since perl is already Turing-complete.
I don't think the author intended for a comparison out of resentment.
As for featuritis, what's wrong with looking at other languages, seeing what they did right (and wrong), and then learning from it? It's how the body of knowledge grows. Perl borrows bits from other places and perl-ifies it. Then at some point in the future, other languages borrow from what perl did, and improve upon it. The result is a cycle of improvement and innovation.
I love programming in Perl for many reasons; one of which is the lingustic aspects Larry designed into the language. If more features are added to make my use of perl more efficient, I'm all for it!
But note that this is a problem of documentation.
If the programmer didn't correctly document his algorithms, it is unreasonable for you to decipher them.
This is a problem shared by all languages; without proper documentation, a piece of software is much more difficult to figure out.
typing is a pain in the ass a lot of the time, I have found. The casts and such get in the way of really expressing what you are doing. This point was made clearly in the discussion of the hyper operator. We are trying to calculate a whole list of values based on other lists of values. Why do we have to explicitly set up loops, and go through each element? Sure it works, but that is just stuff vaguely related to what the program is trying to do: calculate a list of values.
The semantics of that block of code are obscured by the loop semantics. By replacing it with a single hyper operator, the semantics are much clearer, I think.
This same thing can be applied to Perl's weak-typing. When we convert back and forth from the types, the semantics are now less clear. Dropping the types allows for the code to be much more readable and understandable since there is less crap that must be filtered out.
For a lot of business computing, C, Perl, Java, and VB pretty much ARE your only choices.
Companies invest lots of time and effort in an environment; they don't just hop from one language to another as the fads change.
Thats why a lot of people still care about Perl, because they like it, and have invested a lot of time and code in it.
Why change all that and move to Python/Ruby/Lisp/etc...?
If 802.11b can't handle interference, that seems to be a problem with the 802.11b technology, doesn't it?
My cordless phone works in 2.4ghz, and it can handle the interference from AirPort. Other technologies should be expected to play nice" and handle interference as well.
This is a well-written article that clearly articulates what needs to be said. Many got caught up in the Bluetooth hype (and many of those same people are now caught up in the 802.11 hype). What they don't understand is these technologies serve fundamentally different needs; that is, they are solutions to different problem domains.
As such, comparing the two and determining one to be better is almost always meaningless - it would be like comparing a car and a bicycle for getting around your school's campus. The car doesn't make much sense because of the overhead of starting it up/shutting it off/parking, and the fact that there are few well-defined area to drive in. The car is made for longer-distance travel. A bicycle, on the other hand, is made to go shorter distance, but it can manuever many more areas. To consider the car or bicycle a better OVERALL transportation solution is meaningless, because it does not speak to the specific needs a user has at a given time.
Where can we find information on the bad lot #s, or serial #s, so that I can check my drives out?
Also, any word on the newer 60GXP series having any problems?
There's the problem I have with Microsoft pushing towards software as a service. If they know they they wouldn't want to pay for development tools monthly, and none of the ISVs want to do it, why do they assume that everyone else will want to transition to a monthly fee for all of their other software?
It seems to me that you can only force customers into accepting software as a service when you are as big as MS. Any other vendor would be abandoned quite quickly. However, everyone has made themselves vulnerable by relying on MS software so much; they are going to be stuck with it eventually.
Predative, anti-consumer monopoly anyone?
I bought an aluminum case this summer, the Coolermaster ATC 201. Best case I've ever worked with, without a doubt. I've tried Antec, Inwin, and Enlight, but the Coolermaster is just the perfect mix for well-constructed and stylish for me.
:)
I've gotten many comments like "Wow that is a badass case" since I built this machine. Hell, my girlfriend even thought it looked cool, and she is not anything close to a geek
Beyond that, it runs 15 degrees cooler than some of my friends computers, and that is without any crazy fans.
I did put in an Enermaz power supply. I have been very happy with the setup.
I 100% agree. I hate powering down my box....it just feels like murder to the hard disk.
Is it just me, or does it seem like 7.2 is a little late? I recall downloading earlier fall RedHat releases in mid september rather than mid October. If it means that the code will be of a higher quality, so be it. I don't mind the delay, but I am curious if it is coming soon, and if anyone knows when.
Evey time one of my teachers gets the bright idea to assign a group project, everyone groans. Why?
These projects pit you with people you don't know, and don't care to know. They don't want to do the work, and they are happy with making a C. However, if I want to make an A, I have to make up the slack. Inevitably, there is always at least one person that just doesn't care. Everyone else suffers.
The real problem with this is that, in the real world, you can fire someone if they don't do their job and replace them. In a group project, you never seem to have that luxury. Instead, you are stuck pulling the weight of the slackers who don't care.
Additionally, group projects seem to waste a lot of time because of the need for consensus. In reality, design by comittee is very problematic. However, you often can't explain that to group members. They see it as one person dictating his or her ideas. Sure, you need other people's input, but the endless back-and-forth trying to agree on something just wastes everyone's time. Additional time is wasted on all the communication, and the need for meetings. In real life, everyone works the same hours (or a reasonable approxiamtion thereof). That way you can just pick meeting times and be confident that its not going to be a problem having everyone attend. In a school project, you have to schedule meetings around everyone's work+home+school schedules. Often it means meeting late at night, or on the weekends. Who wants to waste their weekend time meeting for a stupid school project?
The only real advantage I see to most group projects is the one for the teacher: less grading.
I think a better idea is to encorage pair assignments. It's been my experience that I get a lot more out of a 2 man "group" than I do a 3, 4, or 5 person group. Its easier to communicate, easier to divide responsibilites, and it makes it possible to share information and approaches without losing a lot of time. The project has a much more cohesive feel to it, and the concepts are better represented. However, the pair approach still has the problem of the disinterested party. Encouraging students to choose their own pairs would help to alleviate that, as students often take classes with a friend.
Group assignments do have benefits, but I think the problems that go along with them in a school setting tend to outweigh those benefits.
I think banning computer-generated images of child porn is problematic because it sets a precedent for banning other computer-generated imagery.
For example, there was discussion following the Sept 11 attacks of banning burning of the American flag. Suppose that laws were passerd banning flag burning. Would we then have to ban images and videos of computer-generated flags being burned by a computer-generated fire?
I think that anyone that would look at computer-generated child porn is sick, but it really does no harm to any child. It only sets a poor precedent, in my mind.
I disagree, because I really don't see so much difference between how Win32 widgets work versus OSX versus Mozilla that it poses a problem.
To me, widgets are pretty simple. Click on buttons, expand drop downs, scroll through lists, type in text boxes, etc...
I can do all of those tasks pretty easily, without even thinkin about it, in any of the environments I use.
Thus, I prefer Mozilla to have its own widgets that work consistently (remember, the Web-as-a-platform implies consistent widgets in the browser, much as Java-as-a-platform does.) Expcting web designers to cater to each OS is a hindrance. The result of that assumption is designers catering to one OS, and one browser at that.
Who really wants that?
mod this up, he is dead on.
Crossplatform HTML sucked in Navigator because the widgets for Win32 acted just different enough from Mac and from X Window that it got ugly trying to make it look and act consistent.
Mozilla fixes that problem, and kudos to them for it.
(Not to mention being able to write apps for hte Mozilla platform. That's a nice benefit as well)
I think that is just a matter of perception. If you are not in the break mindset when you are not doing work, then of course it won't feel like a break.
/. for a few minutes in between squashing a few bugs, you're doing something you enjoy. That's just as much a break as any other activity.
However, if you are taking a seat at the table in the coffee room, having a brief chat with a coworker about a movie you saw (for example), I think that is just as much a break as having a smoke outside for a few minutes. The difference is in perception.
Similarly, if you browse
Taking breaks is necessary in order to be productive. Having a positive perception of them is also important, IMO.
Its true that big business doesn't schedule "break times". But how much time do you spend at the water cooler or the coffe pot chatting? Or walking around talking to people about this and that? Or reading non-work-related web pages?
From my experiences in the workplace, that is easily more than 30 mins/day. Big business just letsd you decide when to take a break.
I've often wondered about that statement "For all debts, public and private." Lots of things only let you pay by credit card these days (AT&T @Home Cable Internet service, for example). Is that legal? Don't they HAVE to accept cash somehow?
Similarly, when you go in to a fast food place like Burger King, and they refuse any bill larger than $20 or a whole pile of change. How is that legal? If I show up with $100, its real US money, why don't they have to take it?
Or are they required to take it, but will give you a real hard time about it?
1.3 (soon to be 1.4), IBM if available, and almost always Swing, to answer your questions.
You don't have to be ALL MS for that to work. Just your windows boxes all need to be on Win2k. Your UNIX setup can quite happily coexist with the windows crap. Many places do that with great success: run an unstable, aggravating, but business and marketing friendly Windows network, and a stable, productive, efficient, and engineer friendly UNIX network. Engineers can always get stuff done, and the silly biz/marketing drones can just have meetings when the network is down. It happens more often than you think, but it seems to be effective.
Theres no reason to convert everything to Windows if it works great as UNIX. There is some argument for converting your Windows network to all Win2k/AD, but I am among the unconvinced. Sure Win2k works better, but in many places, including my place of employment, NT4 works really well. There really isn't a compelling reason to switch away from NT4.
And millions of people always buy the most expensive gasoline even though their car engines were designed to run perfectly fine on the cheapest (by law). They just think that since it's more expense (or "higher octane") it must be better.
Higher Octane IS better. High-performance car manufacturers especially recommend higher octane fuel for their cars. While it is true that not everyone needs it, but in many vehicles a performance difference is very noticable.
Problem with the Rio is you have to run a special Win32 app to stream to the thing. its not as flexbile as I would wish.
That and the display is impossible to read from across the room.
This post hints at the real cause of the "Perl is unmaintainable" mentality that pervades the community with the statement that begins "I've used Perl to prototype..."
Therein lies the problem. Perl really helps the programmer get something done quick. Much moreso than C/C++, and somewhat moreso than Java. However, that speed always comes at a price. Its a lot harder to read code that isn't commented, and that is chock full of clever tricks gleaned from reading comp.lang.perl. The same would certainly be said of C/C++ coders using lots of shortcuts from books and FAQs, and possibly of Java as well. Arguably, Java does enjoy the advantage of verbose method and class naming. This does help make the code a little easier to read, but this isn't something exclusive to Java. Any good programmer should name things properly. Besides, some argue that Java can be too verbose (like Objective C is IMO) and that makes it just as hard to read as if it were too concise.
The real solution is something that is taught in Software Engineering courses, but often ignored: THROW AWAY THE PROTOTYPE. A prototype is meant to be a quick and dirty proof-of-concept, something to give everyone an idea of what the tool is supposed to do. You will run into problems when you extend a prototype into production, whether you are talking Perl, Java, C/C++, or any other language. Prototypes are developed quickly and without much planning. It is this lack of planning that is at the root of most maintenance problems.
Well-written Perl with helpful comments and a good use of whitespace is easy for experienced Perl programmers to read. That same can be said of well-written Java and C/C++. Some even say the expressive nature of Perl can make the code easier to read, and I'd agree. However, I don't believe Perl is inherently unmaintainable. I think that myth is an unfortunate side-effect of Perl's ease of use. You can develop a solution very quickly in Perl, and it will work. But it is unreasonable to expect a maintainable solution to come out of any significant programming project that lacked planning and consideration. Anyone who does prototyping in C/C++ and Java would recognize that it wont be maintainable for production use. Too many simple assumptions are made, and the implementation is often tied too closely to the interface. This is a problem with prototypes in ANY language. Why do some people expect Perl to be different, just because it allows the developer to prototype faster?
Thus, while it may be true that Perl code is often unmaintainable, I don't put the blame on Perl. I place the fault squarely on the shoulders of those who mis-use their prototypes, and don't want to pay the price later.