Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Putting Perl Back on Top in the Fields of Scientific and Financial Computing

by ack (Deacon)
on Mar 24, 2011 at 17:14 UTC ( [id://895305]=note: print w/replies, xml ) Need Help??


in reply to Putting Perl Back on Top in the Fields of Scientific and Financial Computing

The discussions from the OP and all the responders intrigue me and I enjoy the diverse perspecives on the issue. Thanks to all for their rich ideas, thoughts, and perspectives.

In my work place we have had a real world example of this very discussion. Our language of choice for testing and command and control of many of our space missions has been Perl. It has been a wonderful and trustworthy workhorse and we rarely use or need the various CPAN modules and capabilities of additions like PDL or MOOSE or the like. Not that they aren't useful or great; we just don't need them or use them...and on our command and control systems we're generally not allowed to import externally generated code except as comes in the core of Perl. We have a few internally developed and maintained libraries that we have used for almost 15 years and, while they've grown and morphed over the years, they get our job done.

We recently, however, decided to do a complete re-look, from the ground up, at our whole system and to "bring it into the 21st century" as our senior leadership likes to say.

We are looking at a whole nest of more "modern" approaches to capabilities to try to harness everything from "data mining" to "adaptive, emergent behaviors". I'm not saying that we *need* such capabilities per se; but rather that we're trying to consider in various niches how we could be much more effective, efficient, and capable.

I and my collegues have for about a year now been casting our nets wide throughout the community looking at where the state-of-the-art is today and we are considering how (or even if) we could benefit.

One outcome that crept in somewhat unexpectedly is that we have found several promising techniques (especially in terms of Service Oriented Architectures (SOA), data mining, etc.) that we are migrating towards. So we have all been absorbing, at high rate, every book and article that we can get our hands on to try to figure out how best to embrace these promising technologies.

The surprise is that almost *all* of these various currently popular techniques are richly described and even have lots of learning examples and algorithms readily available...in Python!

So over the last 2-3 months a movement has gone afoot to discard our Perl backbone and replace it with Python.

The only real impediment is that we would truly have to "start from scratch"...all the way from retraining our programmers to the learning curve of beginning to reprogram in another language to having to redevelop and test and verify all of our decade-long work in libraries that are still (and look to be into the future) our bread-n-butter. All because folks are starting to say, "Python *must* be the way to go since all of these 'modern' topics use it...none of them use Perl as their backbone or examples!"

I have a beginner's knowledge of Python and find it interesting but have yet to find anything that makes it any *better* than Perl. It is more compact in some ways; more troublesome and clunky in others. But in no instance that I've found so far is it *better*...just different. I can certainly see that it is fine language and can do the job, too. But I'm having a hard time getting that point across to those who keep pointing out that "it (Python) *must* be better because that's what all the gurus of these neat new gadgets use!"

So, to me, the problem with Perl is that noone is using it in a very visible, documenting-state-of-the-art new ideas using it. It is *not* sufficient, in my view, to just do great research and new technology developments in Perl and to publish the results such that Perl's contribution is better highlighted; it has to be used in popular, easily accessed examples for newly emerging techniques such as SOA, data mining, etc...especially in course text-book and popular introductions to those new techniques and technologies.

That's just my view; obviously it's just one more perspective.

ack Albuquerque, NM

Replies are listed 'Best First'.
Re^2: Putting Perl Back on Top in the Fields of Scientific and Financial Computing
by Your Mother (Archbishop) on Mar 24, 2011 at 21:11 UTC

    Might I suggest the best of both worlds given your situation. Use the Python as "pseudocode" to write the algorithms in Perl. You keep your expertise in the language domain while benefiting from the work in another (and benefiting the Perl community in general with the new tools).

    Perl really can make this kind of thing easy and having sample code before to redraft/translate can sometimes even lead to better code as you won't be boxed in or painted into a corner the way so many code bases end up, you'll just be guided.

    Compare your project to the Perl effort to port Python's WSGI. And don't stop there! There is more to be learned from others. Why not mix in Ruby's Rack? We arrive at Plack. And it was a pretty short trip.

    Caveat: if your team was reticent to hit up the CPAN for help in the past, trying to keep this kind of thing together on your own might not be a good match for your culture. "Modern" has more to do with approach than the language and if you're rooted in old-school Perl it might be harder to change that than to change languages.

      And how do you plan to convince people to repeatedly rewrite a piece of code that works fine in Python to Perl?

      Unless a Person is Perl fan, the moment he sees Python looking for cleaner and getting the job done. He will switch to Python.

        I sort of explained why. This is a situation where there is an expertise in Perl already and none in Python. You have a chance to do it better, using the original as a prototype. And you still have the huge eco-system of Perl supporting you. Plack is the ideal example of this. Another is KinoSearch, a rewrite of Java’s Lucene which outperforms it in several metrics and is having some elements of its design back ported to Java because they are so good.

        The attitude that it’s already done so why bother, is a losing proposition and not just in software. For example, Assembly can solve every software problem, we shouldn’t create new languages. Soap and good diet can prevent most disease, we shouldn’t worry about medical research.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://895305]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (7)
As of 2024-03-19 01:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found