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

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

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

[identity profile] agalakhov.livejournal.com 2015-01-11 06:54 pm (UTC)(link)
Ну то есть не создавая в этих программах ни одной формы, ни одной кнопки, ни одного графического элемента, да?

Или все-таки объектов в вашей программе куча, просто их за вас написала IDE, а вы не следите за тем, что там написано и как реально работает?

[identity profile] lanrusa.livejournal.com 2015-01-11 07:04 pm (UTC)(link)
>> Ну то есть не создавая в этих программах ни одной формы, ни одной кнопки, ни одного графического элемента, да?

Конечно. Они были консольные.

[identity profile] agalakhov.livejournal.com 2015-01-11 10:00 pm (UTC)(link)
Ну тогда и брать лучше не Delphi, а виртовский паскаль без расширений, с незамутненным синтаксисом. Тут правда две проблемы возникает: с инструментарием - с надежными и переносимыми компиляторами паскаля сейчас все плохо, не нужны они никому, и с floating point - соответствие стандарту IEEE не гарантируется нигде, поэтому такие хорошие вещи, как алгоритм суммирования Кэхэна, могут не работать, и скорее всего и не будут работать. (Алгоритм Кэхэна накладывает очень жесткие ограничения на оптимизатор компилятора).

Если уж писать на семействе алгола-паскаля, то лучше сразу брать Ada - синтаксис почти не отличается от синтаксиса Паскаля, изучать так же просто, инструментарий великолепный (военная надежность!), правильность работы гарантируется, язык стандартизирован и потому переносим (нет привязки к версии компилятора). Формально верифицировать код легко. К тому же есть магическая поддержка многопоточности - есть параллельный вариант for, можно заменой одного слова превратить цикл в параллельный и считать на всех ядрах сразу. Если выбирать между изучением Delphi и изучением Ada, тогда однозначно Ada. Иное дело, что сам выбор семейства алгола-паскаля спорный, но это уже совсем другая история.