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

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

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

[identity profile] Сергей Перовский (from livejournal.com) 2015-01-12 10:14 pm (UTC)(link)
>>описывать такой пример - это очень долго.
Так, всю задачу и необязательно.
Но скорость может быть безнадежно потеряна ДО программирования.
1.На этапе физической постановки (тут профессионалы в прикладной области редко прокалываются)
2.На этапе математического представления (бывает).
3.На этапе дискретного представления (часто).
4.На этапе разработки алгоритма (чаще всего).
Выбор языка может влиять на быстродействие в пределах одного порядка и более-менее компенсируется более мощным компьютером, А ошибки на предыдущих этапах могут порождать увеличение объема вычислений на многие порядки.
Поэтому и вопросы не о конкретной задаче, а о методе и алгоритме. Без подробностей. Но просто "имитационное моделирование" - слишком мало.
Если просто расчет следующего поколения от предыдущего по заданным формулам, это одно - есть четкий такт моделирования. А если отслеживаются отдельные особи, то совсем другое - поток событий. Разные математические модели, разный принцип дискретизации, абсолютно разные алгоритмы и, соответственно, разные советы по выбору языка.

[identity profile] drvit.livejournal.com 2015-01-14 11:03 pm (UTC)(link)
Вы всё очень правильно говорите, но очень специализированным языком. Если человек всю жизнь писал "VBA в MS Access", то многие термины будут просто не понятны, и КПД вашего комментария будет низким. К сожалению, чтобы понимать то, о чём вы говорите, надо собрать все эти "грабли" самому и/или прочитать очень хорошие книжки -- программирование это целая отрасль, где-то даже искусство.
В общем, Александру Владимировичу надо просто брать знакомого объективного профессионала (или познакомиться с таковым, или с несколькими -- уверен, многие с радостью познакомятся и помогут), который способен писать подобного рода комментарии, то есть грамотно и ёмко формулировать мысли, приглашать его к себе на чай и спокойно и неторопливо день-недельку-месяц разбирать вопросы и нюансы по всем 4 описанным вами пунктам, с описанием типовых задач, демонстрацией кода, профайлингом, обучающими примерами и т.д. Как правило, чтобы достичь качественного скачка (а автор хочет улучшения аж на порядок) нужно подняться на новый уровень, если и не в программировании как таковом, то в способности мыслить алгоритмически-ориентированно (это 2-4 пункт списка).
Edited 2015-01-14 23:22 (UTC)