Exegesis 4 Out
BorrisYeltsin writes "perl.com has Exegesis 4 from the Damian, in repsonse to Larry's latest Apocalypse. This installment covers news of the new flow and block control changes, fully integrated exceptions and some other cool stuff!"
Alright, I'll stick up for good 'ol perl.
I started out with my admin career with perl, and I'll tell you, it takes a minimal amount of time to be able to read it, and with a little practice, not very much more time to actually create good time saving tasks with it. I'm sure others can vouch for it better than I can.
Trying is the First Step to Failing --Homer Simpson
..."exegesis" means "explanation" ;)
pronounced exIgisis with vowels having their so-called cardinal (?) values (pat-pot-pet-pit)
x like in example
g like the y in yes/year
exercise for the reader: find the etymology yourself
Looking for people to chat about multicopters, coding, music. skype: gtsiros
I knew C, C++, Assembly, and a few other languages before I learned Perl. I found parts of Perl that are very, very similar to other languages, and that's what made learning it so easy for me. I haven't really put my Perl skills to use for anything large, but they're nice to have when I need to hack something up quickly. The design concepts behind Perl are similar to those of C++ and even (*gasp*) Verilog. The API and modules are a bit wonky, but I guess that's to be expected when so many people work on them. Anyway, just my $0.02. Back to work.
perl.com has Exegesis 4 from the Damian, in repsonse to Larry's latest Apocalypse[...]
:)
This sounds like chinese to me. What the hell... maybe I'm reding the wrong section...
-- No sig today
I only glanced at the article, and there are some serious changes. Am I going to have re-write my code all over again? (and what about my editors syntax highlighting patterns?) ;P
Causing Chaos Everywhere,
Nik J.
The strange world of a loner, in a populous city, drowning in society
Both of your friends are correct. :-)
Go not to the Elves for counsel, for they will say both no and yes
I love the band, "Perl Jam"
Also, the perl6 project is introducing Parrot - a portable, language independent VM. As .Net and Java continue to evolve and prosper, the writing is on the wall - the next platform war will be in frameworks and VMs/JITs. There has to be a competitive open alternative in this market to keep the other players honest. Five years down the road I see Parrot as potentially more important than perl6 itself.
In any case it'll be nice to see how Larry and the gang put a perl twist on OO in the new language - knowing him there will be some useful enhancements for thinking programmers.
Though it is true that by default, Perl does nothing to prevent a person from writing an unreadable program, it is unfair to say that Perl is inherently unreadable. It is quite possible to write unreadable C, or Java, or Javascript, or whatever. Nobody complains that "HTML sucks cause it's unreadable" even though the majority of HTML out there is badly written, unreadable, unmaintainable and full of errors.
It is true that there are lots of unreadable Perl programs out there, but that's the fault of the programmer when they don't make their throw-away script readable when it becomes a mission-critical script.
I've written lots of maintainable, easy to read Perl, and it's easy to do if you simply follow reasonable coding practices (i.e. documentation). If you aren't doing that, you're asking for trouble no matter what language you use.
... "Give me a woman who loves beer and I will conquer the w
On April Fool's Day, I might have modded this up as one of the purest forms of troll bait I have seen. The only way you might have made this statement better is if you had added a reference to Python somewhere in there.
bbh
Great. So, now, I'll have to learn another Perl, in addition to another VB, J#, and C#, just to keep up with what's going on in the computer science world. Why does everyone think rewriting their languages and pulling new ones out of thin air is so cool, all of a sudden?
>>Hmmmmmmm. I know which version I'd rather maintain.
Would that be the Python version?
I think you're seeing a lesson learned from perl5.
Before perl5, Larry was told "people want OO in perl", so Larry slapped OO onto perl, instead of resetting and adding OO elegantly. You've already mentioned the result( *wince* ).
Now stuff like Parrot and exception handling needs to be added to perl. But Larry says "Woo! Lets do it right this time" and resets the language.
I think its just a lesson learned (for all language developers, I hope), and hopefully the last reset in perl.
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
What makes you think that the language of the month (or I should say, language flavor of the month, since they're all incredibly similar to someone who knows the underlying concepts) has anything to do with Computer Science?
...you're probably in the wrong field.
return %var{'$' _ $i} = pop(@stack) but true;
and
class Err::BadData is Exception {...}
Make me weep for the future. Although I kind of like the new switch-ish stuff. And the expanded for functionality looks like it could be very handy. But it's messing up my Perl, you know? It's like your teenage kid coming home with blue hair and five earrings (not all of which are in an ear, and only three of which you can readily see). What you thought once was is not what now is.
I know, I know...
- or -
OK, I might have been stretching on that last one...
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
OR.....drumroll.....
Just learn Python and don't worry about how many more times Perl ends up needing to be reset.
This may be painful, yes, but it had to be done because the existing Perl codebase was such a mess that a reimplementation was seen as the only way for the language to keep evolving. In return from starting from scratch like this, the Perl community gets a lot of benefits: there will be lots of tasty new syntactic sugar (which you're welcome to ignore by writing Perl5 style code, but which will make a lot of tasks easier if you get used to the syntax), it should be easier to develop extension libraries (no more evil XS hackery, and PDL becomes much less necessary), it will be easier to port Perl to new platforms (like say Palm Pilots), and you get this great language engine out of Parrot.
Plus, the only reference implementation of Perl the language has been Perl the interpreter, and this bothers a lot of people for a lot of reasons. With this reworking, the language specification will be fleshed out in much better detail than has ever existed before, and the official reference implementation should be much easier to understand & work with, with actual abstraction of different working layers that should be replaced just as TCP/IP layers can be replaced. Ideally, this will allow others to come in and develop their own implementations of Perl the language, and that competition could stand to benefit us all.
Still, the funny thing to me is that all this Parrot work was born out of an April Fools Joke last year. Not only was it a funny joke -- unlike say everything that was posted here the other day -- but it has evolved into quite an interesting piece of software architecture. Be careful what you joke about, you just might get it... :)
DO NOT LEAVE IT IS NOT REAL
You mentioned both Perl and VB in one sentence with computer science. You lose.
Programming can be fun again. Film at 11.
Just thought I'd place a little comment in from a newbie to Perl, seeing as a lot of people are discussing the readability of Perl.
First off, I've been writing a database application with SQL Server 2000 and Visual Basic for the last year. Recently, I had to do some nasty work with some text documents. I understand the Visual Basic isn't the most popular language, but it has it's place... parsing text documents isn't it.
Long story short, I decided to try using Perl for it, instead, seeing as Perl is very well suited for the task. It only took me about 4 hours to complete what I needed to do with Perl, and that includes learning the language. So far I've found it very intuitive and it's certainly not any more difficult to read than anything else. If anything, I think Perl simply requires the reader know a bit more about the language, which isn't a bad thing, in my mind.
Maybe I had a better time with it since I've already done extensive work in C/C++, but I still think it's quite useful, and certainly not unreadable if the programmer takes the time to program it properly.
Perl is for humans in general, and a good first language to learn if you get off on immediate results/feedback/reinforcement. Problem is when you move on to a language like java it seems cruel and inhuman. So the argument could be made that you should start with java, because perl doesn't represent the real world. It's an idealization, and perl 6 will likely only be more ideal, so best to avoid it. Perhaps start with C++. That way you won't be deluded into believing that programming is easy and fun.
Could you please explain with few words what Perl has to do with computer science.
I rather think that Perl is to CS what witchcraft is to quantum physics.
Don't know if it is me getting old or what, but it seems like there is a gradual convergence of 'mainstream' languages, especially in the core functionality set. (I do not count lisp / scheme / z as mainstream)
There was a comment somewhere in this months PC Plus (uk edition) on the ease of transferring from VB to their version of c# (or was it j#).
I think that this is a good thing. You can use a telephone / car / toaster in any country (that has wires / roads / bread), why not have a common core for computer languages?
what advantages does the Parrot VM have over the .NET or Java VM?
Ahhh, more control keywords! Good thing most perl code I've seen doesn't bother with the trouble of readable variable names, or running out of variable namespace would be an issue! ;)
... :)
(BTW, I like perl. Like a big brother you just can't stop teasing
"Old man yells at systemd"
I am 8 years old. Some of my little friends say there is no Perl 6. Papa says, "If you see it in Slashdot, it's so." Please tell me the truth, is there a Perl 6?
... it just ends up making Lisp look better.
(jfb)
To spur "enterprise Linux," Big Bang, the distributed two-phase commit.
Short answer: your friends suck.
...
Long answer: learn perl, read "Programming Perl" and you'll know if it sucks YOU or not
ODEM.org Tour (about censorship)
Respectfully, No. In fact, a resounding "No."
Existing, running, production code is mature code, by and large. It works, it's had revisions, people have added little bug fixes here and there, and at very worst it has passed the "live QA department's" BFT. Many eyeballs have seen it. And it's harder to read code, even well-commented code than it is to make new code (that old "easier to plant a garden than take care of a garden" analogy fits in here, I think). So translating existing stuff into new code will probably introduce errors.
I found a good article about Netscape 6 which touches on why rewriting code is usually a bad idea. The article says it better than I can. I especially liked the comments from Lou Montulli (creator of Lynx) about the rewrite which took place for Netscape 6:
If nothing else, improved block structure parsing will probably locate errors you didn't even know existed.Of course, there are times a rewrite is needed. But to decide to do rewrite purely because there are new constructs of a new language (which is essentially what Perl 6 is going to be) seems like a real good way to introduce bugs, not find them. Finding bugs is what good design and QA is for...
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
Additionally, with the parrot back end, the .net implementation will be more tightly integrated.
PS - I predict within 3 years, linux will need to be overhauled since the existing code base is such a mess.
Will there be a mod_parrot that makes mod_perl redundant?
Sticking feathers up your butt does not make you a chicken - Tyler Durden
Didn't Larry proclaim that Ruby is Perl 6? Read about it in: Ruby Weekly News
why would you want to learn any languages with '#' in the name in it anyways?
perl is being rewritten because the people that know it best think it's the best way to go. (try reading perl.com if you're actually interested, they tell you more than you want to know about the why's)
perlgolf: the only place where shorter is better
One of the most interesting things of Parrot is (at least for me), that it is a register based VM, not a stack based one.
So it seems to be really possible to code in Parrot assembler directly, optimize (Perl-) code etc.
ODEM.org Tour (about censorship)
Enter the players. Fair succubus Perl cries out to the scraggly, geeky administrator in his cube...
Perl: Come to me. I'm not a language conducive to horrible, horrible code. I don't tempt system administrators to brute-force huge systems by way of overblown syntax! Really, the shorter and more efficient code makes it _better_ code!
Administrator: I can hear your call! I love your myriad randomly chosen operators! I love your flexibility, it means me and my colleague will never understand eachothers code! I can even pretend to be a 'real programmer' because I'm dabbling in your poorly designed OO features!
Perl: And don't forget the job security! Every Perl programmer thinks he can write good manageable Perl code! It's only the other poor slob who can't, and screw him!
Administrator: Very well. Let us begin writing our financial management systems in perl, our web applications, everything!
You can get the overhaul here.
If you are interested in a more enhanced "bleeding edge" version of Perl,
with much more intelligent design,
look here.
Perl 6 will be painful? What about Perls 1-5?
If it ain't broke, you need more software.
- $foo : A string, number, reference,
...
- $foo[n] : The nth member of @foo (which is different from $foo)
- $foo{key} : The value associated with 'key' in the hash %foo (which, of course, is different from @foo and %foo).
The symbol syntax would help if it was at all consistent. But the rules are so complex and esoteric it's not worth learning them all.People keep saying this, but it just isn't true. There will be a few obvious things that change (like using @foo[0] instead of $foo[0]) and a number of less obvious ones, but a lot of the language will be carried over unchanged. It's just that the discussions by Larry and Damian are focusing on the parts that are undergoing the biggest changes.
There's no point in questioning authority if you aren't going to listen to the answers.
But, you're right. I should have put Python in there somewhere... :)
Starts looking more and more like C++.
Pushin' 'n dealin', shovin' 'n stealin'
mod_perl is NOT slow, not slow by any means at all. If used properly, mod_perl can be about as quick as serving up static content... like the websites of the company I work for...
mod_perl allows you to quickly, and very easily, write custom Apache modules, allowing you to incorporate anything and everything available on CPAN, which is just about the most comprehensive library of... stuff... anywhere.
I've used ASP, seen how java servlets work, fuck AOLserver, and in the end decided to develop a custom solution. Our site is composed of over 200,000 documents, much of it dynamic content now, served up using my custom ASP-ish mod_perl module. On a single server, it performs perfectly and will saturate our network before overloading the server, the bottleneck being our database.
So please, go fuck yourself.
Sticking feathers up your butt does not make you a chicken - Tyler Durden
It wasn't long ago that I bought the Third Version of Programming Perl.. *sigh*..
Oh well, at least with its insistent bad humour I can sit down and pretend it's something Douglas Adams wrote on a bad day.
Keep going guys, in a few years you'll have a real programming language.
go ahead, mod me down, I don't really give a shit.
there's no place like ~
Any language that has a "yada-yada-yada" operator has nothing to worry about.
Phear my l33t homepage.
You mentioned both Perl and VB in one sentence with computer science. You lose.
If I understand the rules correctly... so do you!
I've had this sig for three days.
Could you please explain with few words what Perl has to do with computer science.
As much as C, Fortran, LISP or Smalltalk does I guess. It's just a way to implement an algorithm to solve a problem.
Yep, why else do we collect Karma unless we're going to burn it sometimes. I once posted a comment in the middle of a KDE/Gnome/RMS thread. It spent all day getting ping-ponged back and forth between Funny, Insightful, and Troll depending on the allegiance or sense of humor of the moderators. It ended at +5 Funny, but was definitely worth a karma point or two to watch em' beat on the post all day.
bbh
Are the Apocalypse and Exegesis documents available anywhere, in their entirety, in some format besides HTML?
I would love to be able to print them out to read during the day - the office doesn't give us net access, for the most part, so the HTML-linked version is practically useless to me.
Mark Edwards
Proof of Sanity Forged Uppon Request
Referencing somebody else's text or talking about the rules concerning VB, Perl and CS in one sentence completely legal. Using them to refer to oneself, however, is not.
Go directly to jail, do not pass go, do not collect $200.
Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
As for Joel, his former employer has made itself into the wealthiest software producer in history largely through continuous rewriting of code. Microsoft is famous for releasing an almost entirely new product by time its third revision is out. While I also agree that rewrites can be pointless exercises, it is not prudent to take Joel's argument too far.
Hm, I think I'll agree with you 100% on this. The first language I learned was Perl, and then I decided to move on to C - Big mistake.
Why can't all languages be as nice as Perl?
Good naming of variables, software design, and documentation should be what makes it clear what a variable is, not a symbol prefix that can be easily something other than what you think of first. A well named variable will allow you to make a good guess about how to use it. A variable called "userName" should be a string, "User" should be a class that represents users, and "users" should be an array of User objects.
You mention that you have to go to another file to find the decleration of the variable, no function should span multiple files and strongly typed variable like Java and C++ force you to place the variable type in the function header, decleration, etc. This tells you what the function is (informing/reminding you of paramater and return types as well) and if you haven't read it you really should to prevent altering the intended behavior.
Pre-6 perl does an excellent job of making it easy to write obfuscated scripts by stuffing so many interpretations into one symbol ($foo can be a scalar, refrence(which is a scalar but is not used the same way), or file handle)and having a list of inconsistencies so long that comprehensive documentation is insanely difficult. The language as it stands at perl 5 does little to help understanding of a script, and more to make the task difficult.
jbennetto, your little friends are wrong. They have been affected by the skepticism of a skeptical age. They do not believe except they see. They think that nothing can be which is not comprehensible by their little minds. All minds, jbennetto, whether they be men's or children's, are little. In this great universe of ours, man is a mere insect, an ant, in his intellect as compared with the boundless world about him, as measured by the intelligence capable of grasping the whole of truth and knowledge.
Whatever, I thought it was funny.
-- 'intellectual property' is oxymoronic
I wish Larry would shut his filthy hole about God and stop putting references to Him in everything he writes. Its really fucking annoying.
They think java is the solution to everything. There's more to the world than java. And OO is a cruel joke played on the computing world.
please read this :1 918 9971/sam0203h.htm
http://www.samag.com/documents/s=4075/sam10130
>Still, the funny thing to me is that all this
>Parrot work was born out of an April Fools Joke
>[perl.com] last year.
Parrot was not born out of the joke; only the
"name" Parrot. The VM was born out of a lot
of lessons learned from Perl5.
Because people ask for it; isn't that good
:)
enough? The people that want to write larger,
more complex systems in Perl are the ones
who push the envelope, not the people writing
10 line scriptys.
This is all moot argument, Perl5 is not going
away and will be supported on the Parrot VM.
The second reason it is moot is 90% of the
base constructs aren't changing. If you don't
use OO features now, you'll see less of
the changes. If you DO use Perl OO then
you are probably one of the ones wanting
Perl6.
Thirdly, quite a few of the features are
*new* features that don't break existing
code, like the switch statement and tagging
variables and commutative =~ operator...
These are GOOD things.
Computer Science is an applied science.
:)
Without the languages, its Philosophy.
That short enough?
To all "more like ..." posters : :")
.. and Larry never shamed to tell that. ... if u don't like Perl just use other language. It is free world..
This simply means that Perl can do the job of all those metioned languages
I can say the same about virtualy any language that copied the good perl features..
U still dont get it, right! If you understand atleast a little bit Perl u will know that from the start Perl has copied all good features from other languages
Stop doing simplified comparement