Посоветуйте язык программирования
Jan. 11th, 2015 02:41 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Я всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
no subject
Date: 2015-01-11 10:45 am (UTC)Дополнительный плюс - великолепная библиотека для графиков и диаграмм matplotlib, и надстройки над ней вроде seaborn.
Ну, и я не знаю, как устроены Ваши модели, но scipy может пригодиться с кучей научных функций.
no subject
Date: 2015-01-11 10:50 am (UTC)Но, возможно, именно R и есть как раз подходящий вариант.
Но, боюсь, что ни R, ни, тем более, Python не подходят под определение "освоить за 2-3 дня".
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 10:47 am (UTC)Как вариант - VB под тем же Access, но не использовать все эти медленные sql-запросы, а занести все данные в массивы и самому с ними работать. Мне кажется, так будет быстрее.
no subject
Date: 2015-01-11 11:09 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 10:50 am (UTC)no subject
Date: 2015-01-11 11:10 am (UTC)Если его не будет хватать, тогда наверное смотреть на питон (там больше возможностей для ускорения на спец.библиотеках).
Вообще, хорошо бы описать, какие проблемы надо решать... а уж от этого и плясать...
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 10:52 am (UTC)Легко начать, отличная бесплатная IDE и считать будет быстро.
Я на нем программный пакет для кандидатской писал.
no subject
Date: 2015-01-11 11:19 am (UTC)+1
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 10:52 am (UTC)Думаю, тут стоит пойти таким простым путем: язык программирования взять любой, например, вспоминая свои первые опыты с языками, по возрастанию сложности я бы их расставила так: php, pascal/Delphi, java, C/C++, python. php исключаем из-за его специфической ориентированности, из остальных можно выбирать. Второй шаг для простого пути - найти человека, который на пальцах объяснил основы и применение именно в ваших задачах.
Я бы остановила выбор именно на Pascal/Delphi из-за удобного визуального интерфейса среды и отличной системы помощи и всплывающих подсказок.
Если немного уточните, какого рода задачи вы решаете, смогу более предметно описать.
no subject
Date: 2015-01-11 02:56 pm (UTC)Если расставлять языки по их РЕАЛЬНОЙ сложности (за "сложность" принимать среднее количество грубых ошибок при программировании на одну страницу кода), то расклад получается совсем иным:
Python - простейший, затем классический Pascal, C, Ruby, Java, C++, PHP, Delphi - самый сложный.
Почему так. Потому что модель управления памятью в Delphi провоцирует вполне определенный класс ошибок, связанных с неправильным удалением объектов после их создания. Точно так же система типов в PHP провоцирует совершенно определенный класс ошибок, связанных с неверным приведением типов переменных. И то, и другое абсолютно сводит на нет кажущуюся "простоту" языка. Практически все начинающие и многие "опытные" разработчики пишут на этих языках неправильно.
Классический Pascal (вариант Никлауса Вирта) от этой проблемы свободен, но доступной среды для классического Pascal не существует. Есть только Delphi. Язык C довольно прост - его трудно понять в первые дни из-за указателей, но зато там кроме указателей вообще никаких сложностей нет. C++ сложнее намного, там опять вылезают ошибки в работе с памятью (применение приемов из C к С++ недопустимо и приводит к катастрофе). Поэтому Java стоит между ними - сложнее C, но проще C++.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:...
From:...
From:...
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:...
From:...
From:...
From:...
From:...
From:...
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:...
From:...
From:...
From:...
From:...
From:(no subject)
From:(no subject)
From:...
From:...
From:...
From:...
From:...
From:...
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 10:53 am (UTC)Посоветовать ничего не могу, но у меня наивный вопрос - а разве сейчас нет именно компиляторов Бейсика?
В свое время я пользовался Бейсиком на примитивном советском БК-0010-01 - так там был как раз компилятор Бейсика, причем очень скоростной.
no subject
Date: 2015-01-11 01:13 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 10:54 am (UTC)no subject
Date: 2015-01-11 10:57 am (UTC)И уж точно не дешевый ;))
Хотя из всех специфических языков я матлаб больше всего люблю, он наиболее адекватный :)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:...
From:...
From:...
From:...
From:...
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 10:56 am (UTC)поскольку вы - человек умнейший, то справитесь с любым языком, и я бы рекомендовал потратить чуть больше времени, освоив C, C++ или C#, зато потом не иметь проблем.
среда разработки - официально бесплатная Microsoft Visual Studio Express 2013
освоить за 2-3 дня - вполне реально для вас и для тех задач, которые вы назвали: массивы, таблицы - это третья-четвертая лабораторная у студентов, изучающих Си. если с выводом графиков - уже сложнее, но не сильно, если возьмете уже готовый пример такой программы и замените в ней только непосредственно математическую/алгоритм рисования
no subject
Date: 2015-01-11 03:37 pm (UTC)мир языков Basic процветает! ;)
http://macroevolution.livejournal.com/186606.html?thread=12744174#t12744174
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 10:59 am (UTC)no subject
Date: 2015-01-11 11:14 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:01 am (UTC)no subject
Date: 2015-01-11 02:10 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:02 am (UTC)http://r-statistics.livejournal.com/
http://www.bioconductor.org/
no subject
Date: 2015-01-11 11:08 am (UTC)no subject
Date: 2015-01-11 11:47 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:...
From:(no subject)
From:(no subject)
From:(no subject)
From:О гарантированной новичкам прогулке по граблям
From:Re: РгаÑанÑиÑованной новиÑкаÐ
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:09 am (UTC)бесплатная версия вроде бы здесь http://www.visualstudio.com/ru-ru/products/visual-studio-express-vs.aspx , под именем "Express 2013 для Windows Desktop"
Но,возможно,у Вас тормозит не бейсик, а доступ к данным в таблицах Access. тогда такой переход не поможет, надо будет программу малость переделывать.
no subject
Date: 2015-01-11 12:35 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:10 am (UTC)то наверное как тут и предлагали попробовать Визуал Бэйсик но уже не встроеный, а тот что отдельный -- Визуал Студия качается бесплатно.
возможно с раширением в сторону С# -- модель можно скомилировать на нем отдельной сборкой, а потом встраивать и использовать из ВБ
no subject
Date: 2015-01-11 11:14 am (UTC)no subject
Date: 2015-01-11 11:20 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:14 am (UTC)Особенность питона в том, что это язык-интерфейс, для которого существует огромное количество специализированных библиотек и инструментов или, наоборот, он используется внутри различных продуктов.
Вот компактный курс питона для ученых:
http://nbviewer.ipython.org/gist/rpmuller/5920182
Вот одна из библиотек для дискретной симуляции :
https://simpy.readthedocs.org/en/latest/
Производительность питона сама по себе не очень большая, но numpy позволяет делать вычисления быстрее, со скоростью близкой к нативному коду.
Если этого мало, то дальше надо либо писать все или узкие места на C/C++, у которых большой порог вхождения, либо, что мне кажется более здоровой идеей, брать питонячью обертку над OpenCL
https://pypi.python.org/pypi/pyopencl
http://documen.tician.de/pyopencl/#tutorials
OpenCL позволяет выполнять параллельные вычисления используя все возможности компьютера, включая видеокарты с тысячами ядер. Но распределенные вычисления сами по себе не самая простая тема, распределение задач и аггрегация результатов вычислений, множество нюансов управления памятью, локами и т.п. Пока, наверное, просто понимать что так можно и это очень быстро.
Также есть mathworks simulink, я в нем работал достаточно давно, уже тогда это был весьма годный и удобный пакет
http://www.mathworks.com/products/simulink/
В освоении более чем прост, неплохая производительность, но он коммерческий и дорогой.
no subject
Date: 2015-01-11 11:24 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:17 am (UTC)Это интегрированная среда разработки (IDE) под Windows, с которой поставляются компиляторы нескольких языков: C#, F#, VB.NET, C++.
F# неплох, но куда менее популярен, чем C#; по C# информации в интернете больше. C++ не позволит быстро начать без спотыканий. На VB.NET не писал; возможно, он покажется более знакомым человеку с опытом VBA.
no subject
Date: 2015-01-11 12:44 pm (UTC)An unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects.
http://www.visualstudio.com/products/visual-studio-community-vs
(no subject)
From:no subject
Date: 2015-01-11 11:20 am (UTC)no subject
Date: 2015-01-11 11:23 am (UTC)Потом будет легко переходить вверх-вниз-вбок.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:21 am (UTC)no subject
Date: 2015-01-11 11:21 am (UTC)no subject
Date: 2015-01-21 09:49 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:23 am (UTC)Если у Вас в голове BASIC - то Вам прямая дорога к освоению Fortran.
Да простят меня прочие высокоумные комментаторы.
Но, конечно, Visual Basic Net сначала рассотреть - вдруг его хватит?
no subject
Date: 2015-01-11 01:20 pm (UTC)(no subject)
From:no subject
Date: 2015-01-11 11:23 am (UTC)Для реализации промышленного решения это скорее всего С++, но для исследователя это жуткий хардкор и скорее всего потеря времени.
Я думаю, что надо смотреть на питон + одну из его обвязок, позволяющую параллелить вычисления на GPU. Питон очень простой и понятный язык (и по нему много хороших видеокурсов), а GPU даст ускорения в расчётах вплоть до сотен раз относительно обычных процессоров. Все попадающиеся мне в последнее время работы по расчёту, например, всяких хитрых нейронных сетей (глубоких, рекурсивных, или прочих всяких хитрых) изобретаются именно на питоне с обсчётом на GPU.
Эволюционные модели, насколько я знаю, не блещут запредельным матаном, поэтому скорее всего так же хорошо и безпроблемно лягут на GPU (правда, there is no silver bullet и надо будет разобраться со спецификой GPU, но это не сложно).
no subject
Date: 2015-01-11 11:27 am (UTC)(На линуксе с Nvidia+Optimus...)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:24 am (UTC)no subject
Date: 2015-01-11 11:24 am (UTC)питон медленный
Date: 2015-01-11 12:52 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2015-01-11 11:28 am (UTC)Это универсальный язык.
Вся прочая туча языков только сковывает ход мысли.
no subject
Date: 2015-01-11 03:47 pm (UTC)(no subject)
From:(no subject)
From: