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.

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

Хм, у меня третий и работает, хм...

vertexua ★★★★★
()

С Новым годом разморозкой ТС!

Woklex
()

Кстати да. Все эти 'функциональные' фишки ухудшают читатабельность и заставляют думать не хуже синтаксических сахоров, а может даже и хуже.

чтобы очередному «индусу»

а почему нет? Тут даже на ЛОРе уже жабу начали нахваливать. Тенденция.

даже знать не нужно было про функциональное программирование?

Да, лучше не знать, пусть лучше мучуются с ООП.
Писать в ООП стиле противно — но это делают индусы-рабы, а зато потом белым людям американцам удобнее читать что они там понаписали и передавать на доработку рюсске/китайске-рабам.

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

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

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

Писать в ООП стиле противно

Учитывая, сколько ещё остальных вещей, которые тебе противны, ООП это годная штука :}

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

Там, где надо динамичность - пишут шелл.

Шелл не пригоден вообще ни для чего кроме «скопировать пару файлов», «посоздавать пару папок», «запустить программу на Python/Ruby/Perl/C»

Где скорость - юзают Си-асм.

Асм уже осталься на специальных устройствах. На С обычно память экономят, потому что скорость достигается кластером или GPGPU

Где гибкость - стандартМЛ-хаскель

В идеальном мире ылитариев. Не говоря уже о том что надо бы пояснить что значит гибкость. Реально используют энтузиасты и люди, которым нужен DSL, а на основном языке приложения это делается не очень удобно. Еще лабы удобно писать, тоесть входные данные -> обработка -> вывод

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

Да, reduce - не просто «трудная», но еще и лишняя концепция. Надо звать суровую братву Оккама, они с такими сущностями быстро разберутся.

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

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

Код профессионалов никогда не будет похож на абракадабру. Код профессионала поймет даже манагер с тремя классами церковно-приходского MBA. Код, похожий на абракадабру, пишут только закомплексованные школьники.

anonymous
()

Вообще, согласен, ФП таки стоит в противовесе читаемости. Но мне совсем не нравится что волевые решения Гвидо так много значат. Чего стоят одни инкременты и свич.

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

ООП это годная штука

а я что говорю?
Годная, годная для твоих хозяев. Вот представь тебя попросили написать программы и ты такой:
Вот есть такой-то класс делат то-то, вот есть другой класс — делает то-то, вот третий класс... Всё, тебя можно увольнять — в этом коде разберётся кто угодно.
А теперь представь, что ты своим хозяевам возвращаешь код в виде
map(reduce(fold(lambda((yield тыры пыры)))))
Да это же просто fuuuuuuu у них случится. Кто это потом разгребать будет, когда тебя уволят?

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

На С обычно память экономят, потому что скорость достигается кластером

Java десктоп - просто поставьте кластер для декодирования видео, просмотра веб-страничек, компрессии больших файлов и т.д.

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

Код профессионалов никогда не будет похож на абракадабру

плюсую, наоборот - его читать очень просто

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

Советую обратиться к специалисту пока ещё не поздно :}

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

Блин, слишком поздно увидел это пост, до этого думал что ты программистом работаешь. А так нет, ты школьник с кухонными разговорами. Борись против прогресса дальше.

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

Большинство задач вообщем работают не на твоем десктопе.

тебе рассказать какой софт работает на серверах?

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

Цикл универсален, а reduce - жалкий частный случай.

Шиза косит наши ряды! Мне стыдно за этого анонимуса.

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

Студент вертихуев, знайте свое место (у параши) и не вякайте на настоящих профессионалов. Вам, студентишко, еще расти и расти до таких, как Bad_ptr. И, скорее всего, никогда умишка не хватит дорасти.

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

Bad_ptr, залогиньтесь назад, не лень капчу печатать?

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

А так нет, ты школьник с кухонными разговорами.

ну а ты раб корпораций, тогда.

Борись против прогресса дальше.

зачем? ☺ Только не говори что Scala — это прогресс, а выкидывание всяких reduce'ов из питона — это не прогресс.

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

