Имхо, ООП всегда имело свою нишу и никогда не являлось "серебряной пулей". Не лучше и не хуже других - разный молоток для разного гвоздя. По моему опыту, когда речь о том, чтоб хоть как-то влезть в оперативку - изящная иерархия идеальных объектов становится непозволительной роскошью, "либо шашечки - либо ехать". :)
Мы с тобой по-моему уже как-то лично это обсуждали.
Мне казалось, что ООП, это чемпион по понятности, а у других подходов свои плюсы. А оказалось, что математический код становится еще и понятнее и проще писать на "массивах". Вот это сюрприз.
Идея связи с оперативкой интересная. Я тоже заметил, что ускорение получилось как-то неожиданно большим. Думаю, что это связано с более "плотной" упаковкой данных, кэшем процессора итп.
Обсуждали скорее всего, неужели могли пропустить такую благодатную почву для дискуссий))
Математический код специфичен - там ООП-шная general purpose "понятность" не до конца подходит, как мне кажется. Скорее всего дело обратной тенденции математических методов не описывать объекты реального мира, а наоборот - сужать их к математическим объектам, т.е. векторам, матрицам и операциям над ними.
Рантайм для объектных и простых типов сильно отличается, достаточно часто именно это является основной компонентой прироста производительности, наряду с упомянутыми тобой плотной упаковкой, выравниванием данных, локальностью и кешами.
В Питоне вполне есть ООП, но как уже правильно тут сказали, оно совсем не для всего подходит.
> Неужели объектно-ориентированное программирвание устаревает? Как единственная парадигма - да. Сейчас вообще популярны мульти-парадигменные языки, с тенденцией к функциональному программированию. И виртуальной многопоточности в том или ином виде: elixir, go, node.js, akka... Есть ещё Rust развивующий идею чистой мощи Си, но с кучей гарантий со стороны компилятора на безопасную работу с памятью.
> Неужели на рынке стало так много "математических" задач, > что уже выгодно создавать под них языки программирования? Ну вообще кроме специально созданного под статистику R других особо популярных нет.
Питон вовсе не всегда быстр (например), но удобен
( ... )
Я знаю, что nodejs однопоточная по CPU, но это не мешает ей работать с кучей сетевых потоков. Это как Akka, которая на обычном сервере с парой десятков ядер держит миллион виртуальных потоков.
Про «виртуальную многопоточность» - я там немного в кучу всё свалил, спасибо за прояснения. Что-то из этого я и сам знал (global interpreter lock, например).
> Питон - очень любят био-информатики У меня знакомый занимается анализом данных в финансах, сейчас переходит из просто аналитиков в программисты (но с фокусом в той же области). Говорит, что самый востребованный язык там Питон. Сейчас вырисовывается такая профессия как "Data Scientist". И таких вакансий гораздо больше, чем на малоизвестных Rust или D. И вот они используют Python.
> Зато писать на нем быстро и библиотеки удобные > На ++ бессмысленно писать я буду дольше программировать чем аналитикой заниматься
Уважаемый блогер представляю вашему вниманию мой френдмарафон. Что он дает? Рост СК (если вам нужно) выше СК больше посетителей в вашем журнале. В моем френдмарафоне участвуют многие блогеры с СК от 500 и выше, потому вам будет крайне выгодно. Заходим и добавляемся. Вот ссылка. http://alternativamira.livejournal.com/119876.html
Comments 14
Reply
Мне казалось, что ООП, это чемпион по понятности, а у других подходов свои плюсы.
А оказалось, что математический код становится еще и понятнее и проще писать на "массивах".
Вот это сюрприз.
Идея связи с оперативкой интересная. Я тоже заметил, что ускорение получилось как-то неожиданно большим.
Думаю, что это связано с более "плотной" упаковкой данных, кэшем процессора итп.
Reply
Математический код специфичен - там ООП-шная general purpose "понятность" не до конца подходит, как мне кажется. Скорее всего дело обратной тенденции математических методов не описывать объекты реального мира, а наоборот - сужать их к математическим объектам, т.е. векторам, матрицам и операциям над ними.
Рантайм для объектных и простых типов сильно отличается, достаточно часто именно это является основной компонентой прироста производительности, наряду с упомянутыми тобой плотной упаковкой, выравниванием данных, локальностью и кешами.
Reply
Возможно во мне крепко сидит ООП,
хотя я его правила сознательно и в "продуктовом" программировани.
Помню, было круто, когда оказалось, что C# с его рантаймом по скорости работает соизмеримо с С++.
Вот это они крутой JIT компилятор написали.
Reply
> Неужели объектно-ориентированное программирвание устаревает?
Как единственная парадигма - да. Сейчас вообще популярны мульти-парадигменные языки, с тенденцией к функциональному программированию.
И виртуальной многопоточности в том или ином виде: elixir, go, node.js, akka...
Есть ещё Rust развивующий идею чистой мощи Си, но с кучей гарантий со стороны компилятора на безопасную работу с памятью.
> Неужели на рынке стало так много "математических" задач,
> что уже выгодно создавать под них языки программирования?
Ну вообще кроме специально созданного под статистику R других особо популярных нет.
Питон вовсе не всегда быстр (например), но удобен ( ... )
Reply
Reply
Все-таки -- это правильно, когда их мало -- напромного роще переиспользовать человеческое знание.
Reply
Это как Akka, которая на обычном сервере с парой десятков ядер держит миллион виртуальных потоков.
Про «виртуальную многопоточность» - я там немного в кучу всё свалил, спасибо за прояснения. Что-то из этого я и сам знал (global interpreter lock, например).
> Питон - очень любят био-информатики
У меня знакомый занимается анализом данных в финансах, сейчас переходит из просто аналитиков в программисты (но с фокусом в той же области). Говорит, что самый востребованный язык там Питон.
Сейчас вырисовывается такая профессия как "Data Scientist". И таких вакансий гораздо больше, чем на малоизвестных Rust или D. И вот они используют Python.
> Зато писать на нем быстро и библиотеки удобные
> На ++ бессмысленно писать я буду дольше программировать чем аналитикой заниматься
Reply
http://alternativamira.livejournal.com/119876.html
Reply
Leave a comment