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
no subject
2) с/с++ при всей моей нежной любви к данному запросу подходят плохо: слишком сложны и опасны для новичка, не желающего морочиться, и вообще слишком медленны в разработке и рефакторинге кода. Для исследователя важно как можно быстрее нарисовать минимальный прототип proof of concept, доказывающий идею, и иметь возможность как можно дешевле этот прототип менять и переделывать. А для этого нужны более выразительные, а значит высокоуровневые языки (где одной строкой кода можно сказать больше) - питон в этом смысле очень хорош.
3) с фортраном не знаком. В той области, которой я интересуюсь (алгоритмы искусственного интеллекта) я об использовании фортрана не слыхал. Да и вообще мало о нём слыхал; есть впечатление, что он если не умер, то потихоньку умирает...(может ошибаюсь тут)
4) питон очень прост в освоении и хотя сам не быстр, но есть ряд "ускорителей" под специфические задачи; алгоритмы легко параллелятся на GPU без особых доработок.
5) питон чрезвычайно активно используется научным сообществом, под него сделано огромное количество математических и прочих библиотек. Знание питона скорее всего позволит как легче читать чужие работы, так и делиться своими.
6) если потребуется что-то ускорить - всегда можно конкретно эту часть алгоритма переписать на с/с++ (попросить толкового студента перевести питоновый алго на с/с++) и получить максимум производительности (если студент и правда толковый)))
Как-то так...