macroevolution (
macroevolution) wrote2015-01-11 02:41 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Посоветуйте язык программирования
Я всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
no subject
Дополнительный плюс - великолепная библиотека для графиков и диаграмм matplotlib, и надстройки над ней вроде seaborn.
Ну, и я не знаю, как устроены Ваши модели, но scipy может пригодиться с кучей научных функций.
no subject
Но, возможно, именно R и есть как раз подходящий вариант.
Но, боюсь, что ни R, ни, тем более, Python не подходят под определение "освоить за 2-3 дня".
no subject
На мой личный вкус Python освоить проще (с ним я справился, а R несколько раз начинал мучить, и так и не могу сказать, что освоил...). R очень хорош чисто для статистики, без программирования. Но если надо делать что-то более сложное, то питон становится резко удобнее, на мой взгляд.
Ну, освоить по-настоящему за 2-3 дня никакой язык нельзя, но на питоне можно писать уже после 1 дня (может, костыльно, но можно).
no subject
no subject
Вопрос тут другой: можно ли свести задачу к вызовам фунций из библиотек с минимумом программирования. Для многих задач это так. Морфологические признаки ежей - явно подходят.
В данном случае - не знаю, мне трудно судить.
no subject
Тормоза там в управлении памятью, циклами и прочих чисто программерских вещах, которые норовят вылезти в любых минимально сложных алгоритмах.
Надо понимать, что R никогда не делался как нормальный ЯП. Это язык для стат.расчётов, почти полностью наследованный из древнючего S...
Одно дело обсчитывать таблички, а другое - реализовывать эволюционные (или вообще любые минимально сложные) алгоритмы... R тут совсем не инструмент...
no subject
полностью освоить за 2-3 дня ни один язык не получится. Но у питона все же уровень вхождения довольно низкий
no subject
Питон труднее шел: было легче читать и поддерживать, но труднее найти нужную конструкцию.
В R, правда, труднее найти нужную биб. функцию :)
Все относительно.
no subject
/после, скажем, примерно 20 лет на всяких языках, включая C/C++/C#/Java etc./
у меня такого бэкграунда нет, и мне кажется человеку без такого бэкграунда питон освоить проще чем ту же джаву особенно если ставить цель "освоить за 2-3 дня". Конечно скорость - узкое место. Но думается мне человеку нужна не только скорость, иначе бы все писали на ассемблере =)
no subject
no subject
no subject
no subject
Хаха.
no subject
no subject
no subject
Питон не имеет равных в читаемости кода. Если вы будете возвращаться к однажды написанной программе через год-два, то на Питоне вы быстрее всего вспомните и разберетесь, что там к чему.
no subject
no subject
no subject
По сравнению с бейсиком на некотором классе задач перимущества будут катастрофическими.
no subject
no subject
Питон уже почти стал стандартным инструментом учёного (вместе с библиотеками типа scipy, biopython).
При изучении нового языка важно иметь удобную среду разработки и возможность быстро получить какие-то результаты.
У питона для этого есть IPython Notebook (http://ipython.org/notebook.html) (там видео, его можно сразу со второй минуты смотреть).
Вот тут подборка ссылок с примерами использования A gallery of interesting IPython Notebooks (https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks)
Среди них, например есть Comparing different approaches to evolutionary simulations (http://nbviewer.ipython.org/github/yoavram/ipython-notebooks/blob/master/simulation%20frameworks.ipynb)
no subject
Ну и библиотеки для линейной алгебры, многомерных матриц, фурье-преобразований тоже могут автору не помочь.
no subject
Но как по мне, так для разработки программ удобнее Spyder нежели IPython Notebook, который, в свою очередь, незаменим для мануалов :)
no subject
Да, а что касается 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), которые в принципе не умеет больше никто, и которые могут в данной нише быть полезными.)
no subject
Присоединяюсь к Python