Perl, Python, Ruby

Jun 18, 2013 01:38


Долгое время я считал, что мне не нужно знать три примерно одинаковых языка - года с 1997-го я использовал перл (дольше него сколь-нибудь непрерывно у меня в использовании лишь C/C++, активное знакомство с которыми уже составляет порядка 20 лет). И перл мне очень даже нравился, особенно, кстати, своей идеей, что “There is more than one way to do it” (TMTOWTDI). А также регулярками. Не нравилось только извратное ООП.

Так вот, в последние несколько лет я отказался от той своей идеи про достаточность одного языка и сейчас в разной степени использую все три. Или даже два. И вот почему.

Руби освоил в целях знакомства с Rails и остался очень доволен - процесс создания веб-приложений действительно оказался очень простым. Да, я знаю, что есть веб-фреймворки для перла, есть для питона, но я не вижу смысла их осваивать, когда есть рельсы. И я не думаю, что кто-то сможет соревноваться с их экосистемой. Впрочем, не исключаю, что с фреймворками у меня может случиться процесс, аналогичный сабжевому процессу с языками, но пока я не вижу причин для этого.

Кроме рельсов мне понравился и сам язык - он был краток, также позволял решать задачу множеством путей, так же удобно позволял использовать регулярки, а кроме того там было человеческое ООП! Так что руби для меня - это Perl 6. А оригинального Perl 6, наверно, уже и не дождаться.

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

Питон как язык нравится мне меньше перла и руби - более многословен, а его идея про “There should be one-and preferably only one-obvious way to do it”, на мой взгляд, хороша лишь для начального обучения, но не для постоянной работы с языком как инструментом и способом выражения мыслей. Зато у питона есть хорошие библиотеки, которых нет в других языках - nltk для работы с естественными языками, numpy/scipy - для вычислений (да, знаю, у перла тоже что-то появилось, но зачем уже оно мне сейчас), scikit-learn - для machine learning, и вообще довольно много библиотек для анализа данных - та же pandas, например. И ещё что-то регулярно встречаемое по мелочи. Удобно.

В общем, такая вот эволюция. Не холивара ради.

ruby, perl, python, programming

Previous post Next post
Up