
Shmelev
06.04.2017
21:20:27
ну обычно в питоне функциональщину не любят, т.к. она медленнее, чем то же самое на генераторах
можно использовать чисто эту парадигму, но результат будет тем ещё

Иван
06.04.2017
21:40:16
Функциональщики часто питон не любят, потому, что на нём трудно писать в функциональном стиле и он медленный.
Так честнее.

Google

Иван
06.04.2017
21:40:53
https://m.habrahabr.ru/post/158385/
Питон специально делают непригодным для функциональщины
Переписать всё на плюсы и вызывать их из питона?

Vitaly
06.04.2017
21:43:49
для плюсов тех же нормальный компилятор осилит, лисп само собой

Иван
06.04.2017
21:45:18
Кто-то принял решение никогда этого не уметь. Чтобы заставить программистов пользоваться тру питон-стайл циклами.

Shmelev
06.04.2017
21:45:56
тот же rapidjson хороший пример

Иван
06.04.2017
21:46:25
Да, но зачем в этой связке питон?
Что он даст мне?

Shmelev
06.04.2017
21:46:59
Многие вещи на нём писать быстрее и удобнее

Google

Иван
06.04.2017
21:47:13
удобнее чем что?

Shmelev
06.04.2017
21:47:17
Возможность решать определенные классы задач быстрее и удобнее
в случаях, когда шелл слишком негибок

Vitaly
06.04.2017
21:47:55
вот а какие вы такие задачи решаете, что пайтон узкое место?

Shmelev
06.04.2017
21:48:34
реверс, например, аналитика по логам, различная автоматизация в ресерчах

Иван
06.04.2017
21:48:56

Shmelev
06.04.2017
21:49:02
Перл монструозен и устарел
Плюс поддержка питона есть в ida, gdb и много чём ещё

Vitaly
06.04.2017
21:49:21
может я не прав

Shmelev
06.04.2017
21:50:12
У питона много модулей, позволяющих решать широкий круг задач
Скажем, работа с вебом с использованием асинхронности
и возможность сделать import antigravity и быстро решить какую-то прикладную задачу сильно помогает

Иван
06.04.2017
21:52:24
Перл монструозен и устарел
Он в разы быстрее питона. У него не меньше модулей. Скоростью своих регекспов он уделывает плюсовые. У него куда более богатая поддержка функционального программирования.

Shmelev
06.04.2017
21:52:41
перловые регекспы прекрасны
но если говорить о скорости разработки - не факт
работа с чужим кодом на перле - боль

Иван
06.04.2017
21:53:28
Попробуйте хаскель, если хотите скорость разработки.

Google

Shmelev
06.04.2017
21:54:33
ну, вот, типичная для меня задача, нужно асинхронно прокачать несколько тысяч ссылок, пользуясь libmagic выбрать им наименования, и пользуясь какой-нибудь библиотекой для разбора elf-ов отбросить поломанные, а результат запаковать и залить по ssh
нормально написать это можно либо на python, либо на perl
не уверен, что такое пишется на хаскелле

Иван
06.04.2017
21:56:47

Shmelev
06.04.2017
21:57:04
но по мне, код на питоне куда более легко разрабатываемый и поддерживаемый, и проигрывать секунды на каждом запуске мне нравится больше, чем проигрывать часы на разработку
он даже побыстрее перла будет
или на lua
под embedded lua была бы разумнее

Иван
06.04.2017
21:58:58
или на lua
Переписали на шелл со всякими awk. Задача как раз для него была.

Shmelev
06.04.2017
22:00:15
Скорее не так, под питон почти всегда есть библиотеки под любую мою задачу, и поддержка скриптинга на питоне есть во многих используемых мной утилитах

Shmelev
06.04.2017
22:00:59
перл хорош для обработки текста, тут ему равных нет
но вот с ооп там всё грустно, емнип

Иван
06.04.2017
22:01:41

Admin
ERROR: S client not available

Иван
06.04.2017
22:02:19

Shmelev
06.04.2017
22:02:55
в питоне хорошо с модульностью

Иван
06.04.2017
22:03:21

Google

Shmelev
06.04.2017
22:04:20
А мне почему-то всегда было сложно понимать перл. Да, он даёт программисту написать всё, что он хочет, причём любым способом, но читать это потом...
Особенно без приличной документации

Иван
06.04.2017
22:05:45
Давайте пример. Покажите, как вы напишете на питоне программу, которая выведет сумму факториалов чисел, которые были переданы на stdin. Потом я покажу такую же на хаскеле.
Только чур писать как обычный питонист. На циклах и прочей гадости.

Vladimir
06.04.2017
22:07:13
Что докажет не более, чем то, что факториалы лучше считать на хаскеле))

Иван
06.04.2017
22:07:58
Я не доказываю. Я хочу показать насколько это может быть проще.
Мы могли бы, конечно, взять сложный и серьёзный пример из жизни. Но он будет сложнее и менее нагляден. Да и чтобы понять сложную программу на хаскелле, придётся его сначала изучить.

Shmelev
06.04.2017
22:10:10
ну попробуем, чисто python-стайл с импортами и генераторами
from math import factorial; print(sum([factorial(int(x)) for x in input().split(' ')]))
1 2 3
9
можно было написать это читабельнее, но раз уж просили с гадостью

Иван
06.04.2017
22:11:16
Не знаю. Как бы вы такое в продакшене написали?

Shmelev
06.04.2017
22:11:43
у меня продакшена нет, у меня разве что отчёты и ресерчи

Иван
06.04.2017
22:12:14
Ладно. Сейчас накину хаскель.

kreon
06.04.2017
22:14:33
Для ФП ради ФП? )
Для продакшна есть эрланг, для всего остального - лисп )

Shmelev
06.04.2017
22:15:45
кстати, интереса ради, можно тот пример накатать с питоновской функциональщиной

kreon
06.04.2017
22:15:51
*так чисто набросить перед сном*

Иван
06.04.2017
22:16:25
main = (show . sum . map factorial . map read . words) <$> getline >>= putStrLn

Google

Shmelev
06.04.2017
22:17:13
ну на питоне можно примерно так же написать