LINUX.ORG.RU
ФорумTalks

Питонистики-фашистики, тред №2

 


0

2

http://habrahabr.ru/post/196624/ — интервью с Гвидо ван Россумом.

Цитатка:

Интерфейсы, абстрактные классы, приватные члены, др… Почему в Python отсутствуют эти вещи?

Гвидо: Я вижу две причины: (а) они вам в действительности не нужны, и (б) их сложно реализовать...

Ну конечно, слово фюрера — закон, необсуждаемый и непререкаемый!



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

абстрактные классы

есть же abc. Это не оно разве?

n_play
()

У тебя какие-то комплексы в отношении Гвидо.

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

Да чего уж там, можно сразу к бороде переходить.

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

Все знают, что лямбды в Python организованы через большую, жирную и волосатую [censored], это даже не стоит упоминания.

makyrros
() автор топика

вторая причина важнее.

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

абстрактные классы редко необходимы. Если нужно, наверное, сработает:

def __new__(self): raise NotImplementedError()

а вместо интерфейсов есть duck-typing

MyTrooName ★★★★★
()

«Сахар» же. Python - это язык сочетающий бедность выразительных средств и вседозволенность... Тогда как абстрактные классы и интерфейсы - это уже совсем другая область.

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

Не понимаю возмущения ТС...

Наверняка Гвидо надоело всё это в тысячный раз рассусоливать и он просто троллит.

Кароче, кому надо убернадёжности, тот кодит на ada, а не обсасывает недостатки и упущения python'а.

jeuta ★★★★
()

Ну конечно, слово фюрера — закон, необсуждаемый и непререкаемый!

Будто бы кроме питона больше ничего нет.

Deleted
()

они вам в действительности не нужны

Пригласите его на ЛОР. Наш человек.

Ttt ☆☆☆☆☆
()

Скандалы, интриги, расследования!

Топикстартера в зоопарке укусил удав и теперь он не может спать?

ptarh ★★★★★
()

не нужны

гвидо все правильно сказал! а ты кончай перлеть в лужи

der_looser ★★
()

Скриптовые недоязычки без статической строгой безопасной явной именованной типизации не нужны.

Bioreactor ★★★★★
()

это просто принципиально другой стиль программирования.

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

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

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

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

ололо, журнашлюшка на моем ЛОР'е

anon1984
()

Ну конечно, слово фюрера — закон, необсуждаемый и непререкаемый!

Всё правильно сказал. На фейхоа статику тащить в динамический язык. Вам что, C# нехватает?

Вот скажите, какой практический смысл в этих вещах, особенно в абстрактных классах в питоне?

atrus ★★★★★
()

С иксами происходит то же самое. Разработчики тянули с приёмом патчей для мультитача, хотя только на опеннете писали о двух реализациях, плюс одна для Android. И только через год, дождавшись релиза Windows 7, разработчики приняли патчи для мультитача. Но не давно готовые, а новые, написанные своими силами. Уродство? Нет, читай дальше. А в 2013 году разработчики иксов сильно полили грязью ужасный мультитач в иксах, написанный кривыми руками. Чуть ниже в интервью выясняется что тот, у кого берут интервью, сам же и написал X Input 2.1. И это сделали аргументацией для «иксы не нужны, будущее за Wayland».

Но это ещё не всё. В той же статье среди «недостатков иксов» перечислена невозможность работы от root в принципе. «Но постойте, в 2008-2009 году были работающие патчи, которые даже принимали в Meego!». Ищу патчи, нашёл. Но они не обновлялись с 2009 года и для новых иксов не предназначены. Может, автор бросил работу над иксами вообще? Да нет, вот он: работает над своим KMS в Red Hat. В Red Hat... То есть начальники ему сказали не развивать патчи, отвязывающие иксы от root, чтобы через 4 года, когда все о них забудут, сказать что «иксы не могут работать без root и это невозможно исправить»? Уродство!

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

Динамика редко нужна.

У меня для вас откровение - пользуйтесь языком со статической типизацией. Вам не хватает? Надо ещё питон переделать?

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

извини но это бред.

может тогда программисту и рекурсию запретить = вдруг случайно ...

сокрытие теми же модулями на отличненько и/или лямдами с их святыми замыканиями.

вообще вахканалия с public|private|protected|pakage?|freind|и т.п - это же реально бюрократия похлеще кобола.

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

