Slashdot Mirror


Perl Data Language 2.4.10 released

First time accepted submitter tonique writes "Perl Data Language (PDL) 2.4.10 has been released. Highlights of the new release are automatic multi-thread support, support for data structures larger than 2 GB and POSIX threads support. Also available is the first draft of the new PDL book. PDL is especially suitable for scientists. For those not in the know, 'PDL gives standard Perl the ability to compactly store and speedily manipulate the large N-dimensional data arrays which are the bread and butter of scientific computing.' Commercial languages used for the same purpose include MATLAB and IDL."

71 of 94 comments (clear)

  1. Re:first post? by bill_mcgonigle · · Score: 1

    Oh, don't worry - people who've never spent my time coding Perl will be by to bash sigils any time now.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  2. Quiz by fph+il+quozientatore · · Score: 5, Funny

    Fill in the missing word.
    PDL: the computational power of Matlab, octave, IDL and NumPy with the __________ of Perl!

    --
    My first program:

    Hell Segmentation fault

    1. Re:Quiz by SJHillman · · Score: 3, Funny

      flying purple unicorns

    2. Re:Quiz by Bill,+Shooter+of+Bul · · Score: 1

      Tao?
      Awesomeablity?
      Parrot-eske?
      Tim Toady?

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    3. Re:Quiz by mitashki · · Score: 3, Insightful

      LAZYNESS the missing word

      --
      "When all you have is a hammer, everything starts looking like a nail."
    4. Re:Quiz by somersault · · Score: 1

      Haha :) Work smarter, not harder!

      PS.. it's spelled laziness.

      --
      which is totally what she said
    5. Re:Quiz by mitashki · · Score: 1

      lazYness is a new keyword Perl(tm)

      --
      "When all you have is a hammer, everything starts looking like a nail."
    6. Re:Quiz by somersault · · Score: 1

      Oh, I see. Apparently it's called "Perlude" now.

      --
      which is totally what she said
    7. Re:Quiz by jonnat · · Score: 3

      That's a very Perl-like quiz as many different and apparently completely unrelated statements would fit the answer, possibly all conceivable statements, in fact.

    8. Re:Quiz by mbkennel · · Score: 1

      What do you mean "missing word"? Looks like good ol perl to me.

    9. Re:Quiz by oneiros27 · · Score: 5, Informative

      user base.

      Most of the scientific community knows at least a *little* bit of Perl ... they might not know all of the idiosyncrasies (eg, I've found more than a fair share of '{IDL,Fortran,C} written in Perl'), but it's far greater than those who know any Python.

      We don't have that many Matlab users in our department, and no Octave users that I'm aware of ... most use IDL, but IDL has the problem that you can't freely distribute your code for others to use. (There's a free runtime, but it can't open or write external files, which isn't so useful for writing tools for others to use)

      We do have a small handful of GDL users, and a growing number of NumPy users (via SunPuy), but the problem they're running into is trying to get the scientists to learn Python -- there's enough odd conventions that it's a fair bit of hand-holding initially.

      --
      Build it, and they will come^Hplain.
    10. Re:Quiz by Spykk · · Score: 1

      s/_*?/regular expressions

    11. Re:Quiz by tonique · · Score: 1

      That's basically my case. I had picked up a *little* bit of Perl. Then it's been downhill from that!

    12. Re:Quiz by Tsiangkun · · Score: 1

      genuine cross platform abilities

    13. Re:Quiz by NoNonAlphaCharsHere · · Score: 1

      Damn! Where's my Insightful/Funny mod points when I need them? Well played, sir.

    14. Re:Quiz by Dr.+Zowie · · Score: 1

      Oddly enough, PDL has more "computing power" than NumPy, in the sense that its threading engine works faster and it is less of a memory hog. It is also older than NumPy, having been first written in the late 1990s.

  3. No need for comments by El+Royo · · Score: 1

    There's no need for comments as this is a rare article summary that actually tells you what you want to know. Bravo!

    --
    Author of Enyo: Up and Running from O'Reilly Media
  4. Re:first post? by mitashki · · Score: 2

    Obviously the scientists are too busy to code PDL and have no time to comment...

    --
    "When all you have is a hammer, everything starts looking like a nail."
  5. Re:first post? by iggymanz · · Score: 2, Interesting

    I've spent years coding the Perl; I'll be glad to bash the language as largely unsuitable for large scientific collaborations. The language wasn't really designed, but happened by urban sprawl and accretion over the years. The syntax is inconsistent and the code hard to read. Use something clean and designed well like Python.

  6. Usage information ? by complex_pi · · Score: 1

    Would someone using PDL in practice give examples of where it is used ? The scientific Python ecosystem has grown so well that I hadn't heard of PDL since a long time.

    1. Re:Usage information ? by stjobe · · Score: 2

      Use the link in the summary to download the draft of the book, chapter 2 should give you enough of an overview to know at least some things you can do with PDL.

      --
      "Total destruction the only solution" - Bob Marley
    2. Re:Usage information ? by tonique · · Score: 1

      There's a small PDL user map and use cases are also listed there.

  7. Re:first post? by Anonymous Coward · · Score: 2, Insightful

    Say what you like about Perl, at least it doesn't shit itself if I accidentally configure my text editor to handles tabs the wrong way.

  8. Re:first post? by xTantrum · · Score: 4, Informative

    No Perl is. Real scientist use the Python programming language with Numpy and MatPlotLib :D

    --
    $action = empty(PHP) ? backToC() : unset(PHP) ; "when the concrete cases are understood, the abstractions are readily
  9. Perl I love you by hoggoth · · Score: 1

    Oh Perl, what CAN'T you do?!

    --
    - For the complete works of Shakespeare: cat /dev/random (may take some time)
    1. Re:Perl I love you by mitashki · · Score: 1

      write a boot loader... Oh wait have you actually tried it???!

      --
      "When all you have is a hammer, everything starts looking like a nail."
    2. Re:Perl I love you by tepples · · Score: 2

      Oh Perl, what CAN'T you do?!

      Run in purely managed environments without support for dynamic typing, such as Windows Phone 7. (No native assemblies, no P/Invoke, no Emit.)

    3. Re:Perl I love you by Waffle+Iron · · Score: 4, Funny

      Thanks for the heads up. I was thinking of buying one of those discounted Windows 7 phones to run my PDL plasma confinement simulations for my tokamak, but it looks like that won't work out. I guess I'll look into an Anroid-based solution instead.

    4. Re:Perl I love you by sg_oneill · · Score: 5, Funny

      Oh Perl, what CAN'T you do?!

      Stay relevant.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    5. Re:Perl I love you by SuiteSisterMary · · Score: 1

      Hey, Denise Richards was using an iPaq to disarm nuclear weapons, what, a decade ago?

      --
      Vintage computer games and RPG books available. Email me if you're interested.
    6. Re:Perl I love you by rrohbeck · · Score: 1

      Or get a Raspberry Pi. You don't need a radio on your simulator.

  10. Re:first post? by spud603 · · Score: 2

    So true. Also R is great for vector-based data as well, and does some stuff quite a bit better (and some stuff quite a bit worse) than scipy/matplotlib.

  11. Re:first post? by iggymanz · · Score: 1

    funny, I've never known anyone to have that problem in the last 12 years of using Python. You must be one unlucky S.O.B. Sorry.

  12. Re:first post? by 93+Escort+Wagon · · Score: 1

    really... no other comments on this one? science is apparently ded.

    Yes, because if there were still people interested in science, they'd obviously be all over a more-or-less homebrew project for which there are already well-established alternatives.

    --
    #DeleteChrome
  13. Re:first post? by Gripp · · Score: 1

    eh. find replace "\t" with " " ? just a thought.

  14. Why PDL? by tonique · · Score: 5, Informative

    Obviously, I forgot to include a link to the the actual PDL site. Sorry about that.

    I'm personally using PDL in the context of environmental noise measurements; I get long series of numbers and need to sum (and handle them in other ways) efficiently. Why, then, PDL and not numPy or something else? It stems from the fact that I had used Perl for scripting and text handling earlier. Also, I wasn't required to use something else. So laziness is a rather strong reason. Perhaps I was also a lost cause (that's perhaps a wrong phrase?) because I had started with Perl already.

    I'm a firm believer in "use a tool suitable for the purpose", so I use R for statistical things. I shudder at all the things Excel, a prime example of a tool exploitable for multiple purposes, is used by my co-workers...

    1. Re:Why PDL? by UID30 · · Score: 1

      I think you misspelled "cow-orkers".

      --
      "Glory is fleeting, but obscurity is forever." - Napoleon Bonaparte
    2. Re:Why PDL? by VortexCortex · · Score: 1

      I think you misspelled "cow-porkers".

  15. Oh my's by tonique · · Score: 2

    with the TMTOWTDI of Perl!
    with the fluidity of Perl!
    with the my's and sigils of Perl!

    Then again, Perl is an acquired taste even for me.

  16. Re:first post? by bill_mcgonigle · · Score: 2

    Use something clean and designed well like Python.

    Many scientific computing organizations can never get enough memory and that's a problem when coding large data structures in Python. Python has a nice design, but the runtime still needs improvement. Perl6 is in the same boat.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  17. Re:first post? by iamgnat · · Score: 3, Insightful

    eh. find replace "\t" with " " ? just a thought.

    Works great until you inherit code from some moron that used tabs in some places and 8 spaces in others (including alternating between lines right next to each other), then it makes your life hell sorting it all out. Matters get further complicated when your editor has a different setting of tabs than someone else on the same project.

    Using tabs for whitespace in code is the work of an angry little daemon, but writing a language that is dependent on whitespace (and accepts tabs) when "proper" white spacing has been a religious war for decades prior to the birth of said language is the work of pure evil that makes Satan himself cringe.

  18. new Features by Anonymous Coward · · Score: 1

    There's some new language syntax features. Here's what is looks like: %£T$%£$%"^%"

    1. Re:new Features by skids · · Score: 1

      Obviously you haven't spent any time on #perl6.

      The new features look like this:


      none($/<dotted>.ast >>+&<< (255 <<+^<< $/<subnet_mask>.ast))
                                  or fail("Address does not conform to subnet mask");

  19. Re:first post? by tuffy · · Score: 3, Informative

    % pep8 file.py

    will tell you all the line numbers where someone's mixed tabs and spaces. Or use M-x whitespace-mode (or your editor's equivalent) and clean them up yourself in whatever consistent style you'd prefer.

    Python's design has plenty of annoyances, but its whitespace-based syntax is the among least of them.

    --

    Ita erat quando hic adveni.

  20. HDF5 by Anonymous Coward · · Score: 1

    Personally I like HDF5. Compact, fast, can be read/written in parallel, bindings to many languages. A bit of a pain to learn at first, but well worth it.

  21. Re:first post? by hondo77 · · Score: 2

    The language wasn't really designed, but happened by urban sprawl and accretion over the years.

    It's called "evolution". It works well for complex things.

    --
    I live ze unknown. I love ze unknown. I am ze unknown.
  22. Re:first post? by photonic · · Score: 2

    Memory usage is not a problem for python. If you are using big data-structures, you would typically store them in multi-dimensional arrays defined in Numpy/Scipy. Internally, they use the same type of arrays as in C or Fortran, in all the usual data formats (ints, doubles, ...). There obviously will be a little bit of overhead space needed to store its data-type, array dimensions etc, but this is a fixed amount that is negligible for large arrays. Also the computation speed is for many problems not an issue. If you can formulate your problem as vector-algebra, all the computational intensive algorithms (matrix inversion, FFT, ...) use Fortran or LAPACK under the hood.

    --
    karma police: arrest this man, he talks in maths; he buzzes like a fridge, he's like a detuned radio. [radiohead]
  23. Re:first post? by jrifkin · · Score: 2

    A good platform for scientific scripting is Python with PyCUDA. PyCUDA makes it easy to program the NVidia CUDA chips, which can speed up many computations significantly.

  24. IAMA PDL user by omission9 · · Score: 5, Insightful

    I was happy to be reading /. on my lunch break and see PDL mentioned. I use PDL and am glad to see it get some notice.
    I am disappointment in the comments so far though. The anti-Perl froth is strong in this thread and I am not sure why?
    Here is my point of view:
            -Use whatever programming language suits you and your task the best. Maximize for total productivity which is a function of both of these things in varying degrees.
            -Perl suits me best, personally, as a comfortable tool This is kind of squishy...it just feels right to me. MANY MANY people agree with me. But maybe you don't. meh.
            -My tasks involve (a) parsing data from a variety of sources and (b) number crunching. Perl is already fantastic at (a). PDL makes Perl fantastic at (b).
            -The people behind PDL use it for even more numerically complex tasks than I. Check out the docs and mailing lost archives and see. http://pdl.perl.org/?page=mailing-lists
            -If you are already writing code in C, Python, Fortran or whatever else than you should stick with it. Moving over to PDL just because it exists doesn't make any sense, of course.
    Now, as a Perl and PDL user could someone please explain to me the string visceral reaction shown by people in these comment threads whenever it is mentioned? Did Larry Wall challenge you to a bar fight once or something? (Probably not, I met him once and he doesn't seem like a bar fight kind of guy.)

    1. Re:IAMA PDL user by skids · · Score: 1, Troll

      Some people lack the ability to understand Perl code, and fear what they do not understand.

    2. Re:IAMA PDL user by ThePhilips · · Score: 3, Insightful

      It is more like: Some people lack the ability to write clean Perl code, and fear the clean code as it might make look the job too easy.

      Perl is indiscriminate at making things easy, even if that is writing crappy code.

      Unreadable Perl code isn't the problem of the language, it is the problem of the developers. Trying to fixing it at the language level is wrong and redundant, because in the end it would become Visual Basic or Java or Python. And we already have them.

      --
      All hope abandon ye who enter here.
    3. Re:IAMA PDL user by DuckDodgers · · Score: 1

      I prefer Perl to Python, but I would not group Python with Visual Basic or Java.

      I think the main reason Perl has a bad reputation has nothing to do with the language syntax and everything to do with the dot com boom. All these companies were hiring people who knew nothing about web computing and who made things up as they went along. Perl was a hot language at the time, so the hordes of newbies ran with it. The end result is hundreds of millions of klugey, poorly organized, poorly documented, poorly written code that would have had all the same problems no matter what language was used. Then as the newbies became more experienced, new developers entered the field, and other veteran developers switched to Perl from other languages, their first encounter with Perl is a nightmare app they have to maintain. That's a condemnation of bad coding practice and assuming you can hire anybody with the slightest interest in software development to build your hot new web company. It's not a condemnation of Perl.

      For a new project these days, in many fields Perl is as good a choice as anything. CPAN, the Comprehensive Perl Archive Network, has tons of junk but for almost any conceivable project there's a good chance that out of the one or two dozen CPAN modules written to handle it, at least a few are rock solid and get you more than 80% of the way towards your goal.

      If you're a happy Python programmer there really isn't a strong case for you to switch to Perl. But if you're neither a Perl or Python programmer and looking to learn one or the other, don't let the flame wars over Perl syntax and Python whitespace distract you. Perl is an awesome choice.

    4. Re:IAMA PDL user by Dr.+Zowie · · Score: 1

      Yes, this is an ongoing problem, and it is what made Python the more popular solution. Perl is easy to write, but harder to write well -- the whole point of the language is that it is rich and expressive, without a lot of imposed structure. People who write Perl as they learn tend to write crappy, unmaintainable Perl. The result is that most students' first experience with Perl is of crappy, unmaintainable spaghetti-Perl. Those students often grow up to become Perl-haters.

      Python is more novice-friendly but harder to to be expressive in for experts, so grizzled longhairs (like me) tend to scoff at it.

      That sort of pattern happened before: there was a time when Pascal attracted a lot of mindshare and people scoffed at the woolier "C". Entire OSes were written in Pascal (gasp). But in the long run people migrated back to C and (when it was invented) C++, because, well, Pascal is easy to learn but it sucks for experts.

      There are lots of solutions for getting one's work done. PDL is superior for some tasks, Python/NumPy is arguably superior for others (like learning). I wish people would get over it and code, instead of tribal hating. But that is what people, well, do.

  25. Re:first post? by Anonymous Coward · · Score: 1

    Which is also why R for Python (RPy) also exists.

  26. Re:first post? by iamgnat · · Score: 1

    Yes there are ways* to deal with cleaning them up, the point is that you shouldn't have to spend time dorking around with it. In any structured (not whitespace dependent) language I can vent my spleen if I disagree with someone's formatting and then move on (cleaning as I go or adhering to their standard) without damaging any logic or misunderstanding it due to different tab stops.

    * - The main issue with any solution that I'm aware of is that until you get into complex regexes that are more than "a few key strokes", is that none of them work in all cases (Gripp's example for instance would clobber tabs found in strings).

    Honestly, if it wasn't for the whitespace dependence I would probably like Python. In fact I did enjoy (at some level) working with the multi-level abomination that is Jython. I want my compiler to smack me in the head when I do something blatantly stupid, but Python won't do that if I hit tab twice instead of once like I meant to end a block.

  27. Re:first post? by tuffy · · Score: 1

    Python doesn't care whether you're using tabs or spaces, so long as you use a consistent amount of it to denote blocks. The problem is that some editors don't show you the difference. Nobody complains about semicolon requirements in C code because an editor shows you where all the semicolons are in a given piece of code. I feel whitespace should be just as easy to follow. If someone's indented a block wrong or mixed in some tabs, that should be just as easy to spot - even if you're using a language without any whitespace restrictions at all.

    My solution is to use ethan-wspace which automatically highlights tabs in source code (along with lots of other little whitespace problems) and lets me clean them up trivially with the touch of a button and without breaking the file. It not only keeps my Python code functioning, but does wonders for keeping junk whitespaces changes out of source control.

    --

    Ita erat quando hic adveni.

  28. The Internet weeps... by turgid · · Score: 1

    For shortly it will bear the burden of millions upon millions of lines of FORTRAN written in Perl.

  29. Re:first post? by afabbro · · Score: 2

    Memory usage is not a problem for python.

    Ever! In no possible case, in no possible usage scenario, in the entire history of the galaxy, has memory usage ever been a problem for python.

    --
    Advice: on VPS providers
  30. Re:first post? by iamgnat · · Score: 1

    Python doesn't care whether you're using tabs or spaces, so long as you use a consistent amount of it to denote blocks.

    The issue isn't if Python cares or not. The issue is what it does when multiple programmers have differing standards and work on the same file. The issue is more noticeable when you are taking over someone else's code, especially when the prior maintainer isn't available for initial guidance.

    You still seem to fail to understand my point that you should not need a special editor to help you correctly understand what the code is doing. The code should read the same regardless of if I'm using the "super-duper IDE of choice", I've just cat'd the file at the command line, or looking at it in vi in a co-worker's shell that uses different tab stops.

    And your semi-colon comparison with C doesn't work since the equivalent would be forgetting to hit return in Python code (which I would argue is equally as obvious (if not more so) as the compiler error for a missing semi-colon). A better comparison would be forgetting your closing } against an extra or missing "tab", but again the code fails to compile where Python will go ahead and execute it and the line that is shifted the wrong way gets executed when you don't expect it to.

    White space is useful and it is important to help indicate what the writer was thinking, but it shouldn't be integral to the point that if the whitespace gets clobbered functionality changes.

  31. Re:first post? by cryptographrix · · Score: 1

    | perl -e 'while () { s/\t/ /; print $_; }'

    there. fixed it for ya.

  32. Re:first post? by cryptographrix · · Score: 1

    er, s/()/(<>)/ on that last post

  33. Re:first post? by tuffy · · Score: 1

    You still seem to fail to understand my point that you should not need a special editor to help you correctly understand what the code is doing.

    The code is doing exactly what the source code tells it to do. If you're having trouble reading what's in your source code - especially source code from someone else - there's plenty of tools available to make that job easier. If your editor made periods and commas look the same, it'd be hard to write C code and it'd be smart to switch. If your editor makes tabs and spaces look the same, it's hard to write Python code and you'd be smart to switch.

    It doesn't require a "super-duper IDE". But by sticking to something sub-optimal, you're making it harder than it needs to be.

    --

    Ita erat quando hic adveni.

  34. Re:first post? by lucm · · Score: 1

    No Perl is. Real scientist use the Python programming language with Numpy and MatPlotLib :D

    In my experience, scientists tend to use Excel VBA and incredibly convoluted batch files.

    Disclaimer: I mostly met mad scientists.

    --
    lucm, indeed.
  35. Re:first post? by Dog-Cow · · Score: 3, Insightful

    Using characters that are, by definition, not supposed to be displayed, is the single most stupid decision ever made in programming languages.

  36. Re:first post? by Dog-Cow · · Score: 1

    To a certain degree, it is inevitable that programmers have to make allowances for the limitation of the machine in the way they express themselves. But to create a new language that forces the programmer to be rigid in formatting is just plain stupid. Not even BASIC was ever that bad. FORTRAN abandoned that notion in the 80's. Anyone who actually likes the straight-jacket that is Python should be fitted for a physical jacket.

  37. Re:first post? by defcon-11 · · Score: 1

    I've done a lot of scientific coding in both Perl and Python, and I would pick Python any day of the week. IMO whitespace issues are not a legitimate complaint about Python. I think whitespace delimited blocks are easier to read, and if you have problems with coders not getting it (never ran into this myself), a simple lint script that runs before commit/checkin will solve your tabs vs spaces mismatch. Most Python-based scientific code uses numpy and/or C or Fortan for the computational bottlenecks, so memory and performance are often less of an issue than people assume. Much scientific code is designed to run on cluster/grid/cloud instead of a shared memory system, so the lack of concurrent threads is also often less of a concern.

  38. I get it now. by Medievalist · · Score: 1

    Its only an issue if you're an idiot or constantly trade with with people who are also idiots.

    So, essentially it's only a problem if you are a human being, or constantly interact with human beings.

  39. Re:first post? by spike+hay · · Score: 1

    At least in my field, putting out a figure that is obviously from Excel is a huge faux paus. Doesn't mean a lot of people don't do it, though. Especially the respected but crusty oldsters who can get away with it.

    --
    If you don't understand any of my sayings, come to me in private and I shall take you in my German mouth.
  40. Re:first post? by X.25 · · Score: 1

    I've spent years coding the Perl; I'll be glad to bash the language as largely unsuitable for large scientific collaborations. The language wasn't really designed, but happened by urban sprawl and accretion over the years. The syntax is inconsistent and the code hard to read. Use something clean and designed well like Python.

    Hahahahahahahaha.

    Funny man.

  41. Re:first post? by X.25 · · Score: 1

    funny, I've never known anyone to have that problem in the last 12 years of using Python. You must be one unlucky S.O.B. Sorry.

    Funy, I've met tons of people who had that problem.

    You must be one lucky S.O.B.

  42. Re:first post? by DeathToBill · · Score: 1

    Someone please, PLEASE mod this up. It so deserves better than 0.

    --
    Slashdot - News for Nerds, Stuff that Matters, in ISO-8859-1 Has just realised that beta makes this signature redundant