Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Perl Programming

On Perl 5.6 135

bryan schwab writes "Perl 5.6 is in development, here is a list of all the new features" The article is an interview with the "Patch Pumpkin" - one of the guys from ActiveState in charge of putting together the development release. Seems there is a lot planned for the next release.
This discussion has been archived. No new comments can be posted.

On Perl 5.6

Comments Filter:
  • It's entirely possible that part of my code is redundant (and yes, slashdot garbles HTML attributes).

    I was struggling at the time I wrote that to understand regexp, and I haven't felt the need to fix working code, as it has other bottlenecks way more serious than bad pattern-matching.

    On an aside: if the Slashdot maintainers read this, could you please add support for HTML entities (the ones with those funky &'s in them: preview will sort let you but it is broken....


  • Somehow I doubt our friend Larry's ever heard of the "pumping lemma".

    If he's going to do this, why not just support context free grammars?
  • Okay, I retract that. I did point out that I didn't know anything about this :-)
  • Linux is only the kernel. There's nothing strange about saying that Redhat's using Linux 2.2.3 or whatnot.

    To be reading an article on programming languages I'd thought you would have picked up on the symantics of the quote. The quote was "similar to RedHat's Linux where you have 2.2.3" implying that RedHat owns a product called Linux and it is referred to with a version number of 2.2.3. RedHat does have a product named "Offical RedHat Linux" Note the lack of the posessive 's in the product name. It's not "RedHat's Linux" So, he didn't say that "Redhat's using Linux 2.2.3 or whatnot" (which while not incorrect is misleading because your use of 's is not in the possessive sense as it is in the quote from the article).

    In effect, he was tying the version number, which was the only reason to mention either Linux or Redhat to RedHat's product called Linux and not the Linux kernel. This is particularly disturbing because RedHat does not "own" Linux and does not set the version numbers for new versions of Linux.

    This reflects a serious mis-understanding of the Linux movement by the person who made the statement. The fact that:

    1) He is one of the primary developers of perl.
    2) He works for ActiveState.
    3) The goals of the direction of perl seem, IMHO, mis-directed (PPM sucks - what the hell is wrong with compiling modules when it's a programming tool for crying out loud?)

    I don't personally mind ORL's involvement in perl or the "OpenSource" movement in general. I don't particularly trust ActiveState and don't have a great appreciation for their work with perl on Windows (it doesn't compare to perl on Unix as you can't generally download any perl module source code and compile it into your perl installation). Their work with perl on the Windows platform is a classic example of "embrace and extend" if I ever saw one. Not only do they make proprietary system interfaces in the language encouraging the creation of non-portable programs but now they are talking about putting an event loop in the friggin language. How are they going to do that? Is it going to be specific to Windows?

    I'd much rather see an effort to getting the "official" perl back on track and compiling under cygwin for the Windows platform. That it may not have all the Windows proprietary system interfaces but the ActiveState port does not mean much to me, as I try to circumvent the Windows system every chance I get when forced to work on that platform.
    It just doesn't seem right to have to rely on someone else to compile a friggin package for me because I didn't happen to pay Microsoft an outrageous sum of money for their compilers...
  • # given
    $_ = "XXX quux> XXX";
    s///g;
    print "$_\n";
    # will return 'XXX quux> XXX'
    # where as
    $_ = "XXX quux> XXX";
    s///g;
    print "$_\n";
    # will return 'XXX XXX'
    # its not redundant, just different
  • That's what I see from my perspective also. When we start seeing normal modules not being able to be compiled and having to wait for Microsoft^H^H^H^H^H^H^H^H^HActivState to release a binary PPM for our platform of choice then we know it's time to fork the tree and split the language into MS^H^Hperl and "normal" perl...
  • Ack! I see what you mean about /. eating the code! Of course it looked grand in the preview but as soon as I submitted my post it posted the translated form of what I was previewing... real slick.

    that should have looked like:
    # given
    $_ = "XXX <foo bar> quux> XXX";
    s/<.*?>//g;
    print "$_\n";
    # will return 'XXX quux> XXX'
    # where as
    $_ = "XXX <foo bar> quux> XXX";
    s/<.*>//g;
    print "$_\n";
    # will return 'XXX XXX'
    # its not redundant, just different
  • I'm quite sure Larry's heard of the "pumping lemma." Regular expressions as implemented in various programming languages and utilities haven't been true regular expressions in the mathematical sense for quite some time. See Friedl's book for the gory details.

    A regular expression in Perl is a syntax and set of parsing rules, not a mathematical statement about its expressiveness. With embedded Perl code, it's probably equivalent to a Turing machine at this point, which means it already handles more than context-free grammars.

  • Wouldn't that be a more fitting symbol for Caml than for Perl?
    Our wretched species is so made that those who walk on the well-trodden path always throw stones at those who are showing a new road.
  • by Anonymous Coward
    Bye bye Perl! Nice knowing you.

    The beginning of the end has started. This guy holding the patch pumpkin is clueless about computer languages.

    The stuff he is talking about has already been done by several languages; OK maybe not in the middle of a regexp, but that is a minor point.

    "In this case, we're talking about Windows NT..." ie we will "proprietize the protocol" like the Halloween docs say by implementing it on NT in a non-portable fashion. Sure there will be a way to do it under Unix, but it will take longer to finish or will be slower.

    "greater control over warning messages" give me a freaking break! As if the way Perl handles it currently is stopping people from using it? 'Chuck, sorry, but we have to use this other programming language because we can't get the control over warning messages we need.' typical MSFT-style fiddling over details.

    [in perl regexp section]..."something that is not there in any other language" gee, ever heard of LISP? Why do you think people wrote customized readers in LISP, doofus!

    Even some ancient Lisp Machines could look at TCP packets as they came over the wire and despatch them according to certain rules! this is like 10 years ago or more!

    Perl code being executed based on whether something is matched in a regexp is a new feature of 5.6?! Umm, I don't think so.

    Threading model::don't you think it might be modified in ways that benefit Win32 platforms but are creaky under Unix? Or am I just paranoid?

    Cordially

    Patrick Giagnocavo
    a222@redrose.net
  • Thats all....sorry...
  • The change will allow us to represent version numbers as a sequence of three numbers instead of as a single floating point number. This is similar to Red Hat's Linux where you have 2.2.3.
    ---
    Put Hemos through English 101!
  • by Axe ( 11122 )
    Stallman gonna love it ;)
    ------------
    Got GNU?



  • Is it me or does the new perl.com look like the love child of Slashdot & O'Reilly? As if one swallowed the other and you end up with a baby blue version of Slashdot or something? It's not bad -- Slashdot's great, O'Reilly's great, I shouldn't have any complaints -- there are poorer online role models out there, but... ...it feels derivative to me. I think perl.com should set a better example than this, something more innovative & bold.

    Maybe that's just me though.



  • Perl runs both under UNIX and NT.... not like I like NT or anything... :)
  • This guy is the patch pumpkin? Does that mean he gets passed around from developer to developer? Don't they mean, he's the patch pumpking [perl.org]?

    Also, the guy worries me. He works for ActiveState. Blech. Nothing concrete, I'm not on the perl mailing lists, so I'm probably wrong, but that seems a bit .. scary.

  • I think you'll find that either the Parse::RecDescent [cpan.org] module or the Parse:Yapp [cpan.org] module will do what you want. They're really very neat, although I've only ever spent much time reading up on the first of them.
  • Once you get more experience in the industry, you'll realize that these "fakes" and "frauds" are a fact of life and they will always be around. Nonetheless you've still got a job to do -- and chances are good that if you're managing a team, you'll have a few morons to manage. Driving them out of town won't bring your project in on time, but helping them out and giving them a chance will.

  • Also, the guy worries me. He works for ActiveState. Blech.

    Sarathy's involvement with Perl well pre-dates his employ at ActiveState. His working at ActiveState is what led to the two very diverse Win32 ports of Perl to combine. If it seems as though there is undue amount of attention being spent on WinNT/95/98 versions of Perl, it's because the others are for the most part stable. And the internal work being done is to the benefit of the Perl core, not just one port or the other.

    rjray
  • 3) The goals of the direction of perl seem, IMHO, mis-directed (PPM sucks - what the hell is wrong with compiling modules when it's a programming tool for crying out loud?)
    That's great on unices. I don't want to get into VC++, prefering to work in Perl. Even those who put linux advocacy ahead of Perl should be able to relate to that.
    Your "embrace and extend" paranoia is misplaced. Perl will at some point be included in the Windows distributions. The open source nature of Perl will open that OS. More important, having a modern and efficient language on Win will improve it immensely.
    So don't worry about what Micros~1 is going to do to Perl. But glad at what Perl is going to do for the majority, those who use the Win OS.

  • I can now pretend to be intelligent and search and discard seperate matched tags? Lots and lots of cool implications for HTML, CGI, and XML developers there.
    Yes yes yes!
    and mundane things like find the missing quote the misplaced braces will be much easier.
    doing replaces for programming Code will be much easier and we may be able to get started on a regex classification engine.

  • It may have existed "for a couple of years", but the original port of Perl 5 to Win32 was still funded by Microsoft. They hired, who was it, hip.com I believe. The port sucked for many years, but it was there. I believe the port of Perl 4 was done independently, but I don't remember.

    I'm afraid that I must agree with some of the others here--Perl is a cornerstone of free software, and this is a direct attempt by Microsoft to "take it over". We should all be prepared to execute a code fork. I'll bet Larry Wall will lead the charge, if it comes to that--no fool nor Microsoft lover he.

  • Driving them out of town won't bring your project in on time, but helping them out and giving them a chance will.

    I completely disagree. Whatever they do, harm is greater than whatever useful they might produce, and the damage, caused by hidden bugs and unmanageable code can haunt projects for years. Most of those people are impossible to "fix" -- they are in the industry for money only and will never miss a chance to get enough credit for others' work to remain getting their money while producing nothing. If there will be a way to weed them out efficiently, companies that will be able to do that will benefit from it even if all those people will end up paid by those companies for the rest of their lives -- because in that case those people won't be able to screw up things like they do now.

  • PPM sucks - what the hell is wrong with compiling modules when it's a programming tool for crying out loud?

    Dude, PPM RULES! I can download and install a Perl module in SECONDS. If I had to compile it on my NT server machine I would:

    a) have to get a C compiler
    b) take the time to learn to use the C compiler
    c) get the code and makefiles and complile it.

    Not all Perl programmer are C programmer, too. Many of us are web designers, forced to use NT/IIS instead of Linux/Apache, and Perl saves us our sanity.


    I don't particularly trust ActiveState and don't have a great appreciation for their work with perl on Windows (it doesn't compare to perl on Unix as you can't generally download any perl module source code and compile it into your perl installation).

    That's why PPM rules! Sheesh!


    -geekd
  • by Tom Christiansen ( 54829 ) <tchrist@perl.com> on Wednesday July 21, 1999 @05:46PM (#1791227) Homepage
    Once again, the rabble rousing has begun. For those of you who don't know me, I completely assure you that you'll never find anyone more anti-MS than me -- although many of you are at the same level. There is a FAQ [activestate.com] that explains why your fears of MS involvement with Perl are unfounded. You could also search the perl5-porters mailing list. It's on DejaNews under the newsgroup perl.* (I forget exactly) and also has its own search archive [mpe.mpg.de]. Search for articles by Sarathy (that's gsar) about this.

    If you were on p5p, I'm quite certain you wouldn't be joining the other Illuminati wannabes with these unsubstantiated delusions of evil conspiracies and take-overs. Please try to simmer down, and do a little research. You'll see that all is well. Or talk to one of us directly if you'd prefer.

  • Which is of course exactly the behaviour that I decided I wanted! I was trying to make reasonable assumptions about what the supplied code would look like. Assuming > was only used with a preceding < seemed OK....

    Also, my job title at the time was PC Development/Support, which seemed to mean all the fun of being a developer, with all the hassle of doing end-user support.:
    Teaching yourself regexp (with the help of the camel book, thanks to Larry, Tom, and Randal) whilst being interrupted for trivia at 10 minute intervals is an overly sadistic torture.As for the problem with the /. engine (this is notes for rob+co, it'll probably get formulated an email later on): If you enter HTML attributes into a message box for posting, hitting preview resolves those attributes into single characters, but doesn't load the original code back into the text box. Thus, discussions using the < and & characters have to be done without the benefit of preview (especially some perl and certainly HTML).

    Just my 4c worth (inflation adjusted).

  • Oh those evil dastardly fiends, "taking over" by porting it to their platform. And we all know that Perl never had any platform-specific extension modules available until the Supervillians snuck in and started trying to poison it, nosirree.

    You are truly sad, but thankfully irrelevant. I'm coming to realize that one of the real strengths of free software that it not only survives the fickle demands of the marketplace, but also raving paranoid delusional zealots who feel the product needs or demands their evangelism.
  • http://www.oreilly.com/catalog/regex/ [oreilly.com] is definitely a handy book to have if you're getting into regexes.

    For something like parsing html, you'll actually want to look into \G, and walk through the text.

    'perldoc perlre' is your friend. ;)

  • There was a "Perl Town Hall" at the end of last years Perl Conference [oreilly.com]. During the question and answer session, perl users griped about being at the mercy of evil sysadmins who refused to install new versions of Perl solely based on the version of the product. Their sysadmins would reason, "The version number has increased by only one-thousandth of a point. Such an insignificant upgrade is not worthy of my precious sysadmin time!" (My sysadmins also subscribe to this foolish belief. But thanks to linux, I now have my own box where I can do what I please. But that's another story.)

    Anyway, the panel (which consisted of Larry Wall, Chip S, brian d foy, Tim Bunce, Dick Hardt, Gurusamy Sarathy, Tim O'Reilly, and other people whom I can't remember right now) agreed that new versions of Perl should indeed have bigger version numbers -- something which more accurately represents the significance of the release. During this "town hall", they promised to do something about it. It looks like they finally have. It's good to see the change.

    Where I work, I have an additional problem. I'm surrounded by people who HAVE been exposed to Perl. They, however, have dismissed Perl as a non-viable solution. Why? Well, their last exposure to Perl was back in the pre-4.0 days. Even though Perl has grown considerbly since then, they've never come back to take a second look and see the improvements. They've dismissed it forever. (Well, perhaps not forever, but it would take quite a bit to get them to give Perl another chance.)

    So what would get these people to come back for another look? A new (much needed) edition of "Programming Perl" [oreilly.com]? A new primary version number -- Perl 6.0? Or maybe a new name altogether? I'm optimistic about Topaz [oreilly.com]. Even if Topaz has the same functionality as Perl, I believe the new name will attract some much-deserved attention. But that's just my very humble opinion.

  • Hi Tom, I know you from your work and respect you highly. But, you have to admit, to let MS issue press releases with ActiveState, to have them state they are 'helping' Perl, to let the 'point man' work for the company who just got infused with big MS-dollars has to be unsettling those who are not in the 'know'.

    History tells us they will embrace and extend. Can you tell me that you will 100% be here in 5 years along with the current anti-MS sentiment to fully defend Perl? Probably not. Once those who have 'been there done that' have gone away, MS and their infiltrators will be the only ones standing.
    They will be standing with $$$ in the pockets.

    You see, it is all about money (or drugs). MS has the *huge* financial backing to undermine Perl.

    Not today? Maybe not. In six months? Maybe not, but they will be much closer. In one year, maybe not, but 1/2 way there.

    'I haCk b/c I loVe It' will only last so long. what you say now won't hold up for long.

    Just mark my words.

    Sorry,

    Jim

    PS - I'll bet you $50 that the name "Tom Christian" is on some big 'ToDo' list up in Seattle.
  • Extending Perl till its bloated beyond all belief, heh, thats what CPAN is for.

    Um, right, a downloadable set of _modules_ that are available seperate from the main PERL package is bloat. I guess C must be the most bloated language of all considering how many libraries have been written with it...
  • How is porting perl an attempt to "take it over"? An increase in the platform support for Perl is definitely a Good Thing (tm).
  • by gnat ( 1960 ) on Wednesday July 21, 1999 @07:00PM (#1791238)
    0) Tsk tsk on those of you who believe everything Microsoft say. When they said they were paying Activestate to make Perl work better on NT, you forgot to translate that back into honest English: they're paying Activestate to implement fork() on NT so that NT can become more like Unix (a slower buggier more crashprone Unix). Yes, Microsoft for "bring up to baseline of minimum acceptable functionality" is "make it work better". Another way of saying this is "make NT suck less for Perl users". Perl is all about making your OS suck less.

    1) Perl's version numbering is changing because major changes in functionality (e.g., the introduction of threads and a compiler) were hidden in the thousands decimal point of the version number. Hopefully this new numbering system will make it more obvious that things have changed. It's a small cosmetic change, not technical, but it's something people wanted.

    2) Lexical warnings. Perl's philosophy is "there's more than one way to do it". With warnings as they were, there were only two ways to do it: all warnings enabled, no warnings enabled. Now you can say "I know it looks to the compiler as though I only use this variable once, but don't issue a warning". If you don't see yourself wanting to use it, don't panic--unless you explicitly use the new warning doodads, your programs will emit as few or as many warnings as before.

    3) Sarathy is a smart smart guy. He's not an NT flack. He's a smart Unix guy who happens to be employed at Activestate because that's about the only place a guy can be hired to work on the Perl internals. He does far more work on the Perl core to benefit everyone than he does Windoze-specific work. If you're going to be at the Perl+Apache+Linux+... uberconference that O'Reilly are organizing, I urge you to seek him out (he won't be hard to find) and have a talk about your concerns. He'll be the first to agree that NT sucks hard.

    4) Unicode reading (via UTF8) is implemented as an add-on module, so that only the part of your program that needs to know about Unicode takes any speed hit. It's also simple to turn programs that used to read ASCII text into programs that read Unicode text: just add "use utf8" at the top. We don't anticipate slowdowns anything like those that one Slashdot reader reported in Tcl.

    5) The Unicode support only extends to reading and processing text, not to Perl's interaction with the system (filenames, error messages, etc.) I believe that Windows deals with UTF in the same way that many Unices deal with long files: a separate set of OS functions are provided. The Unicodification of Perl is being extended to use these parallel functions, if present. Generalizing this is hard because, like Unix and long files, everyone does it different. That doesn't mean that Sarathy's work precludes this happening for any other operating systems that provide Unicode support like this. In fact, having the first work done will make support for other operating systems easier. And the best bit is that Microsoft are paying for it.

    I don't know about you, but I'm all for fleecing Uncle Bill.

    Nat
  • Perhaps they are. But consider that Perl has always been utterly Unix-specific in the past -- most Perlscripts call out to Unix commands to do basic things.

    I prefer Unix to Windows, but that doesn't make me think that being unix-specific is more holy than being windows-specific.

    Perhaps after the Windows people slam Perl around a while, and the Unix people grab it back and slam it around, they'll all come to their senses and simply write non-platform-specific code.

    Or just use Python, which has been platform independant since day one. Not to mention looking MUCH more sexy, and doing everything aside from text parsing more tersely.

    -Billy
  • Perl's expressions are far from regular. They are NP-Complete [plover.com].
    --
    Man is most nearly himself when he achieves the seriousness of a child at play.
  • What are you talking about ? Slashdot is red, white and blue on a black background. Slash also has FAR more usability than most web-sites.
  • Now I won't have any reason at all to write C code. I'll hate to see that skill that saw me through so many years of trial and tribulation finally fade away. But in truth, handling balanced tags (quotes as well as HTML tags) was all I've used it for in the recent past.
  • 0) Tsk tsk on those of you who believe everything Microsoft say. When they said they were
    paying Activestate to make Perl work better on NT, you forgot to translate that back into
    honest English: they're paying Activestate to implement fork() on NT so that NT can become
    more like Unix (a slower buggier more crashprone Unix). Yes, Microsoft for "bring up to
    baseline of minimum acceptable functionality" is "make it work better". Another way of saying
    this is "make NT suck less for Perl users". Perl is all about making your OS suck less.


    Yeah, yea. Don't you see? It is the the first step. Sure they are Paying--that is what it all about. Sure, so NT becomes more like UNIX...you nailed it on that one.


    Sure, make DHTML 'work better'. Make 'Java' work better. 'Decommotize' [sic] common protocols so they work better.


    Come on, you *cannot* ignore history.


    Do not be fooled. It is almost too late.


    Jim

  • There are more than 26 letters out there, dude. Do you know any other languages? Did you try to work with them? Ever got pissed encountering 23 ways to encode/screw up text you try to read?

    Oh, piss off.

    Did he say, "Screw them thar other furriner tongues, speak American or dah!" No. He said "It wiped out performance big time. People
    are very unhappy."

    So are you saying it's a typically arrogant American attitude to want software to run with great performance? New features are great, even better more human language support, but why accept a performance hit?
  • Why, might I ask, would the folks working on perl want to start numbering their releases the same way kernels (and lots of other software product releases are numbered?

    That's standardization, something which I think the spirit of Linux, /., open source, FSF, etc... don't encompass. Who wants to be like everybody else? Not me!
  • ... There are more than 26 letters out there, dude. Do you know any other languages? Did you try to work with them? Ever got pissed encountering 23 ways to encode/screw up text you try to read?
  • So, in other words, you have not researched this, and you are ignorant, and we should pay no attention to you.
  • Don't be a silly person. I believe Sarathy is more to be trusted than anyone I've known to involved with Perl (aside from Larry himself).

    But then again, even though I only use Microsoft products for about an hour a week, I am on ActiveState's payroll too, so I guess I am not to be trusted, either.
  • > I don't know about you, but I'm all for fleecing Uncle Bill.

    Tell me about it. The plan is to let MS pay AS to develop an in-process fork, and then use that code (which will be under the AL/GPL) to bring a fork to MacPerl (and maybe VMS, too).

    Sounds good to me.
  • From reading the press releases, the Gates Foundation doesn't fund any libraries or any other charitable organizations. It provides gives of Microsoft products, services, and hardware to run them. It sounds a lot more like making damn sure that these organizations are locked into Microsoft-only IT solutions and increasing long term sales.

  • I believe the appropriate response to a vitriolic diatribe such as yours is "Bite me." Doesn't make much sense or add anything to the discussion, but neither did your personal attacks. I see by a quick review of your posting history here that you tend to be a bit testy to everyone, not just me, so I guess I needn't take it personally.
  • Wow, the _complete_ Win32 API!? Seriously, if you can master C++ and the Win32 API, Perl is a piece of cake. Go out and buy O'Reilly's "Programming Perl" 2nd Edition and you'll have it down in a week. Perl is "hellacool" like that.
  • Well, this isn't a port--the port already exists. I agree (to an extent) that having a program on more platforms makes it stronger, although I am of the school that asserts that having a program available for Windows tends to weaken that program on free platforms, and tends to weaken the free platforms themselves. But that's a whole separate debate. I'm basing my comment on two facts: (1) Microsoft seems to have come to think of free software as a threat, and (2) Microsoft has never failed to respond to a threat promptly and vigorously, and frequently in an underhanded manner.

    It's something like having your avowed enemy build a nice brand new house next to yours. Oh, say the neighbors, it's so good for the property values! Wouldn't you be suspicious?

    But I will admit, having seen Tom C.'s assurances that there is nothing up here, I am less worried for now.

    However, if you think there won't be an attack by Microsoft, you are deluding yourself.

  • I must apologize to you for my snappish response. It is not my style, and I fear I let the heat of the moment get the better of me. My comments tell more about me than about you, as do your own of you. Please, feel free to impugn my character in the strongest possible terms--I can take it.

    I make no apologies, however, for being suspicious of Microsoft's motivations. I do believe, having now read Mr. Christiansen's assurance, that this is not an attack by Microsoft, at least not yet. There will be an attack, but apparently this isn't it. So sorry for having gotten your dander up.

    In future, however, it might behoove you to know a bit more about those you insult. Just in general, as it were.

  • Well, perhaps concentrate on making Perl better rather than worrying about what Microsoft does.

    As for the porting to Windows, that shows the weakness of the "free" operating systems. If they are weakened by a program being ported to Windows, it means they aren't very strong on their own merits, just by having some software Windows doesn't have. If that's their only strength, they are doomed to failure, as it will all eventually be ported to Windows.
  • I find this really sad. Years, I've fought against this horrible naive idea that s/// would remove HTML tags. Even clueless Netscape programmers have left such naive parsing behind them years ago. s/// removes to much, and it removes to little, and only sometimes it happens to work out. There are decent parsing modules out there (well, they don't get it all right, but neither do browsers), the FAQ has been warning against s/// for years.

    I don't believe any regex featurs are going to help you. If you use s///, you're just way to naive. You should step away from programming - go play quake or something like that.

    Abigail

  • Java is not that close to C++, semantically. Among other aspects,

    * C and C++ allow pointers, including function pointers. This allows, say, saner GUI development where you don't need classes willy-nilly all over the place. I'll write XForms applications far, far faster than an equivalent Java GUI, partly because I can reuse the same callback with different arguments, w/o messing with a class hierarchy. You can also simulate some higher-order functions this way, although it's not terribly pleasant.

    * Java *forces* a class hierarchy. It does allow interfaces, though, which are a tad saner than frequent usage of C++-style multiple inheritance.

    * Java's type system is stronger than C/C++, where if I feel like it, I can cast a pointer to an object as a (char *), and that to a pointer of a completely unrelated structure. And so forth.
  • In fact, it might be a bit smaller. Anyone who's used it for any length of time should be able to see that. The number of language constructs is small, as are the number of keywords and operators. And it runs about as fast as Perl or Python, especially for non-graphical stuff.

    The size of the standard APIs included with Java is large, but that doesn't mean anything. It's akin to saying C is a big slow language because of all the libraries, many of which may not be optimized for speed.

    And the fact that a subset of standard Java fits into PalmPilots should be a clue that the language itself isn't as big and bloated as you think.

    Just doing my part to put an end to language bigot FUD.

  • Uhm, to me, that sounds like saying "eggs aren't fruit - they are white". "Regular expressions", in the traditional sense, describe regular languages. NP-completeness refers to a certain class of problems for which no "fast" solution is known. What I proved was that matching a regular expression against a string can be an NP-complete problem. And while the proof is based on the same property as why perl regexes aren't "regular" (the backreferencing), one doesn't follow from the other.

    Up till 5.005, for instance, perl regexes couldn't match a balanced parenthesis string. However, the language consisting of balanced parenthesis strings, is recognized by a PDA. And it doesn't take super linear time to do the parsing.

    Am I making any sense?

    Abigail

  • A good Language is more powerful than an OS.

    Wrong! What about Java? MS's version of Java would be a non-threat had it NOT been bundled with millions of copies of Win98.
  • your fears of MS involvement with Perl are unfounded.
    Right!
    Perl on Windows will make Miscros~1 OSs better, more useable, more reliable and at least we'll have some way to work around the limitations.
    A good Language is more powerful than an OS.


  • Dude, PPM RULES! I can download and install a Perl module in SECONDS. If I had to compile it on my NT server machine I would:

    a) have to get a C compiler
    b) take the time to learn to use the C compiler
    c) get the code and makefiles and complile it.


    Really? I run a variety of Unix, and never had to learn how to use the C compiler:
    $ perl Makefile.PL
    $ make && make test && make install

    Of course I'm old fashioned, and doing it the hard(!) way. Lotsa folks just do:

    $ perl -MCPAN -e shell
    $ install distribution_file

  • > I don't believe any regex featurs are going to help you. If you use s///, you're just way to
    > naive. You should step away from programming - go play quake or something like that.

    What an unbelievably arrogant statement! I'm really happy for you that you were *born* with an ingrained knowledge of regular expression syntax, but some people might actually have to *learn* how to use them.

    Perhaps instead of casually dismissing any would-be Perl-er from learning the language since they can't grok s/// yet, how about explaining *why* using it for HTML tags is (in your opinion) a bad idea.

    By the way, for some circumstances where you know you'll be parsing a web page in a certain format, s/// can work just fine thank you very much (my success with it proves that).

    Sheesh.

  • You shouldn't have to "get into VC++. You should be able to install cygwin (a Free product) and do a

    perl -MCPAN -e shell
    install module

    like all other sane people.

    I have no problem if perl is put in the Windows "distributions" (that was funny :-), but I would have a problem if the main maintainers of the language started to leave the Unix ports behind and changed it into a mainly Windows product with Unix ports instead of a mainly Unix product with a Windows port. (See how that works, a Unix product with one Windows port or a Windows product with multiple Unix ports?)

    If you trust Microsoft and their intentions then you're worse off that I thought...
  • And [Java] runs about as fast as Perl or Python, especially for non-graphical stuff.
    There aren't many numbers out there on this, which leaves most such statements subjective, anecdotal, or at best, irreproducible. That's too bad. It would be nice to have some real numbers.

    One place where you can read more about this is in Timing Trials, or, the Trials of Timing: Experiments with Scripting and User-Interface Languages [bell-labs.com], a white paper by Brian Kernighan and Christopher Van Wyk.

    Another interesting metric is taken from The Practice of Programming [bell-labs.com], by Brian Kernighan and Rob Pike (1999). It is difficult to reproduce the table here, because slashdot doesn't permit tables, preformatted tags, xmp tags, or even nonbreaking spaces. Sigh. (And no, this feature lack has nothing to do with Perl. They just chose for it to work this way.) I will try to uses hyphens instead of spaces, but no promises.

    PLATFORM--------250mhz Irix-----400mhx pII MS---line count

    C---------------0.36 sec--------0.30 sec--------150
    Java------------4.9-------------9.2-------------10 5
    C++/STL/deque---2.6------------11.2--------------7 0
    C++/STL/list----1.7-------------1.5--------------7 0
    Awk-------------2.2-------------2.1--------------2 0
    Perl------------1.8-------------1.0--------------1 8

    You'll have to read their analysis of these data for more explanation. I should point out that the STL obviously has a bug under Microsoft's version of the deque.

    But this really should call into question the speed claims of the Java people. And it's my understanding that this benchmark did use the fabled JIT tech. It was a Markov chain generator, by the way.

  • Exactly. That's what pisses me off. The fact that I now have to either

    A) purchase Visual C from Microsoft to compile any module I want

    or

    B) Beg ActiveState to port a module for me.

    They seem to indicate that they are perfectly willing to port any modules and provide a PPM but it appears that they would not be so willing if there are any problems (compile fails, etc)...
  • by arthurs_sidekick ( 41708 ) on Wednesday July 21, 1999 @02:28PM (#1791278) Homepage

    If it accurately reflected the language, then the site would be pretty ugly. It would, however, probably find a way to bake your bread online and make you a sandwich too; there would be modules for condiments and ...

    whoops, shouldn't post when I'm hungry.

  • SNIP

    the change will allow us to represent version numbers as a sequence of three numbers instead of as a single floating point number. This is similar to Red Hat's Linux where you have 2.2.3.

    END SNIP

    I assume he's talkign about the kernel number (i've never seen redhat 2.2.3). That said, when did it become redhat's kernel? Horrible use of words IMHO
  • As far as casual programmers like myself go, I really appreciate a numbering system that's more "industry standard." I mean, sticking a couple of decimal places out in front of a major revision number is pretty confusing for those of us who can't keep up. Until I read this piece, I'd though 5.005 was only marginally different from 5.004. (Raster, Mandrake: if you're reading this -- why is E still at .16? Are you planning 83 more releases between now and the one where it's finally ready?)

    Now, if they'd add support for *irregular* expressions, that's something I could really go for; programmin' Yoda-style!

  • Speaking as a perl developer I can only be very happy about increasing features in the regexp code.

    Where previously I had to settle for using something like s/<.*?>//g; to discard all tags, I can now pretend to be intelligent and search and discard seperate matched tags? Lots and lots of cool implications for HTML, CGI, and XML developers there.

    Good thinking guys!

  • But its a simpler scheme. 5.6.1 is far easier on the eye than 5.006_1 or whatever the hell their arse about face scheme currently uses. I think its a damn fine idea.
  • But that wasn't what was written. RedHat do have a product - a Linux distribution - but the last version numbers of that were 5.1, 5.2 and 6.0, unless they have a new release out.

    Unless one is careful, one may end up with the confusing version numbering that Microsoft use. :-)

  • What's so bloated about Java? People have decent subsets of Java running in well under 1 meg of memory. Or are you talking about Sun's JDK?

    *shrug* Once I get my copy of the Python reference book from Amazon UK, I'll probably ditch Perl for any development anyway... :-)
  • by Tom Christiansen ( 54829 ) <tchrist@perl.com> on Wednesday July 21, 1999 @11:53PM (#1791289) Homepage
    multi threading though? Why?
    Mostly because due to the horrible botch that Microsoft has made of processes, without threading, the Prisoners of Bill have no possibility of anything resembling real multitasking.

    Certainly there exists a class of problems that lends itself to more than one PC (program counter; it means program counter damn it) executing simultaneously in the same text and data. Personally, I prefer everything unshared unless I say otherwise, not the other way around.

    But it's pretty scary stuff for all but the most rigorous of seasoned programmers. To my mind, handing a script kiddie multithreading is like handing a six year old a loaded Uzi. That's not to say that in the hands of a trained professional, these aren't useful. But in the wrong hands, they're more like a sneaky murder-suicide device.

    It's getting a bit dated, and certainly carries its own agenda, but several years ago, John Ousterhout gave a talk on Why Threads Are A Bad Idea (for most purposes) [scriptics.com] that you might like to check out.

    If you're curious about threading in Perl, the best place to start is probably the perlthrtut [perl.com] manpage. Some low-level documentation [perl.com] is also available.

    I'll be giving a half-day talk on multitasking (both forking processes and spawning threads) in August at the Perl Conference in Monterey. I've got about 100 slides for 3 hours of talk, which should be, um, brisk. :-)

    "In short, just as the Multics mentality of careful access controls shows up throughout Unix, the cretinous CP/M mentality of uncontrolled havoc shows up in DOS and all its mutant children." --tchrist
  • Well, I'm ready not to have to worry about porting Perl scripts to Windows... When fork(), fcntl(), and other core functions are finally unified programmers will all have an easier time of it.

    "Have you ever just sat and stared at it? Marvelled at it's beauty? Billions of people, all going about their lives..." -- The Matrix, Agent Smith

  • ... will probably show how much faster perl ist on NT... using that threading stuff that is optimized for NT only, but no other person would have very much use for..

    i think what we see here is the beginning of "embrace & extend".

    greetings from vienna.

    mond.
  • She (he?) did. s///g tends to either take too much out, or leave too much in. It's better to use one of the modules that parse HTML instead of trying to reinvent the wheel in every program you write that deals with HTML. If the modules don't do something you would like, contribute and send in a patch.

    Sheesh indeed!
  • "...they're paying Activestate to implement fork() on NT so that NT can become more like Unix (a slower buggier more crashprone Unix)."
    You make it sound like it's a bad thing. I have to use NT at work, and anything that anyone does to make it better is good.


    If you're going to apply standards to people, at least do it consistently. Open source development is good, whether it's on Linux or NT. I don't hear jeers when people add features to Perl to get around the incompatibilities of different flavours of Unix, or to prevent qsort() from crashing. But add a feature to the NT version of Perl, and you risk being stormed by a mob of angry students.

  • WHat are you smoking? Open Source implementing *open standards* is one of the mantras of the whole movement.

    You can be as rebel, rebel as you like, but you still have to use HTTP if you want to make a web browser.

  • I think you have the logo confused with chemical dependence.
  • Yes but there is one important fact that you seem to overlook.

    Unix "specific" programs and interfaces are available for Windows. You can get cygwin and compile just about any Unix "specific" program that is called from within a perl program.

    Windows "specific" features that are being put in perl are truely "specific." You can't, nor would anyone want to, port Windows "specific" API's to Unix.

    Perl programs which contain Unix "specific" APIs can therefore be relatively easily ported to the Windows platform. The only exceptions would be when you are writing a program to do a truely Unix "specific" task, such as working with the /etc/passwd file or something.

    Perl programs which contain Windows "specific" APIs generally CAN'T be ported to Unix. This is usually the case even when the task at hand is not overly Windows "specific."
  • The three-part version number scheme is easier to understand, since the significant of the changes can be expressed in which part you decide to increment. Besides, the Mac and Windows versioning schemes have done this for a while.
  • Yeah, yea. Don't you see? It is the the first step. Sure they are Paying--that is what it all about. Sure, so NT becomes...

    Perl is perl. The source is open. If MS wants to make "Visual Perl", they can. If *you* want to make Visual Perl, you can.

    Java was a closed source attempt to topple M$. It has failed so far. Perl doesn't have that limitation. Come on, you *cannot* ignore history.

    Sendmail has been around since 1981. Microsoft could have simply repackaged it (in fact, there is a sendmail win32 port somewhere on the M$ site. I forget where). Instead, we have been inflicted with Exchange.

    Open source is the M$ killer. It goes against every Mr. Gates believe about business and computers. If his company choose to finance Perl, there is no harm to Perl. VB, on the other hand, might take a (small) hit. Happy Perling.

  • It all gets resolved eventually, but it takes time and it can take quite a bit of work to transition to a new version of software. Even the smallest changes affect someone, in some program. And for sure, the sysadmin is going to get the flames when someone else's program breaks with the new version!

    And don't forget, it could be worse than flames.. I am not going to risk my job so you can play with whizbang new features, unless I want to play with them myself..
  • ...the needs of Windows-specific programming are slowly taking over the development of perl. Not good in my book.
  • Funding to port Perl to Windows? AFAIK, all MS did was to provided information and help to make the existing Win32 port of Perl work better on Windows. The port had existed for a couple of years or so by then.

    Chris
    mtnbkr@mindspring.com
  • You can look up information on the conference [oreilly.com] on the web. It's at the end of August in Monterey, CA.
  • .*? isn't actually redundant, its just the less greedy form of .*

    but yeah, as if the regex syntax wasn't hairy enough already...

    You know we already have languages specifically for parsing grammars. Extending Perl till its bloated beyond all belief, heh, thats what CPAN is for.
  • ...for the same reason it has a competitor to Jini called Millenium: they've got a million hedge projects. It costs them next to nothing, and it gives them an in if they decide they need it. That leaves the possibility of 'embracing and extending' perl, but doesn't guarantee it at all.

    Personally, I doubt they'll bother trying to colonize Perl, since Perl is competitive only with Visual Basic, which isn't threatened at all, given its penetration via Microsoft Office. There's no perceived threat from Perl the way there was with Java, and while they're ponying up some helpful development cash, they get some positive PR from supporting it.

    In other words, this is part of M$'s diversified portfolio of technologies that they keep around, of which maybe 1-5% actually pop on Billy's radar and get the full behemoth treatment. Fear at this point is more than unreasonable, it's self-deluding.

  • There was a rather interesting bit in the book "Hackers" (Steven Levy, 1994) about Bill and his version of (IIRC) BASIC for the Altair. It seems he wrote it, and tried to sell it for ~$80. In the end, everybody just made a copy from someone else's copy (as they did with all of their hacks) without paying Bill. This could have been the starting point of Bill's dislike of open-source, and the attitudes it inspires.
  • Did they compile the Java to native code? If not, what VM and JIT compiler did they use? This will affect the results a lot.
  • I only yawningly respond to your pitiful AC remark by pointing out that the appropriate verb is "write", not "talk".

    Oh, and RedHat still don't have a product with a version number of 2.2.3.

  • For a Microsoft project, I think I chose the correct spelling.
  • clarification:
    its bloat in that there are umpteen packages which all prescribe to do something slightly different yet unfortunately some tend to tromple onto others leading to redundancy. Its a natural biproduct of having a big hacker base. Its not really all bad, and its certainly better than having no choice at all.
  • New features are great, even better more human language support, but why accept a performance hit?
    Because in such a case transparent and uniform multilanguage support is far more important. You would understand that and withhold your "piss off" comments if you ever tried to work with languages beyond ASCII table. But most americans do not get it, that's what I called arrogance.
  • Yeah, pre-date, post-date, whatever.
    Are you saying we should trust these people?
    Are you saying we should trust anyone funded by MS?

    I'm saying that Sarathy's work on Perl, and his trustworthiness, have been sufficiently proven to my satisfaction. This is based on having actually dealt with the guy on a personal level, and from his history of contribution to Perl 5. Not from some hastily-drawn conclusions based on a single interview.

    But then, what do I know? I've only been on the perl5 mailing list for about 3-4 years. I make my living writing Perl code. I've been a primarily-Perl developer for over 7 years. And I've never taken a dime from MS. In fact, I've never even bought any MS software products (though I've used them at work for inter-office mail and such).

    rjray

  • BTW, did your example get mangled by the HTML parser or what? ".*?" is redundant...

    .*? is a non-greedy match

  • I'm semi up to speed in Perl, but haven't yet done any serious parsing work with it. Are there any modules/extensions that give you yacc/lex functionality in a true-to-perl terse style? I don't wanna go back to yacc if I can do it in perl!
  • That's a step backwards IMHO...people are getting terribly carried away with version numbers. I like the idea of a simple floating point number - this X.Y.Zfoobar2-pl1-yadda.yadda.yadda stuff is getting out of hand.

    Barry
  • You may be able to use trn in the near future. I've had a news server for Slash [zevils.com] out there for a while now. Rob knows about it and plans to use it [slashdot.org], but that page has said "soon" for a while now.
  • by Anonymous Coward
    The Perl Symbol makes me won't to smoke some cigs.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...