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
Так, всю задачу и необязательно.
Но скорость может быть безнадежно потеряна ДО программирования.
1.На этапе физической постановки (тут профессионалы в прикладной области редко прокалываются)
2.На этапе математического представления (бывает).
3.На этапе дискретного представления (часто).
4.На этапе разработки алгоритма (чаще всего).
Выбор языка может влиять на быстродействие в пределах одного порядка и более-менее компенсируется более мощным компьютером, А ошибки на предыдущих этапах могут порождать увеличение объема вычислений на многие порядки.
Поэтому и вопросы не о конкретной задаче, а о методе и алгоритме. Без подробностей. Но просто "имитационное моделирование" - слишком мало.
Если просто расчет следующего поколения от предыдущего по заданным формулам, это одно - есть четкий такт моделирования. А если отслеживаются отдельные особи, то совсем другое - поток событий. Разные математические модели, разный принцип дискретизации, абсолютно разные алгоритмы и, соответственно, разные советы по выбору языка.
no subject
В общем, Александру Владимировичу надо просто брать знакомого объективного профессионала (или познакомиться с таковым, или с несколькими -- уверен, многие с радостью познакомятся и помогут), который способен писать подобного рода комментарии, то есть грамотно и ёмко формулировать мысли, приглашать его к себе на чай и спокойно и неторопливо день-недельку-месяц разбирать вопросы и нюансы по всем 4 описанным вами пунктам, с описанием типовых задач, демонстрацией кода, профайлингом, обучающими примерами и т.д. Как правило, чтобы достичь качественного скачка (а автор хочет улучшения аж на порядок) нужно подняться на новый уровень, если и не в программировании как таковом, то в способности мыслить алгоритмически-ориентированно (это 2-4 пункт списка).