Посоветуйте язык программирования
Jan. 11th, 2015 02:41 pmЯ всю жизнь программировал только на бейсике, на разных его версиях. Так получилось. Когда писал кандидатскую, набралось очень много таблиц с данными (это были морфологические признаки морских ежей), и я задолбался обсчитывать их на калькуляторе. Поэтому быстренько освоил бейсик (тогда персональные компьютеры IBM только начали появляться, и к ним прилагался язык GW-Basic). Освоил - и сразу почувствовал себя человеком. С тех пор не переучивался, сейчас пишу все свои программки на VBA в MS Access. То есть в программировании я дилетант, но опытный. Программированием пользуюсь сейчас для имитационного моделирования эволюционных процессов в популяциях. Подумываю об одной новой модели, но понимаю, что на VBA она будет работать невыносимо медленно. Насколько я понимаю, программа, написанная почти на любом другом языке, компилируемом, будет работать в разы быстрее. Вопрос такой: какой из этих языков мне будет быстрее и проще всего освоить? Времени, сил и желания преодолевать трудности и вникать в программистские проблемы - не имеется. Мне бы этот язык просто скачать (можно купить, если не слишком дорого), освоить за пару-тройку дней - и вперед. Т.е. главное, чтобы он был максимально простым в освоении для того, кто знает бейсик, без всяких интеллектуальных "понтов", но работал хотя бы раз в 10 быстрее.
no subject
Date: 2015-01-11 02:09 pm (UTC)С - очень простой язык. С++ - другое дело. Да и вообще. Язык это только набор средств. Нет сложных языков, есть сложно написанные программы.
no subject
Date: 2015-01-11 02:10 pm (UTC)no subject
Date: 2015-01-11 02:10 pm (UTC)no subject
Date: 2015-01-11 02:12 pm (UTC)"несколько" ? http://en.wikipedia.org/wiki/Visual_Basic_.NET#Comparison_with_the_classic_Visual_Basic
Он скорее на C# похож, чем на VBA
no subject
Date: 2015-01-11 02:13 pm (UTC)no subject
Date: 2015-01-11 02:13 pm (UTC)1. Компилируемость языка не обеспечивает скорость. Вопрос в библиотеках - какой бы язык вы не использовали, библиотека для перемножения матриц или интерполирования будет быстрее.
2. Бейсики бывают компилирумые. Да, в общем-то, сейчас все компилируемые, за исключением вбскрипт.
3. Низкоуровневый язык программирования вам не нужен. Зачем вам заниматься вопросами ввода и отображения данных? Исходя из пункта один вам скорее нужны пакеты для расчетов - матлаб, математика, даже маткад.
no subject
Date: 2015-01-11 02:15 pm (UTC)Си++ с перегружаемыми операторами - прекрасен. Вычитание может означать деление, а разыменование посыл трояна соседу.
> i-=++i+i++
ну и чё тут сложного? i станет равно - i - 2
no subject
Date: 2015-01-11 02:15 pm (UTC)Наиболее адекватное для заявленных целей, на мой взгляд, это Fortran или Python в форме SciPy
Первый прост как табуретка и по умолчанию быстр для вычислений. Второй чуть посложнее, но сочетает преимущества интерпретатора со скоростью компилированных библиотек и имеет массу встроенных вкусняшек типа Matplotlib.
no subject
Date: 2015-01-11 02:15 pm (UTC)no subject
Date: 2015-01-11 02:16 pm (UTC)no subject
Date: 2015-01-11 02:16 pm (UTC)Потому что из языков, которые быстрее него, простых в изучении нет.
Скорость же программы зависит в основном не от языка, а от алгоритма.
Я до сих не могу забыть, как в институте у нас была курсовая по моделированию траектории движения частиц в э-магнитном поле, и модель, написанная на QuickBasic работала мгновенно, а на С++ вычислялась несколько минут, хотя должно быть наоборот. Просто подгруппа С++-ников была криворука ))
no subject
Date: 2015-01-11 02:18 pm (UTC)no subject
Date: 2015-01-11 02:18 pm (UTC)no subject
Date: 2015-01-11 02:19 pm (UTC)no subject
Date: 2015-01-11 02:20 pm (UTC)no subject
Date: 2015-01-11 02:20 pm (UTC)Это специализированный язык для имитационного моделирования. Делал на нем лабы, когда учился. У меня вызывал легкое отвращение, но это потому что я не знал предметной области и в то время несильно хотелось ломать мозг после традиционных языков (по принципу сдал-забыл).
Из языков более широких пожалуй могу посоветовать C# ну или Java если нужна кроссплатформенность. VB.net категорически не советую, там с VBA общего меньше чем различий. Если уж переучиваться то лучше на C# сразу (да и по мне он проще vb.net).
no subject
Date: 2015-01-11 02:25 pm (UTC)no subject
Date: 2015-01-11 02:26 pm (UTC)Экзотов типа хаскела или го тоже не советую - там нет ничего ради чего бы стоило.
Фреймворки же под C++ Java C# есть под любые задачи и даже в большем количестве чем под остальные языки.
Однако для научных задач никто ничего лучше C++ не придумал.
no subject
Date: 2015-01-11 02:27 pm (UTC)в молодости столько было споров под пиво что круче си или паскаль, что доказывалось следующим образом ...естественно брался только синтаксис а не библиотеки ... писался код типа for i:=0 to 10 do компилировался в сом формат и смотрелся в дисассемблере ... паскаль побеждал ...никаких лишних инструкций голый аасеблер как будто писалось прямо на нем
no subject
Date: 2015-01-11 02:27 pm (UTC)Ну и читать код, который в примерах с CUDA идёт.
no subject
Date: 2015-01-11 02:27 pm (UTC)no subject
Date: 2015-01-11 02:28 pm (UTC)no subject
Date: 2015-01-11 02:29 pm (UTC)http://blog.codinghorror.com/the-day-performance-didnt-matter-any-more/
Теперь буду рад выслушать и ваши аргументы ))
no subject
Date: 2015-01-11 02:29 pm (UTC)А уж потом можно выдохнуть и повыбирать, какой бы язык из современных поизучать на досуге.
P.S. Вдруг сообразил, что никто не предложил старый "полноценный" Visual Basic 6.0 - http://rutracker.org/forum/viewtopic.php?t=2514447 Синтаксис идентичен синтаксису VBA - т.е. переучиваться не надо, работать будет однозначно быстрее. Чем не вариант?
no subject
Date: 2015-01-11 02:29 pm (UTC)