Вы утверждаете что я его не пишу? Ну чтобы было понятно о чем мы говорим

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

То есть, ты хочешь сказать, что reduce - более общий случай, чем цикл? Ололо!

Лолка, ты, умишко то поправь. В общем случае reduce эквивалентен оператору неявной рекурсии, которая в свою очаредь мощнее цикла в силиу того, что цикл отображается лишь на подмножество хвосторекурсивных функций, дебилушка ты моя!

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

ололо! Код встудию!

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

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

Лол, лошара - на reduce произвольная система взаимно рекурсивных функций не отображается.

А так, конечно же, цикл тоже лишняя сущность, потому как есть goto. А вот хвостовой рекурсии как раз таки и нет (и не надо, потому как очень дорого ее на реальном железе делать).

anonymous
()

Нет, он не деградирует. Он уже DNIWE E*NOE.

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

А вот хвостовой рекурсии как раз таки и нет (и не надо, потому как очень дорого ее на реальном железе делать)

Чаем подавился

vertexua ★★★★★
()

Блин, не нарушайте правила, это потом нереально почистить чтобы нормальные посты тоже под рубку не попали.

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

Но манера разговора гоповская...

А как иначе то? Разумения нет, а мнения имеют. На всех вежливости и манер не напасешься.

Love5an?

Я - не Ловсан, Ловсан - не я.

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

Лол, лошара - на reduce произвольная система взаимно рекурсивных функций не отображается.

forever facepalm. Подлечись аннон.

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

Последнее время ruby всё больше похож на perl, только с другим синтаксисом. Если вам нравится perl, понравится и ruby.

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

А вот хвостовой рекурсии как раз таки и нет (и не надо, потому как очень дорого ее на реальном железе делать).

мда. no comments.

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

Может быть и так... С другой стороны, некоторые программисты используют отдельные плюшки функциональных языков, но не способны думать в функциональном ключе, им всё же милее императивный стиль мышления. Боюсь, им Lisp не подойдёт.

lucentcode ★★★★★
()

Иными словами — повышаем читаемость

Как, как она повышается? Вместо логичного человеческого понятия 'свертка' теперь придется пердолить анрилейтед хероту вроде циклов или явной рекурсии, а наркоманы еще и трамплины накодят. И этим повысил читаемость, сириусли?

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

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

им всё же милее императивный стиль мышления. Боюсь, им Lisp не подойдёт.

Lisp вполне себе императивен, но да, он им не пойдет в силу косности их мышления.

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

Ок, на «оскорбления» и т.д буду стараться не отвечать.

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

Плохая читаемость кода нередко возникает от обильного использования различных синтаксических конструкций, от использования которых можно было бы и отказаться. С другой стороны, язык без синтаксического сахара не позволяет тем, кто его очень хорошо изучил, делать свою работу быстрее, и более изящным путём(путём использования продвинутых возможностей языка, и различных не очевидных приёмов по сокращению кода). Ясно, что слабо знакомый с ЯП новичёк в таком коде легко потеряется. Для ЯП для обучения студентов азам программирования(вроде Python и Pascal) это недопустимо. С другой стороны, в реальном мире программисты ленивы, и пытаются укоротить свою портянку с кодом, отсюда и тяга к использованию языков с продвинутыми возможностями. Отсюда и пропасть между языками для новичков, и для давно работающих профессионалов.

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

И получил бы Scheme? Другой простой ЯП для обучения студентов азам программирования? Зачем тогда было вообще новый ЯП городить?

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

Вы говорите очевидные вещи. Люди привыкшие к Pascal-way будут просто это отрицать. Смиритесь, доказать нельзя ничего и не нужно. Троллить можно

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

Вот в этом и беда. Профессионалы используют мощь языка по полной, в силу своей лени. Они не понимают, что если вместо клёвой новой функции для обхода всех членов массива они используют обычный цикл, то новичкам их код будет понятней, и они(возможно) даже смогут его доработать. Профессионала от новичка отличают две вещи: глубокое(а не поверхностное) знание ЯП, на котором он работает, и большая гибкость мышления. И забывать об этом различии не стоит.

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