Посоветуйте язык программирования
Jan. 11th, 2015 02:41 pmЯ всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
no subject
Date: 2015-01-11 04:25 pm (UTC)no subject
Date: 2015-01-11 04:26 pm (UTC)Есть вариант "писать на чем привыкли, а запустить на мощной машине где-нибудь в облаках" - выигрыш в скорости за счет железа.
no subject
Date: 2015-01-11 04:27 pm (UTC)Тогда уж лучше небольшую модельную программу, этак на 2 экрана кода, выложить.
И посмотреть, как желающие помочь перепишут её на питон или С#.
(Если, конечно, такие желающие найдутся, в чём я не очень уверен. Всё-таки мешки ворочать труднее, чем советы давать.)
no subject
Date: 2015-01-11 04:27 pm (UTC)шейдерами? (ну да про КУДА слыхал, но чё и как не знаю)
>> где вы нонче видели интерпретируемый язык без прекомпиляции
дык о том и речь.
>>опрос номер три - квейк на жабаскрипте видели?
я квейк вообще никак не видел, если честно.
после того как вы меня в незнании приоритетов операций уличили, я вам всё прощаю :)))
no subject
Date: 2015-01-11 04:27 pm (UTC)Я вообще не программист - я биолог-систематик.
Но при этом умудрился шесть лет проработать на факультете прикладной математики и кибернетики. именно по причине склонности к системному подходу к алгоритмизации.
>> Загрузить ваш процессор можно каким-нибудь видеоредактором типа AE, там эффектов много
Вы ошибаетесь. У меня на нынешней работе сосед-видеодизайнер как раз просчитывает свои видеоэффекты в 3D и АЕ. Так вот моя нагрузка на процессор матричной дебаеризации фотографий несравнимо (на порядки выше) чем при пересчете его видео и памяти оно тоже жрет просто страшно.
no subject
Date: 2015-01-11 04:28 pm (UTC)no subject
Date: 2015-01-11 04:29 pm (UTC)---
basic в названии не должен вводить в заблуждение, потому что purebasic — си-подобный язык, что и написано в статье
no subject
Date: 2015-01-11 04:31 pm (UTC)Тогда помогите коллеге, но тоже, кажется с биологией связан.
>> Вы ошибаетесь. У меня на нынешней работе сосед-видеодизайнер как раз просчитывает свои видеоэффекты в 3D и АЕ. Так вот моя нагрузка на процессор матричной дебаеризации фотографий несравнимо (на порядки выше) чем при пересчете его видео.
Вы ошибаетесь. У меня на прошлой работе были проекты, которые нагружали все что угодно, даже бывали случаи, когда приходилось делить ролик на части и рендерить на разных компьютерах. Видится мне, что нагрузка очень сильно зависит от разршения исходного изображения, разршения готового изображения, длительности и количества и "тяжести" эффектов.
no subject
Date: 2015-01-11 04:31 pm (UTC)http://i.mivi.fr/013092c429a64dd39a55850d8467bad0869e5b35.gif
no subject
Date: 2015-01-11 04:35 pm (UTC)no subject
Date: 2015-01-11 04:36 pm (UTC)Дело в том, что (кролики это не только ценный мех) язык это не только синтаксис, но и словарь.
Запомнить принципы и конструкции языка можно быстро. А найти в библиотеках нужные процедуры и научиться ими пользоваться - дело не быстрое. Больше всего ушло у меня времени на понимания того, как искать нужные функции в безбрежных библиотека С#.
Имитационное моделирование - искусство специфическое. Оно само породило несколько языков программирования.
Уже упоминавшийся в комментариях GPSS был первой попыткой. Потом выяснилось, что в нем удается моделировать только системы массового обслуживания, для которых существуют аналитические решения. Поддержка авторами была прекращена, но 30 лет спустя кто-то реализовал GPSS для персоналок. Печально, но им пользуются.
Первым серьезным успехом была SIMULA-67. Видимо, впервые был реализован объектный подход. На 20 лет раньше, чем он получил широкое распространение. Потому, что остальные задачи программирования дошли до очередного порога сложности позже, а имитационное моделирование по сути имеет смысл только для сложных систем.
Отсюда вывод: для того, чтобы в разумные сроки реализовать имитационную модель, необходимо понять суть ООП и освоить язык, поддерживающий эту парадигму. Я реализовывал механизм событийного имитационного моделирования на Дельфи. Сегодня, пожалуй, выбрал бы Яву. Но от мышления в последовательности команд придется отказаться в любом случае.
И еще. Может быть скорости не хватает из-за неправильного подхода к моделированию, а не из-за языка? Довольно частая ошибка - использование тактовой модели вместо событийной. При наличии большого количества процессов с принципиально разными характерными временами, "пустой" расход вычислительных ресурсов огромен.
no subject
Date: 2015-01-11 04:37 pm (UTC)На Delphi и PHP вероятность написать такую программу очень велика. На языках вроде Ada она практически равна нулю. На C и Python она есть, но приемлемо низка.
no subject
Date: 2015-01-11 04:39 pm (UTC)no subject
Date: 2015-01-11 04:39 pm (UTC)no subject
Date: 2015-01-11 04:39 pm (UTC)no subject
Date: 2015-01-11 04:40 pm (UTC)Я не преувеличиваю, а говорю о его наличии
>Никак не в синтаксисе конкретного языка программирования.
А при чем тут синтаксис? И "овладении языком алгоритмов в общем виде"?
Есть, к примеру, замечательный язык программирования Erlang (замечательный для решения некоторых задач, конечно). Синтаксис проще паренной репы. И что? Если вы не знакомы с функциональным программированием, то вам потребуется значительное время на освоение этого языка. И даже если вы знакомы с тем же Haskell, то перебраться на Erlang - это не раз плюнуть. Потому, что кроме изучения синтаксиса вам потребуется еще научиться этот синтаксис применять.
Если бы дело было бы только в синтаксисе, информацию из книг, посвященную тому или иному языку программирования, можно было бы засунуть в один номер пионерской правды.
>Автору этого ЖЖ - точно нет.
Вы делаете выводы не владея информацией, необходимой для того, чтобы эти выводы сделать.
no subject
Date: 2015-01-11 04:42 pm (UTC)НУИЧТО??? Зато вы будете такой один!!
no subject
Date: 2015-01-11 04:42 pm (UTC)no subject
Date: 2015-01-11 04:43 pm (UTC)no subject
Date: 2015-01-11 04:44 pm (UTC)no subject
Date: 2015-01-11 04:45 pm (UTC)что бы ускориться в 10 раз - нужно пересматривать организацию входных данных и алгоритмы.
насчет языка с низким порогом вхождения я поддержу уже прозвучавшие советы - python, C#
вы напиши постановку задачи и покажите ваше решение - я уверен, вам сразу подскажут как сделать быстрее даже на том же бейсике.
no subject
Date: 2015-01-11 04:47 pm (UTC)no subject
Date: 2015-01-11 04:47 pm (UTC)no subject
Date: 2015-01-11 04:48 pm (UTC)Я ему сразу (выше) отписал что проблемы скорее не в скорости языка а в алгоритмике обработки и одной оптимизацией алгоритмов или потоков данных можно ускорить работу в десятки раз.
так как я не знаю как он считает какие данные - посоветовать конкретного ничего не могу.
Из того что я могу догадаться (лишь догадаться как биолог) что ему требуется - рассчет больших массивов многомерных матриц, где мерность может быть и пятая и 25тая (я без понятия что он считает) - то есть нужен колоссальный обьем быстрой памяти
Предлагать такие вещи считать на яваскрипте мне видится даже и не смешным.
>> Вы ошибаетесь.
это вы ошибаетесь. Потому что (сейчас) даже уперто не пытаетесь включать мозги.
>> .., даже бывали случаи, когда приходилось делить ролик на части
ой, удивили %))) аппупеть )))
Вообще то это стандартный принцип работы с видео - разложений ролика на части.
Вы только самое главное забыли своей головой подумать: что ваше видео - это множество кадров, десятки, сотни и тысячи. А я работаю с одним, за практически то же самое время - то есть в сотни и тысячи раз медленнее на том же процессоре потому что обьемы рассчетов и их точность - несопоставимо выше ))))
no subject
Date: 2015-01-11 04:48 pm (UTC)Возможно, я чего-то не понимаю, но какой Basic, когда есть Mathcad? Мало ли, что я с 1967 г. еще в трехадресных машкодах считал. Это еще до сотворения мира было.
И иллюстрации для статьи из Mathcad'а вывести очень просто.
И уж в универе точно д.б. лицензионный для сотрудников.