@DC7499

Страница 643 из 1477
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/

Питон специально делают непригодным для функциональщины

можно использовать чисто эту парадигму, но результат будет тем ещё
Как писать на питоне, чтобы получить не "тот ещё" результат по производительности?

Переписать всё на плюсы и вызывать их из питона?

https://m.habrahabr.ru/post/158385/
Пардон, не та ссылка. Я хотел вот эту показать http://neopythonic.blogspot.ru/2009/04/tail-recursion-elimination.html?m=1

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
вот а какие вы такие задачи решаете, что пайтон узкое место?
У моих коллег, которые писали на нём под слабые arm-процессоры, неплохо горело от его производительности. Говорят, что если подгружать много модулей, у него уходит несколько секунд на старт.

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
но по мне, код на питоне куда более легко разрабатываемый и поддерживаемый, и проигрывать секунды на каждом запуске мне нравится больше, чем проигрывать часы на разработку
Я никогда не хотел бы читать питоновые программы длиннее 100 строк. Потому, что в коде на питоне слишком много шума. Слишком много состояний переменных нужно деожать в голове и прилагать усилия, чтобы понять, что хотел автор. Мне это просто не нравится.

Admin
ERROR: S client not available

Иван
06.04.2017
22:02:19
но вот с ооп там всё грустно, емнип
Иногда для себя пишу на хаскеле. Ещё ни разу не пожалел, что там нет ооп.

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
ну на питоне можно примерно так же написать

Страница 643 из 1477