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."
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
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."
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.
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.
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
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
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.)
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.
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...
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.
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.
Stay relevant.
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
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)
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.
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.
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.
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]
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.
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.)
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
Using characters that are, by definition, not supposed to be displayed, is the single most stupid decision ever made in programming languages.