LINUX.ORG.RU

Python деградирует?

 ,


1

1

Вылез я из криокамеры и вот, что обнаружил — из Python 3.x удаляют все, что является «сложным» (вопрос для кого?). Один из примеров — метод reduce().

Как пишет Гвидо:

I’m not killing reduce() because I hate functional programming;

I’m killing it because almost all code using reduce() is less readable

than the same thing written out using a for loop and an accumulator variable.

Иными словами — повышаем читаемость, чтобы очередному «индусу» даже знать не нужно было про функциональное программирование?

make java from python!

Deleted
()
Ответ на: комментарий от GreenBag

Вдоль, только вдоль.

Кому? Гвидо?

Зачем Гвидо? Тем, кто истерит и постит 4.2

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

Python деградирует?

Разумеется. Когда его интерпретатор занимал 0 строк кода, он был идеален. С тех пор он деградирует.

А если серьезно, вспомните «что есть только один способ сделать это».

buddhist ★★★★★
()

Ну все, срочно вдоль!

Zhbert ★★★★★
()
Ответ на: комментарий от buddhist

"что есть только один способ сделать это".

Да, возможно вы тут правы — PEP20 явно об этом гласит. Вот вам и ответ на вопрос Ruby vs Python. И я, честно, тут python не поддерживаю. Ональная огороженность к добру не приведет.

GreenBag ★★
() автор топика

Если так будет продолжаться, то поубирают тучу методов и останется ещё один JavaScript.

Deleted
()
Ответ на: комментарий от Deleted

то поубирают тучу методов и останется ещё один JavaScript.

не следует сравнивать Python с JS, ой не следует...

AGUtilities ★★★
()

как читабельность связана с индускостью?

AGUtilities ★★★
()
Ответ на: комментарий от Deleted

Если так будет продолжаться, то поубирают тучу методов и останется ещё один JavaScript.

Перепишем все на этом, новомодном язычке, забыл как называется, на перл похож, название еще такое, с паровозами связано.

Ok
()
Ответ на: комментарий от GreenBag

теперь на каждый чих import делать?

да, и это мегафича по сравнению со всякими php у который в стандартный неймспейс over 5k функций загружено.

Осталось только убрать всякие type() и прочие имена которые часто нужны самому.

true_admin ★★★★★
()

Так если обратить внимание на Python Zen, то всё Гвидо сделал по правилам. Язык должен быть простым, читаемость должна быть на высоте, и для любой задачи должно быть своё красивое, каноническое решение... Это же философия Python, языка для обучения школьников и студентов. Если вам нужен язык перегруженный синтаксическим сахаром, и удобными конструкциями, мощный в руках опытного программиста, но при этом не очень дружественный к новичкам - вам нужно обратить внимание на Ruby. Код на нём у настоящего мастера немного напоминает алхимические тексты, но зато какая мощь:)

lucentcode ★★★★★
()
Ответ на: "что есть только один способ сделать это". от GreenBag

Язык людей изучающих программирование, и язык для профессионалов - они не могут быть похожи. Профессионалы любят синтаксический сахар, мощные конструкции, которые позволяют сделать код короче, различные изящные хаки. При таком подходе для неофитов их код становится похожим на абракадабру. Популярность Python именно в том, что он дружествен к новичкам. Есть один способ сделать что-то, вы его изучаете и можете применять. С Ruby всё сложней,сколько в программистов Ruby, столько и мнений о оптимальном решении той, или иной проблемы. Если сравнивать с компилируемыми ЯП, то Python - это Java, а Ruby - это C#. Одним программистам нужен логичный и понятный ЯП, без сюрпризов, другим - мощный, хоть он и перегружен функционалом, без которого можно обойтись. Тут уж каждый должен выбирать, что ему ближе.

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

Если вам нужен язык перегруженный синтаксическим сахаром, и удобными конструкциями, мощный в руках опытного программиста, но при этом не очень дружественный к новичкам - вам нужно обратить внимание на Ruby. Код на нём у настоящего мастера немного напоминает алхимические тексты, но зато какая мощь:)

Ты просто ломаешь стереотипы, всегда считал, что такое можно сказать про perl, но ни как не про ruby.

anonymous
()

Обычно над софтом работают в команде и чтобы каждый новый человек мог максимально быстро влиться в разработку и стараются писать как можно более читаемый код.

f1xmAn ★★★★★
()
Ответ на: комментарий от f1xmAn

Обычно над софтом работают в команде и чтобы каждый новый человек мог максимально быстро влиться в разработку и стараются писать как можно более читаемый код.

