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

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

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

[identity profile] dark-barker.livejournal.com 2015-01-11 11:21 am (UTC)(link)
При данных заданных условиях я бы тоже советовал Python. При всём вышесказанном это очень популярный язык общего назначения. Теоретически можно поискать более "подходящий", но он будет гораздо более экзотический, что тоже не самое последнее дело.

[identity profile] woodenfriend.livejournal.com 2015-01-21 09:49 am (UTC)(link)
вот много кто советует python, но будет ли он быстрее? он ведь тоже интерпретируемый. на нём конечно моднее писать чем на vb, и всякие виды плюшек готовые прилагаются, но не теряется ли смысл затеи?

[identity profile] dark-barker.livejournal.com 2015-01-22 10:04 am (UTC)(link)
Ну по-любому будет быстрее чем "vba в MS Access".

Если в целом - хороший компромисс между "скоростью" и удобству под задачу. Ну и вообще что вы подразумеваете под "интерпретируемым" в данном случае? Он компилируется в байт-код и весьма "быстро" всё работает. Многие либы специализированные вообще нативно компилятся. Вот java, например, тоже медленная что ли?

[identity profile] woodenfriend.livejournal.com 2015-01-22 10:57 am (UTC)(link)
я не могу похвастаться опытом работы ни с VBA, ни с python. но (афаик) полноценной компиляции - трансляции в машинный код - python не умеет. а выполнение байт-кода - это всего лишь упрощенная интерпретация. представления не имею какая там у них производительность по сравнению друг с другом и с java.
java - медленная

[identity profile] dark-barker.livejournal.com 2015-01-23 08:30 am (UTC)(link)
ну в таком случае можно сказать что машинный код (на intel-совместимых процессорах, например) - это байткод для процессора. причём там крайне жирные опкоды, меж прочим. жирнее, чем байткоды жавы и всех остальных. и да, этот процессор выполняет жирные cisc-команды как множество мелких настоящих risc -команд, которые составляют зашитые в проц микропрограммы для каждой из его жирных команд.

вы считаете, что прослойка, которая просто транслирует эти тощие байткоды, например, жавы на машинный код действительно теряет множество ресурсов? почему оно будет медленно?

> а выполнение байт-кода - это всего лишь упрощенная интерпретация.

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

> java - медленная

нужно конкретнее в данном случае говорить, что под этим имеется в виду.
например, если вы считаете, что вычислительная задача, написанная на java будет всерьёз "медленнее", чем программа после "полноценной компиляции", то вы скорее всего не очень понимаете материал (о чём сейчас говорите).
upd з.ы. Это всё писалось в контексте, что даже если забыть о JIT, которые есть для всех обсуждаемых здесь виртуальных машин, которые вообще нивелируют до нуля разницу байткод-машинный код. Да, их надо уметь приготовить порой итд, но речь не о том.
Edited 2015-01-23 08:34 (UTC)

[identity profile] woodenfriend.livejournal.com 2015-01-23 10:33 am (UTC)(link)
я с вами пока соглашусь.
нельзя не отметить, что вопросы подобные сравнению скорости работы кода написанного на java и на c - предмет постоянных бурнейших срачей дискуссий, причем правильно поставленные эксперименты подбрасывают поочёредно аргументы в копилку каждого из мнений. не углубляясь в дебри можно разве что заявить "несогласие с обоими" (с)
готов продолжать разговор только после существенного расширения своей эмпирической базы :)
peace

[identity profile] liartar.livejournal.com 2015-02-07 03:38 pm (UTC)(link)
там уже выше кто-то писал, но я повторю: в питоне числовые вычисления с библиотекой numpy (а только так числовые вычисления и осуществляются в этом языке) работают на скорости нативного кода, поскольку используются скрипты, скомпилированные на фортране. питон выступает как бы посредником и обрабатывает входы-выходы только. в итоге питон крайне быстро работает с вычислениями (и именно поэтому его в науке так много используют сейчас).
Edited 2015-02-07 15:40 (UTC)