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-11 04:36 pm (UTC)(link)
За свою жизнь я освоил языков 20. И в 2-3 дня не верю.
Дело в том, что (кролики это не только ценный мех) язык это не только синтаксис, но и словарь.
Запомнить принципы и конструкции языка можно быстро. А найти в библиотеках нужные процедуры и научиться ими пользоваться - дело не быстрое. Больше всего ушло у меня времени на понимания того, как искать нужные функции в безбрежных библиотека С#.
Имитационное моделирование - искусство специфическое. Оно само породило несколько языков программирования.
Уже упоминавшийся в комментариях GPSS был первой попыткой. Потом выяснилось, что в нем удается моделировать только системы массового обслуживания, для которых существуют аналитические решения. Поддержка авторами была прекращена, но 30 лет спустя кто-то реализовал GPSS для персоналок. Печально, но им пользуются.
Первым серьезным успехом была SIMULA-67. Видимо, впервые был реализован объектный подход. На 20 лет раньше, чем он получил широкое распространение. Потому, что остальные задачи программирования дошли до очередного порога сложности позже, а имитационное моделирование по сути имеет смысл только для сложных систем.
Отсюда вывод: для того, чтобы в разумные сроки реализовать имитационную модель, необходимо понять суть ООП и освоить язык, поддерживающий эту парадигму. Я реализовывал механизм событийного имитационного моделирования на Дельфи. Сегодня, пожалуй, выбрал бы Яву. Но от мышления в последовательности команд придется отказаться в любом случае.
И еще. Может быть скорости не хватает из-за неправильного подхода к моделированию, а не из-за языка? Довольно частая ошибка - использование тактовой модели вместо событийной. При наличии большого количества процессов с принципиально разными характерными временами, "пустой" расход вычислительных ресурсов огромен.

[identity profile] guga50.livejournal.com 2015-01-11 04:39 pm (UTC)(link)
кстати по поводу событийной модели. вот тут ООП как раз будет вжилу.
Edited 2015-01-11 16:42 (UTC)