News for hackers. Stuff that matters.
Re:How Perl Saved the Human Genome Project (1996) by micro_cam on Saturday May 04, 2013 @09:31PM (#5657067)
And set us back years as well.

Too much perl code is essentially write once and forget. It gets results quick but it is a disaster for repeatability which is an essential part of science. I've worked on bioinformatics perl projects where bugs canceled each other out (ie code that was supposed to clear an array and repopulate it with corrected values did neither so the original values were returned). And I've spent far too many hours trying to figure out what a perl script that is the reference implementation for a certain procedure actually does.

Their certainly still are scientists who use it but python and R are gaining ground for good reason.

Wiring together analysis pipelines with pipes as they describe is, however, an excellent technique regardless of language.

Re:How Perl Saved the Human Genome Project (1996) by Mithaldu on Saturday May 04, 2013 @10:01PM (#5657142)
> Too much perl code is essentially write once and forget.

Please stop repeating this misconception. People who put little effort into learning how to program write "write-once" code in any language. Perl had the "misfortune" of being the only dynamic language on the block for a long time, leading to many people reaching for it to get things done without bothering to actually learn the language, thus creating a vast corpus of low quality code.

(It does not help that the definitive resource of Perl for bioinformatics people, which i've seen in libraries like those of the Genome Campus in Cambridge, isn't worthy of being used as toilet paper, yet influenced a whole generation of scientists.)

> I've spent far too many hours trying to figure out what a perl script does

How often do you reach for perltidy when you do this?

Re:How Perl Saved the Human Genome Project (1996) by PySlice on Sunday May 05, 2013 @01:31AM (#5657540)
I don't think that is a misconception.

Perl is the language with the highest occurrence of "subtle" and "ambiguous" in its documentation and tutorials that I have ever seen. Humans may be subtle and ambiguous, but programming languages should be clear and precise.

Re:How Perl Saved the Human Genome Project (1996) by Mithaldu on Sunday May 05, 2013 @01:55AM (#5657579)
If you contrast the original statement i quoted as a misconception, you will find that your opinion still is not the same as the actual misconception.
Re:How Perl Saved the Human Genome Project (1996) by bsima on Saturday May 04, 2013 @11:03PM (#5657291)
What is this "definitive resource" and what resource would you recommend for learning perl? I'm learning now (self-teaching) and don't want to learn the wrong way.

Here's the book I've been using: http://bixsolutions.net/

Re:How Perl Saved the Human Genome Project (1996) by adrianhoward on Sunday May 05, 2013 @04:55AM (#5657883)
The two books I'd strongly recommend:

* chromatic's "Modern Perl" - which has a free CC licenced version (although it would be nice for you to pay some money to support the good work of the author and publisher ;-) http://www.onyxneon.com/books/modern_perl/index.html

* Curtis Poe's "Beginning Perl" http://ofps.oreilly.com/titles/9781118013847/

(Bias warning: Curtis is a mate - but it is a very good book on the topic. Honest ;-)

Re:How Perl Saved the Human Genome Project (1996) by bsima on Monday May 06, 2013 @08:50PM (#5665808)
Thanks for these - much appreciated!
Re:How Perl Saved the Human Genome Project (1996) by Mithaldu on Saturday May 04, 2013 @11:33PM (#5657354)
I do not remember the exact title anymore. It was a book that taught how to build web applications by interleaving data retrieval and html printing, instead of building it up in proper MVC fashion, to name one example of the damage it did.

As for learning Perl, the best resource is http://perl-tutorial.org

You will find an explanation there of how to judge a learning resource and a list of the most current texts that teach modern Perl.

Re:How Perl Saved the Human Genome Project (1996) by bsima on Monday May 06, 2013 @08:50PM (#5665810)
Thanks man, much appreciated :)
Re:How Perl Saved the Human Genome Project (1996) by nijk on Sunday May 05, 2013 @05:04PM (#5659728)
"Proper" MVC fashion.
Re:How Perl Saved the Human Genome Project (1996) by Mithaldu on Sunday May 05, 2013 @05:20PM (#5659788)
Please elaborate. :)
Re:How Perl Saved the Human Genome Project (1996) by Moto7451 on Sunday May 05, 2013 @03:20AM (#5657707)
I've had to deal with my fair share of C# which was written in a "write once" manner. My favorite being when a particular dev wrote an entire Silverlight application while ignoring how the framework functioned. The best bit of obfuscation were sections of code littered with constructs like "((DesiredType)parent.parent.parent.parent.parent).method" where each parent was an Object reference.

Any language can be used to write a riddle. Even Python[1][2]. It's the community's values that determine code quality. The banner of "impossible to read" hangs over the Perl community and it has been my experience that it reminds us to write much better code.

[1] http://www.python.org/search/hypermail/python-1993/0232.html [2] http://p-nand-q.com/python/obfuscated_python.html

Re:How Perl Saved the Human Genome Project (1996) by micro_cam on Monday May 06, 2013 @01:01AM (#5660950)
Good perl programers write very readable code. The problem is that academic code bases often have a lot of involvement from novice new programers.
Re:How Perl Saved the Human Genome Project (1996) by Mithaldu on Sunday May 05, 2013 @03:28AM (#5657720)
> The banner of "impossible to read" hangs over the Perl community

It hangs there, put there by other people. Sadly it correctly would hang above people writing perl but outside the community. We have many efforts going on to get people to write nice and readable Perl.

Re:How Perl Saved the Human Genome Project (1996) by nijk on Sunday May 05, 2013 @05:03PM (#5659722)
It is insane to claim that R is a language of repeatable science.

Python is barely better.

None of these languages come anywhere near a reliable verifiable formal model of what they claim to compute.