может тогда программисту и рекурсию запретить = вдруг случайно ...

Ты не понял. Речь идёт о лучшем разграничении внутренностей и внешних интерфейсов.

это же реально бюрократия похлеще кобола.

У любой медали две стороны. Не нравится — твоё дело. Но не надо всех подряд убеждать что им нужно, а что нет.

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

ну ладно руби где все? поля-данные приватны но обмазыватся public vs private vs protected vs «pakage»|namespace vs friend vs ещё какой нить вывернутый тип сокрытия например для потомков нечётной длины видно для потомков нечётной нет - вот это жир.

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

У меня для вас откровение

Хреновое вышло откровение.

Надо ещё питон переделать?

Я о переделках вообще ни слова не говорил.

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

раз не нужна динамика то причем тут питон?

1) Жизнь она такая, не всегда можно выбирать инструменты, не всегда инструменты хорошо подходят под задачу. Тем более если это универсальные, а не специализированные инструменты.

У питона помимо динамизьма есть и другие качества которые делают его годным для широкого спектра задач.

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

ну хоть признай , что даже если private бывает полезен то уж protected вносит больше усложнения чем приносит упрощения

а уж кошмар friendly ...

т.е отсутствие private вынуждает иным путём защищатся от «плотного связывания» к реализации однако печаль ooп , что им попытались заменить уже существующие механизмы - теже модули(синглтоны)

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

плюс одна для Android

Реализация для иксов для Android?

хотя только на опеннете писали о двух реализациях

А откуда сведения, что те реализации были лучше?

То есть начальники ему сказали не развивать патчи, отвязывающие иксы от root, чтобы через 4 года, когда все о них забудут, сказать что «иксы не могут работать без root и это невозможно исправить»?

Вау, вау, вау, стоп. Вы рассказали классную теорию заговора, но вот тут изложена совершенно другая версия.

Суть: После создания KMS это стало возможным, но доступ пользователей к /dev/input, необходимый такому серверу череват тем, что пользователь может завершить сессию, оставив работающим приложение, держащее открытым такой файл и логирующий пользовательский ввод другого пользователя.
Мобильные Linux запускали x-сервер не от root, но они не позволяют multi-user.

Так что шапочку из фольги может рано надевать?

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

Хреновое вышло откровение.

Нет, нормальное. Вы прикинули как бы забить гвоздь отвёрткой и жалуетесь, что она слишком лёгкая для этого и не той формы. Лол, как бы.

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

По ссылке не ходил?

Теперь сходил. О боже, имелся в виду «компилятор python»? Ну тогда да.

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

Вы прикинули как бы забить гвоздь отвёрткой

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

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

Питон это универсальный ЯП.

Не бывает таких. В смысле, бывают, но универсальными можно считать всех, обладающих полнотой по тьюрингу.

Бывают языки со статической типизацией, бывают с динамической.

И я указал на его недостаток как универсального ЯП.

Вы указали на то, что вы считаете недостатком. С другой стороны я могу сказать, что реализация обобщённого программирования (шаблоны) в языках со статической типизацией является их недостатком.

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

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

true_admin ★★★★★
()

Кстати, есть ещё эпичный кусок в интервью. Там Гвидо писал про то что в продакшене до сих пор на 2.7 не все перешли. Вот это, имхо, ппц.

true_admin ★★★★★
()

Нельзя ли подкрепить свой пост примером который убедительно показал обратное? К примеру, какой ваш код стал бы хуже, в практическом смысле хуже, если бы вы не воспользовались интерфейсом или абстрактным классом?

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

Не бывает таких.

Скорее всего он имел в виду ЯП общего назначения.

bbk123 ★★★★★
()

Они действительно не нужны. По рукам вас ударит начальник

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

Моё имхо, динамическая типизация редко нужна.

И вновь вопрос - зачем питон? Язык, изначально создававшийся именно таким. Надо использовать C/C++.

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

И вновь вопрос - зачем питон?

Надо использовать C/C++

На питоне писать гораздо легче чем на плюсах или крестах: простой читабельный синтаксис, меньше заморочек с пямятью, высокоуровневые типы данных, простой ООП, много готовых библиотек, меньше граблей с портабельностью кода итд итп.

Есть кандидаты на роль «статически типизированного питона», но ими никто не пользуется.

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

Есть кандидаты на роль «статически типизированного питона», но ими никто не пользуется.

Например, C#. Пользуются. :)

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