Посоветуйте язык программирования
Jan. 11th, 2015 02:41 pmЯ всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
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
Date: 2015-01-11 12:47 pm (UTC)VB NET (Бейсик 7) -- слабый, и, главное -- неудобный
из Бейсиков самый что ни на есть -- VB 6
но у него тоже есть минус -- хреново работает с мультимедиа, для этого нужен С
no subject
Date: 2015-01-11 12:48 pm (UTC)no subject
Date: 2015-01-11 12:49 pm (UTC)+1
Date: 2015-01-11 12:51 pm (UTC)питон медленный
Date: 2015-01-11 12:52 pm (UTC)no subject
Date: 2015-01-11 12:53 pm (UTC)no subject
Date: 2015-01-11 12:53 pm (UTC)no subject
Date: 2015-01-11 12:53 pm (UTC)самый худший выбор, лишь врагу пожелаю!
no subject
Date: 2015-01-11 12:59 pm (UTC)no subject
Date: 2015-01-11 01:09 pm (UTC)Минимум усилий для переучивания с VBA есть? Есть, значит удобный.
Скорость выполнения программ, такая же как у C#, есть? Есть, значит быстрый.
Доступ к библиотеке .NET Framework есть? Есть, значит слабым назвать довольно трудно.
Есть современные бесплатные среды разработки для него, чего не скажешь о VB 6 -- его или пиратски использовать, или неведомо как лицензию на столь древний продукт покупать...
no subject
Date: 2015-01-11 01:10 pm (UTC)no subject
Date: 2015-01-11 01:12 pm (UTC)no subject
Date: 2015-01-11 01:12 pm (UTC)Ну и ещё стоит подумать, какие ещё возможности кроме "просто посчитать" от языка требуются.
no subject
Date: 2015-01-11 01:13 pm (UTC)no subject
Date: 2015-01-11 01:14 pm (UTC)no subject
Date: 2015-01-11 01:14 pm (UTC)Кто советует делфи или джаву — у C#\VB.NET несколько преимуществ. Это и бесплатная среда разработки (та, которая express), и, кмк, легче начально осваивать.
Про питон (особенно его математические-статистические библиотеки) ничего не скажу. Но раз уж говорят о них (библиотеках), лучше бы разузнать подробней.
Паскаль\фортран\прочие_перлы не советовал бы из-за старых парадигм и общего спада популярности. Хотя… Фортран славен популярностью в научных кругах, вроде бы.
php+xxSQL не советую даже не из-за заточенности на web, а потому, что узкое место будет не в вычислениях, а в базе данных, и вот там за пару дней никак не получится разобраться.
no subject
Date: 2015-01-11 01:15 pm (UTC)no subject
Date: 2015-01-11 01:15 pm (UTC)Если всё же хочется освоить новый язык, я бы посоветовал C/С++, чтобы потом не переучиваться ещё раз. Благодаря разработанной базе кода, он проживёт ещё очень долго. По умолчанию всё в современных компьютерах и ОС заточено под С/С++. Но его изучение – дело никак не пары дней.
no subject
Date: 2015-01-11 01:16 pm (UTC)no subject
Date: 2015-01-11 01:16 pm (UTC)Да, отмечу еще, по замороченности C# на порядок проще C++.
no subject
Date: 2015-01-11 01:16 pm (UTC)В рамках текущего вопроса я за питон. Во-первых он простой для освоения и на нём можно писать быстро и понятно (экономия времени на освоение и разработку). Во-вторых, на нём можно писать довольно быстрые программы, есть много библиотек для эффективных вычислений (numpy/scipy/pandas/...). До С++ очередь может и не дойти. Скажем, весьма быстрый алгоритм BWT (который используется для картирования ридов на геном) я писал на питоне и до плюсов очередь в моём случае не дошла, мне хватило (главное ускорение было от правильной реализации алгоритма, а не от языка).
C++ хорош по части скорости, но тяжёл для освоения. Я бы забил на данном этапе. К C++ можно перейти от питона, когда будет выбран ресурс последнего. Java во многом похожа, но лично мне не нравится (вкусовщина) — код получается многословней, чем в C++, а скорость скорее меньше.
MATLAB весьма своеобразен и специфичен, некоторые вещи на нём писать неудобно (хотя если всё сводится к перемножению матриц, то это хороший вариант). Ещё и денег стоит немалых.
R, ну не знаю. Можно попробовать, но мне кажется, что питон для этого лучше и скорее всего быстрее. Хотя если нужно прям много статистики или готовых конкретных пакетов, то вариант. Если аргумент за R — это интерактивность, то со стороны питона есть IPython.
.NET и его языки (VB, C#, ...) может и хороши по-своему, но я бы не стал завязываться на эту платформу. С питоном проще, можно работать на любой системе без геморроя. В случае C# времени на освоение уйдёт вряд ли меньше, чем на Java. Про VB .NET ничего не знаю, но скорее всего главное его преимущество в данном месте — это лёгкость перехода, а во всех остальных местах (в первую очередь в скорости) будут провалы.
Всякую экзотику типа ассемблера, хаскела и прочих особенных языков я бы воспринимал как троллинг.
Perl в данном месте ничем не лучше питона, да ещё и фактически умирает. Ruby хорош, но в данной задаче опять же не лучше питона. Не исключаю, что интересным вариантом под определённый класс задач может быть Erlang (легко создавать независимые процессы-агенты), но вам вряд ли стоит в него ввязываться, одного его не хватит (ещё потенциально любопытный вариант — Go, но тоже не надо на данном этапе). Среди новых языков может и есть что-то хорошее, но лучше взять проверенное эволюцией :)
no subject
Date: 2015-01-11 01:17 pm (UTC)1) high level language: быстро и легко выучить
2) близок к бейсику
3) high performance: можно использовать low level libraries (java, C ++ и др.).
4) легко выучить и быстро работать в нем (быстрые результаты)
5) GPL - free software
6) Особенно хорошая библиотека: scipy (scientific python) и ее части (pandas: for table operations, numpy: matrix/array operations, matplotlib: graphic plotting http://www.scipy.org/ + там есть библиотеки специально для биологии).
Вы программируете в пайтоне, но, на самом деле, Fortran и С++, что сильно ускоряет расчеты.
Посредством interactive python notebooks многие исследователи делятся не только результатами и базами данных, но также кодами (experiment process), с помощью которых они достигли результатов: “ipython notebooks”: http://nbviewer.ipython.org/ - collaborative science/mutual aid :)
Прошу прощения за английский, писала со слов специалиста)
no subject
Date: 2015-01-11 01:19 pm (UTC)В СиШарпе по умолчанию есть все что нужно.
no subject
Date: 2015-01-11 01:20 pm (UTC)