Информация об изменениях

Сообщение Re[6]: MS забило на дотнет. Питону - да, сишарпу - нет? от 30.08.2021 21:53

Изменено 30.08.2021 22:25 vfedosov

Re[6]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, vfedosov, Вы писали:


V>>Если проект в одно рыло пишешь, то пайтон делает шарп в разы по скорости разработки.


НС>Можно пример именно логики, которую в разы быстрее на пайтоне?


Ну вот к примеру +- типичная задача: нужно развернуть индекс: есть индекс по одному ключу, надо построить по другому. В пайтоне решается так:
names2data = {"name1": (1, 3, "str1"), "name2": (2, 4, "str2")}
data2names = {data[1]: name for name, data in names2data.items()}

я не в курсе, может последние версии шарпа позволяют коротко эту задачу решить — уж лет 6-7 не работаю с шарпом, но пайтон и 10 лет назад это поддерживал. Насколько кратко можно проинициализировать сложную структуру данных и насколько легко с ней работать! Кстати работает мега быстро в отличии от довольно медленного Linq.

Или обработка массивов float — работает почти как на плюсах по скорости. Имеем двумерный numpy массив — картинку (яркости пикселей нормированы к 1.0), надо сделать ярче в 1.5 раза, но значения не должны быть больше 1.0:

array_2d = array_2d * 1.5
array_2d = np.min(array_2d, 1.0)
Может слегка с синтаксисом в примерах накосячил (влом проверять) — но суть такая.
Представь чего на шарпе придется нагородить для этого и сколько это работать будет по времени. Работа с массивами в numpy вообще впечатляет — очень элегантно. Занимаясь имадж процессингом, я понял, что плюсы не нужны почти нигде — все можно сделать на пайтоне — и не будет тормозить! На шарпе это невозможно.
Re[6]: MS забило на дотнет. Питону - да, сишарпу - нет?
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, vfedosov, Вы писали:


V>>Если проект в одно рыло пишешь, то пайтон делает шарп в разы по скорости разработки.


НС>Можно пример именно логики, которую в разы быстрее на пайтоне?


Ну вот к примеру +- типичная задача: нужно развернуть индекс: есть индекс по одному ключу, надо построить по другому. В пайтоне решается так:
names2data = {"name1": (1, 3, "str1"), "name2": (2, 4, "str2")}
data2names = {data[1]: name for name, data in names2data.items()}

я не в курсе, может последние версии шарпа позволяют коротко эту задачу решить — уж лет 6-7 не работаю с шарпом, но пайтон и 10 лет назад это поддерживал. Насколько кратко можно проинициализировать сложную структуру данных и насколько легко с ней работать! Кстати работает мега быстро в отличии от довольно медленного Linq.

Или обработка массивов float — работает почти как на плюсах по скорости. Имеем двумерный numpy массив — картинку (яркости пикселей нормированы к 1.0), надо сделать ярче в 1.5 раза, но значения не должны быть больше 1.0:

array_2d = np.min(array_2d * 1.5, 1.0)

Может слегка с синтаксисом в примерах накосячил (влом проверять) — но суть такая.
Представь чего на шарпе придется нагородить для этого и сколько это работать будет по времени. Работа с массивами в numpy вообще впечатляет — очень элегантно. Занимаясь имадж процессингом, я понял, что плюсы не нужны почти нигде — все можно сделать на пайтоне — и не будет тормозить! На шарпе это невозможно.