macroevolution: (anomalocaris)
macroevolution ([personal profile] macroevolution) wrote2015-01-11 02:41 pm

Посоветуйте язык программирования

Я всю жизнь программировал только на бейсике, на разных его версиях.  Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.

[identity profile] lvqcl.livejournal.com 2015-01-11 04:00 pm (UTC)(link)
Вопрос в том, понадобятся ли эти библиотеки? Я вот посмотрел на Biopython - по-моему, он только на ДНК-последовательности заточен.
Ну и библиотеки для линейной алгебры, многомерных матриц, фурье-преобразований тоже могут автору не помочь.

[identity profile] phlya.livejournal.com 2015-01-11 06:39 pm (UTC)(link)
Не только ДНК, и не только последовательности, но его я специально не упоминал, потому что да, вряд ли понадобится. А вот numpy обязательно.

Но как по мне, так для разработки программ удобнее Spyder нежели IPython Notebook, который, в свою очередь, незаменим для мануалов :)

[identity profile] int19h.livejournal.com 2015-01-11 10:09 pm (UTC)(link)
Для разработки программ ноутбук, в принципе, и не заточен. Но он очень удобен, когда надо, скажем так, поэкспериментировать - т.е. загрузить какой-то массив данных, и подергать его так и эдак, с графиками и всем прочим (именно в процессе работы, не только как конечный результат). При этом, если где-то там появляются большие портянки кода, то вот их уже надо переносить в библиотеки, над которыми уже удобно работать из IDE - а потом грузить и дергать их из того же ноутбука. Но для очень многих научных задач много кода там не будет никогда.

Да, а что касается IDE - сейчас много всего хорошего и бесплатно, особенно под винду. PyCharm (https://www.jetbrains.com/pycharm/) (бесплатный в варианте Community Edition), а если человек привык к Visual Studio - PTVS (http://pytools.codeplex.com/) в связке с VS 2013 Community Edition.

(Про последний сразу честно скажу, что я - один из его разработчиков, так что это, в принципе, самореклама. Но мы умеем много гитик (http://pytools.codeplex.com/wikipage?title=Features%20Mixed-mode%20Debugging), которые в принципе не умеет больше никто, и которые могут в данной нише быть полезными.)