4 ms·
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 a
by micro_cam 13y ago
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.
- Mithaldu 13y ago> 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?
- PySlice 13y agoI 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.
- Mithaldu 13y agoIf 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.
- bsima 13y agoWhat 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/ http://bixsolutions.net/
- Mithaldu 13y agoI 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 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.
- adrianhoward 13y agoThe 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 http://www.onyxneon.com/books/modern_perl/index.html * Curtis Poe's "Beginning Perl" http://ofps.oreilly.com/titles/9781118013847/ http://ofps.oreilly.com/titles/9781118013847/ (Bias warning: Curtis is a mate - but it is a very good book on the topic. Honest ;-)
- Moto7451 13y agoI'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 http://www.python.org/search/hypermail/python-1993/0232.html [2] http://p-nand-q.com/python/obfuscated_python.html http://p-nand-q.com/python/obfuscated_python.html
- Mithaldu 13y ago> 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.
- micro_cam 13y agoGood perl programers write very readable code. The problem is that academic code bases often have a lot of involvement from novice new programers.
- nijk 13y agoIt 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.