Язык мой Какой-то мутный чувак на слэшдоте спрашивает
Ask Slashdot: Best Language To Learn For Scientific Computing?(какой язык лучше для изучения Scientific Computing)
Масса неясностей - учится всего лишь второй год в grad school, но программировал аж 12 лет назад, причем на C, Octave и Basic. Какой-то престарелый аспирант ? Не очень четко обозначено что собирается изучать - методы для обозначенного data mainig или собственно компьютинг или датамайнует какую-то задачу по [учебной] специальности. Да и что такое Learn в данном случае тоже не очень понятно, причем носителям языка тоже, там сразу начали спорить: лучше Фортран для численных вычислений или Питон для секвенсинга ДНК.
В его случае, раз уж все равно изучать новый язык для массивных вычислений, то сразу начать с расчетов на много-много-ядерных процессорах, то есть видеокартах (языки вроде OpenCL и т.п.). Ибо - будущее.
А вообще про математику должен сказать следующее. Аналитические методы накрывают науки и техникy
как железные дороги страну - в паре центров густо, на остальной территории все жиже, половина территории железной дороги в глаза не видела. Да - удобно, доказуемо, но охват по мере продвижения к новым рубежам стремится к нулю. Численные же методы пусть и требуют мощных машин, накрывают всю "территорию".
Математики еще ковыряются в формулах, но у них растет доля задач вроде исчисления чертей на кончике иглы. А прикладники все больше используют универсальные алгоритмы, все менее связанные даже с исходной математикой. Например можно посчитать балку аналитически - карандашом на бумаге. Двести лет так и считали: уравнения, системы, интегралы брали, если удавалось. Потом, на первых машинах, эти аналитические системы уравнений считали численными методами, т.е. те же интегралы брали не суммированием бесконечно малых
f * dx, а малыми шажочками, чтоб с утра и до обеда. Потом сделали метод конечных элементов и дробили балку на небольшое количество кусков. Куски эти опять же описаны несложными аналитическими уравнениями, с которыми поступали как описано выше.
А сейчас уже проще балку представить в виде сотни тысяч шариков с пружинками и генетическим алгоритмом подобрать распределение деформаций и напряжений. Математика примитивнейшая, видеокарте работы на секунду. И даже если не найдется готовых сорцов, написать такой код с нуля по времени сравнимо с покупкой и освоением какого-нибудь профессионального пакета "1C: БалкоРасчет".
Второе же, but not least, чтобы тебе лично язык был читабелен вплоть до максимального использования кириллицы в именах функций, переменных, да и define очень способствует.