воскресенье, 6 июня 2010 г.

Почему python?


Если вы владеете навыками программирования и хотите использовать их в биологии, то начинайте изучать язык программирования python. Если не владеете, то тем более начинайте его изучать. Сейчас объясню, почему.

Когда я первый раз услышала об этом языке, особого энтузиазма он у меня не вызвал. Ну, язык как язык. Вроде как что-то скриптовое, кажется для веб-приложений. Еще и говорят, что он непроизводительный. А потом я приехала на стажировку в одну серьезную лабораторию, и оказалось, что там пишут в основном на питоне. Конечно же, я спросила, почему именно на нем.

"Это хороший язык, объектно-ориентированный, высокая скорость разработки" - объяснил мне коллега, - "Но главная причина в другом: у нас через лабораторию проходит множество студентов и временных сотрудников, все пишут какой-то код. Если бы он был на perl, его пришлось бы выбрасывать после их ухода".

Итак, один из серьезных плюсов языка python - читабельность кода. Можно взять скрипт, который написал кто-то другой или вы сами два года назад (часто это еще хуже, чем кто-то другой) и понять, как он работает и что надо изменить, чтобы он работал так как надо. Это качество не так часто встречается в языках программирования, а в perl практически отсутствует.

Так как python изначально объектно-ориентирован, его изучение помогает приобрести правильный, объектно-ориентированный способ мышления. Также в нем есть полезные элементы функционального программирования, причем они совсем не страшные и простые для понимания. Неспроста python изучают в MIT. Надеюсь, и в наших школах со временем откажутся от паскаля.

Python очень хорошо подходит для объединения разных программ, написанных на разных языках - glue language. Python используют в Google, в фирмах по производству спецэффектов для кино, и в других местах, где основную работу вроде бы выполняют программы, написанные на C++, а python нужен для управления всеми этими программами. Не бойтесь, если вам будут говорить о низкой производительности python. Почти всегда она достаточно высока и не уступает perl. Кроме того, важно не время, в течение которого программа работает, а время, которое прошло между началом написания программы и получением данных. Если же понадобится увеличение производительности, то существует немало способов, как это можно сделать.. но в первую очередь проверить алгоритм, скорее всего проблема именно в нем.

Для биологии есть библиотека biopython со множеством функций, от работы с выравниваниями до взаимодействия с базой pubmed. Есть еще Biskit, библиотека для продвинутой работы со структурами белков. Modeller сейчас также фактически является библиотекой для python.

Все чаще python или питоноподобный язык используется в качестве встроенного скриптового языка. Знать python нужно, если хочется сделать что-то нестандартное в AutoDock, PyMOL, Chimera и многих других программах. Даже в gimp скрипты пишутся на питоне.

До сих пор многие используют perl там, где целесообразнее было бы писать на python. Безусловно, у perl есть своя ниша, так же как и у фортрана. Но человек, который использует фортран вместо С или C++, вызывает недоумение. Скоро так же будут относиться и к большинству из тех, кто пишет на perl. Безусловно, ваш начальник может любить перл, ведь он начал писать на нем еще до того, как появился питон. Но это не значит, что вам нужно делать то же самое.

6 комментариев:

  1. Это хороший язык, объектно-ориентированный, высокая скорость разработки" - объяснил мне коллега, - "Но главная причина в другом: у нас через лабораторию проходит множество студентов и временных сотрудников, все пишут какой-то код. Если бы он был на perl, его пришлось бы выбрасывать после их ухода".
    ДА!!!! :)

    ОтветитьУдалить
  2. Эх уже и забыли что в MIT всегда использовали Scheme для обучения программированию.

    http://mitpress.mit.edu/sicp/

    ОтветитьУдалить
    Ответы
    1. Неправда, я вот например недавно только закончил чтение SICP

      Удалить
  3. Действительно, всегда использовали scheme, и об этом помнят. Но сейчас - python, вот ссылка.

    ОтветитьУдалить
  4. Увы Scheme пришлось перенести на старшие курсы. Напор массового высшего образования сказался.

    ОтветитьУдалить
  5. Был не точен, авторитетные люди пишут, что: "на питон перевели пару потоков, которые учатся по "сокращенной" программе (и которые судя по всему умеют только повторять код, написанный на доске) "(С) Ott

    ...ни в коем случае не против питона, лучше он чем паскаль какой.

    ОтветитьУдалить