Инкапсуляция и тесты спасут ваш маленький коллектив от смертоубийства.

anonymous
()
Ответ на: комментарий от Deleted

Я опоздал с этой новостью :) . Там еще надо библиотеку underscore добавить, для пущей похожести.

Vit ★★★★★
()

Тормозной, негибкий, а теперь ещё и паскаль-подобный язык. Там, где надо динамичность - пишут шелл. Где скорость - юзают Си-асм. Где гибкость - стандартМЛ-хаскель. Своё отыграл - пока был вакуум, он его заполнял, в промежутке между шеллами и плюсами.

sanaris
()
Ответ на: комментарий от lucentcode

Весь этот зоопарк языков, просто от нежелания недопрограммистов ходить на лекции по Лиспу-МЛ в бытность студентами.

sanaris
()

В базовой части языка таких трудных концепций и не должно быть. А великие гуру всё равно сразу импортируют модуль itertools — там всё есть.

Deleted
()
Ответ на: комментарий от sanaris

я опять в свою дуду подую...

Универсальный но сложный язык никому не нужен, на нём просто некому писать будет кроме пары гениев в университетах.

dmitryalexeeff
()

тс деградирует,как и половина отписавшихся,неотличающих ЯЗЫК от ФРЕЙМВОРКА/набора базовых функций...

По первых-питон язык программирования,и на питоне можно дублировать ЛЮБОЙ метод что входит(или входил как у ТСа) в стандартную поставку,т.е. пиши модули и классы-свои библиотеки,и юзай их.

А то что убрали бесполезную функцию,яб 90% дефолтного питона порезал и разбил на модули как минимум,ибо уже сегодня лефолтный питон превращается в монолитного монстра.

anonymous
()

Предлагаю идти ему дальше в этом направлении - сделать так, чтобы функции нельзя было передавать в качестве аргументов, чтобы они были не обычными объектами а некоей другой сущностью

anonymous
()
Ответ на: комментарий от buddhist

Должен существовать один — и, желательно, только один — очевидный способ сделать это.

Так оно звучит. И reduce - очевидный способ, а цикл - нет :) А если серьёзно, тот же map можно выполнить, ЕМНИП 3 способами: цикл, map и [f(x) for x in list]. Т.е. питон никогда этому правилу не следовал)

ЗЫ. А как у них работает reduce, если нет поддержки хвостовой рекурсии? Если «список» большой, будет ли stack overflow?

anonymous
()
Ответ на: комментарий от lucentcode

нужно обратить внимание на Ruby

Надо же было в слове Perl6 сделать столько ошибок :)

redgremlin ★★★★★
()

У тебя очень качественный криогент.

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

ЗЫ. А как у них работает reduce, если нет поддержки хвостовой рекурсии? Если «список» большой, будет ли stack overflow?

reduce это не рекурсия. это свёртка, как, например, хаскелльный foldl

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

Там нет никакой рекурсии. Из-за чего стек должен переполняться??

Virtuos86 ★★★★★
()

Всё правильно сделал. Python объектно-ориентирован до корней волос, логично было перенести ФП-специфичную функцию в соответствующий модуль.

krakatau
()
Ответ на: комментарий от anonymous

reduce - очевидный способ, а цикл - нет

А это уже на совести Гвидо :)

buddhist ★★★★★
()
Ответ на: комментарий от BattleCoder

Один я считаю, что один вызов reduce будет намного читаемее for-loop?

Нет.

cab ★★★★
()
Последнее исправление: cab (всего исправлений: 1)
Ответ на: комментарий от anonymous

CL же. Перл отлично читаем, если при написании хоть немного об этом заботиться

marvin_yorke ★★★
()
Ответ на: комментарий от lucentcode

Профессионалы любят синтаксический сахар, мощные конструкции, которые позволяют сделать код короче, различные изящные хаки.

s/профессионалы/задроты/g

Профессионалы пишут код, понятный даже школьникам и бабушкам. Профессионалы никогда не используют «мощные конструкции». Пишется-то код один раз, можно и потерпеть, а вот читать его потом будут много-много раз и самые разные люди с разной начальной квалификацией.

anonymous
()
Ответ на: комментарий от lucentcode

Язык должен быть простым, читаемость должна быть на высоте

Это точно сказано про язык с инфиксными операторами, приоритетами и кучей особых синтаксических правил?

Если бы Гвидо заботила читаемость - он бы основал синтаксис на s-exp.

naryl ★★★★★
()
Ответ на: комментарий от naryl

Это точно сказано про язык с инфиксными операторами

только про такие и может идти речь в данном контексте

wota ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.