Odpowiedzi:
Tym, co sprawia, że Perl jest tak przydatny w bioinformatyce, jest to, że 1) jego język jest stosunkowo łatwy do nauczenia, 2) istnieje wiele wcześniej istniejących skryptów do użycia, w tym bioPerl i 3) są szanse, że laboratorium, w którym pracujesz, ma setki skryptów i modułów , już napisane w Perlu.
Poziom programisty mniej związany z wyborem języka, a nie zadawanymi mu zadaniami. Wszelkie zaawansowane lub drogie obliczeniowo zadania są zwykle pisane w Javie lub C i uruchamiane w klastrze.
Jedną z rzeczy, które należy zrozumieć na temat bioinformatyki, jest to, że jest to zróżnicowana dziedzina, z różnymi zadaniami zadawanymi tym, którzy ją praktykują. Często zdarza mi się używać Perla, R i Javy w ciągu jednego dnia. Perl do pisania skryptów, przenoszenia plików, pobierania rzeczy, podstawowych analiz danych itp., R do wizualizacji danych oraz Java do obliczeń algorytmicznych / pracy z aplikacjami i ich modyfikacji. To powiedziawszy, większość zadań, które wykonuję, wymagają użycia Perla, jednak chciałbym przejść na Ruby, ponieważ ma on bardziej zaawansowane funkcje, lambdas i procs, które mogą prowadzić do bardziej zwięzłego kodu i są w pełni zorientowane obiektowo.
Oprócz nieodłącznych zalet Perla, częścią tego jest po prostu historia. Na przełomie XIX i XX wieku nastąpił znaczny rozwój bioinformatyki z powodu projektu Human Genome. W tym czasie Perl był zdecydowanie najpopularniejszym językiem skryptowym w powszechnym użyciu . Ruby i Python z pewnością byli w pobliżu, ale nie mieli prawie wsparcia / udziału w umysłach, które robią dzisiaj. To dało Perlowi duży rozmach w terenie.
Myślę, że użycie Perla w bioinformatyce spada, a popularność R szybko rośnie. Ale dla każdego języka, który chcesz nazwać, prawdopodobnie znajdziesz laboratorium bioinformatyczne, które go używa.
Dodam tutaj odpowiedź, ponieważ myślę, że wielu z nich pominęło kluczowy punkt ...
Perl jest popularny w bioinformatyce, ponieważ pierwotnie jest językiem przetwarzania tekstu .
Perl ułatwia:
Ma również zalety:
Chociaż nie pozwala na tworzenie programów przetwarzających tak szybko, jak odpowiednik C, czas programowania jest znacznie gorszy i obejmuje baterie dołączone do przetwarzania tekstu ( potężne wyrażenia regularne , ktoś?), Dzięki czemu jest to łatwe do podnoszenia i używania w kontekście laboratoryjnym do rozwiązywania tych zadań.
Poza tym oczywiście:
Ale powodem, dla którego istnieje tak wiele rozszerzeń i modułów bioinformatyki (i ogólnie naukowych) dla Perla, są przede wszystkim przyczyny podane powyżej. W wielu przypadkach styl i umiejętności języka sprawiają, że jest on prawie idealnie dopasowany (pomimo wielu możliwych pretensji) do pracy.
Wszystko to sprawia, że Perl jest dobrym pretendentem do badań naukowych, szczególnie w dziedzinach, w których dane do przetworzenia są głównie w formacie tekstowym.
Oczywiście pojawiły się inne języki i twierdzą, że mają udział w rynku z różnych powodów (zwiększona ekspresja, lepsza czytelność, wyraźne unikanie niejasnych hacków i guru-ish one-liner ...), ale wciąż konkurują z Perlem pod pewnymi względami (Ruby jest na przykład tak szybko, jak się uczyć, ponieważ przetwarzanie danych jest powolne). Tak więc w dziedzinie bioinformatyki (lub NLP), gdzie zajmujesz się formatami tekstowymi, szybkimi cyklami badań i coraz większą ilością dużych danych, które stają się coraz większe (dziękuję, genomika i NGS), Perl jest nadal bardzo istotny.
Właściwie to właśnie zauważyłem komentarze maple_shaft , Charlesa i geoffjentry'ego , które wspominały również o znaczeniu wyrażeń regularnych, więc nie wszyscy to przeoczyli. :)
Jednym z głównych powodów popularności Perla w bioinformatyce jest BioPerl , kompleksowy zestaw modułów do pracy z odpowiednimi danymi.
Wygląda na to, że większość modułów została zaprojektowana do pracy z danymi generowanymi przez inne programy. W końcu Perl zapewnia doskonałą taśmę raportującą.
Narzędzia są wybierane na podstawie poziomu umiejętności operatorów i łatwości adaptacji - skompilowanie programu lub IDE zajmuje trochę czasu, zanim opanuje prosty interpretowany język.
Perl ma kilka poważnych problemów, poważną dokumentację, poważne biblioteki i szeroką bezpłatną dostępność. Czego nie lubić w tym wszystkim?
Perl ma te same umiejętności, konstrukcje danych i metody w innych językach i jest łatwiejszy do nauki niż wtedy. Jest to dobre dla naukowców i naukowców, którzy nie mają zbyt dużego doświadczenia w programowaniu, ponieważ mogą z łatwością podnieść Perla i wykonać żądane zadanie (zadania)
Do tego:
Dostępnych jest wiele pomocy online i bezpłatnych skryptów, co jest wyraźnie korzystne! =)
Podsumowując, większość naukowców i badaczy chce po prostu wykonać zadanie i wykonać je jak najszybciej, a Perl doskonale do tego pasuje