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

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

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

холиварная тема

[identity profile] mynine.livejournal.com 2015-01-11 01:48 pm (UTC)(link)
Сам я пишу в основном на C++, язык быстрый и очень мощный. Но вам не советую, все-таки порог вхождения великоват для более-менее уверенного кодирования. А серьезное освоение требует нескольких лет.

Как упрощенный вариант C++ можно вполне использовать Java или C#. При использовании специализированных сред IDE (есть бесплатные) процесс программирования заметно упрощается - подсказки и подсветка синтаксиса и ошибок прямо в редакторе. В случае использования Java у вас будет возможность запускать программу на разных платформах вплоть до телефона или планшета под Android.

Python вполне годен, хорош с точки зрения концепции языка, но медленный.

Как вариант, можете попробовать Lua, простой (он проще всех указанных в комментариях здесь :) и мощный язык. Хотя он и скриптовый, но, емним, самый быстрый из всех. Для начала использования достаточно скачать только интерпретатор языка (размер менее мегабайта) и вперед.

[identity profile] pssshik.livejournal.com 2015-01-11 03:13 pm (UTC)(link)
луа - это весело, но не для расчетов же. "для имитационного моделирования эволюционных процессов в популяциях" - на луа - не извращение ли?

[identity profile] mynine.livejournal.com 2015-01-11 04:25 pm (UTC)(link)
why not?
какая разница? чем питон-то лучше для моделирования? lua хотя бы простой и быстрый

[identity profile] mynine.livejournal.com 2015-01-11 09:22 pm (UTC)(link)
Мнда, самое главное я не уточнил, Александр, вы на какую длительность выполнения программы рассчитываете?
Если минуты, то язык пофигу.
Если часы, то только компилируемые
Если дни и дольше, только C/C++ или на худой конец Java. Причем надо будет собирать с максимальной оптимизацией.
arech: (Default)

[personal profile] arech 2015-01-12 11:10 am (UTC)(link)
Ну он же ясно написал, что новый алго ещё только в задумке. Откуда знать, как он будет работать, когда его даже в блок-схеме не существует?

А про сложные языки, типа С/С++, Java и прочих повторюсь - рекомендовать их исследователю для решения общих вопросов, в т.ч. прототипирования алгоритмов есть либо полное не понимание сути исследовательской работы, либо садистическая мизантропия с сабботажным вредительством... Сначала пишется прототип, на котором обкатываются, допиливаются и проверяются концепты идей, а затем при необходимости уже находится нормальный специалист в том же С++, который переводит прототип в нормальный продукт...
Не дело исследователю возиться с чисто программерскими частностями, его забота - изобретать новые эффективные алго, т.е. осуществлять _качественные_ прорывы, а не количественные...

[identity profile] mynine.livejournal.com 2015-01-12 11:55 am (UTC)(link)
> на VBA она будет работать невыносимо медленно

Что это значит? "Невыносимо" - это десятки минут, часы или дни и недели?

Если выяснится что последнее, то прототипирование на медленном языке вряд ли поможет - отладочный цикл длиной в сутки точно невыносимая вещь.

Но вообще, да, лучше всего бы Александру отладить алгоритм на своем знакомом VBA, реально вычислить его узкие места и тогда уже думать о другом языке.