Программирование математики

May 10, 2016 20:35

Когда в 2011 году я писал программу с компьютерным моделированием своих PDE ( Read more... )

Leave a comment

kirilloid May 14 2016, 19:54:37 UTC
В Питоне вполне есть ООП, но как уже правильно тут сказали, оно совсем не для всего подходит.

> Неужели объектно-ориентированное программирвание устаревает?
Как единственная парадигма - да. Сейчас вообще популярны мульти-парадигменные языки, с тенденцией к функциональному программированию.
И виртуальной многопоточности в том или ином виде: elixir, go, node.js, akka...
Есть ещё Rust развивующий идею чистой мощи Си, но с кучей гарантий со стороны компилятора на безопасную работу с памятью.

> Неужели на рынке стало так много "математических" задач,
> что уже выгодно создавать под них языки программирования?
Ну вообще кроме специально созданного под статистику R других особо популярных нет.

Питон вовсе не всегда быстр (например), но удобен.
Если честно, я вообще не понимаю, почему его так активно любять использовать в data science.
То ли они используют Pypy, то ли в Python легко использовать существующие бинарные библиотеки и большая часть вычислений делается в них...

Насчёт того что, программирование принципиально изменилось:
Я встречался с этим ещё в институте, но тогда подумал, что это совсем уж редкий случай.
Оказывается, нет. Есть как минимум ещё один вид программистов - алгоритмисты.
Им совершенно не нужно ООП и вообще производство кирпичиков для конструктора.
Алгоритмы дают гораздо больший размер гранулярности - уровень целой библиотеки.

Но прикладные программисты у которых главная проблема - это грамотно структурировать код, никуда не делись.

Reply

smoker_only May 15 2016, 13:08:28 UTC
Позвольте отметиться.

Комментировать буду только то, с чем лично пришлось как следует столкнуться, пробегусь тезисно.

Про node.js - это конкретная модель асинхронной обработки, однопоточной. Никакой виртуальной многопоточности там нет. (Правда есть некий несвободный клон где и node.js запилили невиртуально многопоточной, непонятно зачем).

Виртуальная многопоточность - это когда используются user-space треды со всеми вытекающими, либо как в Питоне - global interpreter lock. Многопоточность как бы есть, но и её нет.

Кроме R - уже давно и очень широко используется Matlab (и его GNU клон Octave - замечательная штука, 95% моего Matlab кода там заработало сразу, причем со специфичными си-биндингами для работы с магнитнорезнансным томографом - всё скомпилялось, собралось и запустилось).

Ну и если о статистике - то не стоит забывать о SPSS (на мою бытность, удивительная вещь с 2 языками внутри - императивным и декларативным, просто праздник какой-то).

Если говорить про Rust - то и про D стоит вспомнить. :)

Питон - очень любят био-информатики, в обработке последовательностей DNA, sequence alignment, MDS и другое. Горячую любовь ученых в целом к Питону не подмечал.

Спасибо, что отметили алгоритмистов, было приятно. :)

Субьективно, я ООП воспринимаю как методологию для более-менее вменяемого прикладного "продуктового" программирования. Одни языки оказывают большую поддержку этой методологии - другие меньшую. При желании можно и на Си писать вполне объектно-ориентированно, только не удобно.

Спасибо! :)

Reply

stikhomirov May 15 2016, 17:23:39 UTC
Хорошо, что не так много языков наплодилось.
Все-таки -- это правильно, когда их мало -- напромного роще переиспользовать человеческое знание.

Reply

kirilloid May 16 2016, 20:47:22 UTC
Я знаю, что nodejs однопоточная по CPU, но это не мешает ей работать с кучей сетевых потоков.
Это как Akka, которая на обычном сервере с парой десятков ядер держит миллион виртуальных потоков.

Про «виртуальную многопоточность» - я там немного в кучу всё свалил, спасибо за прояснения. Что-то из этого я и сам знал (global interpreter lock, например).

> Питон - очень любят био-информатики
У меня знакомый занимается анализом данных в финансах, сейчас переходит из просто аналитиков в программисты (но с фокусом в той же области). Говорит, что самый востребованный язык там Питон.
Сейчас вырисовывается такая профессия как "Data Scientist". И таких вакансий гораздо больше, чем на малоизвестных Rust или D. И вот они используют Python.

> Зато писать на нем быстро и библиотеки удобные
> На ++ бессмысленно писать я буду дольше программировать чем аналитикой заниматься

Reply

stikhomirov May 18 2016, 20:52:22 UTC
>Сейчас вырисовывается такая профессия как "Data Scientist"
У меня после изучения рынка сложилось ощущение, что это такая сформировавшаяся профессия,
которая скоро начнет устаревать.

Забавно насколько по-разному выглядит ситуация изнутри и снаружи.

Reply

kirilloid May 19 2016, 02:59:23 UTC
Ну, может, она уже и сформировалась. Но пока растёт, как и Big Data. Шума вокруг уже нет, но наработки идут.

Возможно, у нас разные критерии устаревания =)
Предлагаю использовать https://en.wikipedia.org/wiki/Hype_cycle как систему отсчёта.

Reply

stikhomirov May 15 2016, 17:24:22 UTC
Интересно, почему сначала твое сообщение в СПАМ записалось?

Reply

smoker_only May 15 2016, 21:20:55 UTC
Хм, что за сообщение?

Reply

kirilloid May 16 2016, 20:48:16 UTC
Три раза одно и то же отправилось.

Reply


Leave a comment

Up