tag:blogger.com,1999:blog-824928856526666223.post2790349531882601872..comments2022-11-30T10:25:30.656+02:00Comments on Андрей Светлов: RU PyCon 2013Andrew Svetlovhttp://www.blogger.com/profile/08716418137388253439noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-824928856526666223.post-67802787843370647302013-03-05T14:16:29.000+02:002013-03-05T14:16:29.000+02:00Не переводить механически, а каждый раз внимательн...Не переводить механически, а каждый раз внимательно смотреть. Что, впрочем, довольно долгий процесс.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-26289545747204018502013-03-04T23:59:06.076+02:002013-03-04T23:59:06.076+02:00Это понятно, но как разделить bytes и str в языке ...Это понятно, но как разделить bytes и str в языке с динамической типизацией, если эти типы даже ведут себя практически идентично. Как понять по старой библиотеке, подразумевает ли она старый str как текст или как байты. Заложиться на то, что старый str по сути bytes, а новый исключительно то, что раньше было unicode нельзя, опять же поломается существенно больше библиотек работающих с текстом. Имхо, просто кто-то ленится и придумывает отговорки, сетевую часть на порядок проще портировать, нежели искать текст в виде старого str в каждой второй библиотеке.Anonymoushttps://www.blogger.com/profile/08130135915452160942noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-9557475436498371292013-03-04T22:28:36.841+02:002013-03-04T22:28:36.841+02:00Согласен. Но Армин возражает, и в немалой степени ...Согласен. Но Армин возражает, и в немалой степени по существу. По его мнению при рождении тройки некоторые части stdlib перевелись на str чисто механически, хотя лучше было бы оставить bytes. Это верно. С другой стороны был серьёзный переход и не до всего дошли руки.<br /><br />Речь не о языке а именно об stdlib. Повторяюсь, я с HTTP стеком работаю только глядя «сверху». Но даже для filesystem пришлось потом добавить лазейку чтобы принимать bytes для имен файлов потому что возникают ситуации когда unicode использовать не получается. Native names для файловой системы в Linux/Unix это байты. При дурно сконфигурированной системе (а некоторая поддерживаемая экзотика «сломана из коробки») правильно преобразовать байты в юникод не представляется возможным. Так что не всё так однозначно.<br /><br />Большая часть пользователей эти проблемы никогда не видит. Но если наткнулся на затык — может быть очень неприятно.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-68395590547633890842013-03-04T22:04:54.709+02:002013-03-04T22:04:54.709+02:00Ну вариант с введением альтернативного типа для та...Ну вариант с введением альтернативного типа для такой сущности как строка привёл бы просто к ещё одной строке, третьей. Плохо то, что старые библиотеки использовали строку как массив байт при передаче пакетов по сети. Большинство косяков при портировании связано с read/write, send/receive. Здесь пожалуй тот случай, где совместимость нельзя было оставлять. Писать перед каждой строкой u, обходить dict, учитывать кодировку и прочее было страшно неудобно. Мы поступили проще - Python 2.x для нашей платформы не актуален, волевым решением мы просто оставили все старые библиотеки за бортом.Anonymoushttps://www.blogger.com/profile/08130135915452160942noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-14780836506092671312013-03-04T21:28:31.542+02:002013-03-04T21:28:31.542+02:00Во многом разделяю, но проблемы несовместимости ин...Во многом разделяю, но проблемы несовместимости иногда всё же достаютAndrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-66587699232960283952013-03-04T21:25:41.922+02:002013-03-04T21:25:41.922+02:00После третьего питона, на втором писать вообще не ...После третьего питона, на втором писать вообще не хочется. Факт. Возиться отдельно с str и unicode я и в C/C++ могу. Тому, кто вырезал весь этот бред с ANSI-строками надо памятник поставить.Anonymoushttps://www.blogger.com/profile/08130135915452160942noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-77678652534613093902013-02-27T17:41:18.184+02:002013-02-27T17:41:18.184+02:00Вы не правы. См http://www.python.org/dev/peps/pep...Вы не правы. См http://www.python.org/dev/peps/pep-0394/ чтобы узнать, что должен запускать $ python.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-17053100037844215002013-02-27T16:38:01.695+02:002013-02-27T16:38:01.695+02:00В убунту сейчас вот это: :)
$ python
Python 2.7.3 ...В убунту сейчас вот это: :)<br />$ python<br />Python 2.7.3 (default, Sep 26 2012, 21:51:14) <br />[GCC 4.7.2] on linux2<br /><br />И больно я сомниваюсь, что они перейдут в скором времени на тройку, т.к. даже сама система насквозь кодом пропитана, который прийдется портить.<br />Я уже молчу, что им за такое разработчики голову оторвут. Ведь куча разработчиков пишущих на двойке, неожидано начнут получать щквалы баг репортов, если при апгрейде системы вдруг по умолчанию начнт взлетать тройка, вместо двойки.Vladhttps://www.blogger.com/profile/06426262902569379901noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-29685764302790249172013-02-26T17:24:18.378+02:002013-02-26T17:24:18.378+02:00Поскольку для меня Питон - важный но увы не основн...Поскольку для меня Питон - важный но увы не основной язык, то я смотрю на тройку довольно скептически.<br />Для меня в Питоне важно то, что я могу написать прогу, которая с успехом и минимальными телодвижениями с моей стороны заведется на паре-тройке платформ (винда, линуксы, мак).<br />У меня есть код, написанный еще во времена 2.3-2.4-2.5, который я не вижу смысла портировать на 2.6-2.7, не говоря о тройке. У меня был опыт по портированию моей маленькой библиотеки intelhex на одновременную поддержку двойки и тройки - опыт, который показал, что такая поддержка стоит чересчур дорого.<br />Слишком высокая цена, слишком большой разрыв между двойкой и тройкой. А выигрыш? Просто чтобы поставить галочку, что моя программа поддерживает тройку? Ну, потешил я свое самолюбие, и все.<br /><br />Насчет автоматических перекодировок между не-юникодом и юникодом - тут тоже ведь есть нюанс связанный с быстродействием. А на линуксах, где юникод 32-х битный, так еще и в потреблении памяти, и копировании этой памяти когда требуется.<br /><br />Версию питона могут выбирать те, кто используют его на своих серверах, где все под контролем. Впрочем опыт поиска работы связанной с питоном показал, что 90% или больше - это джанга и веб.<br /><br />А если кросс-платформенные утилиты для десктопа - то расклад совсем другой - ищем наибольший общий знаменатель - версия питона, которая есть на всех поддерживаемых платформах, причем версия должна стоять из коробки. <br /><br />В последней версии ОС мака стоит питон 2.7.2 из коробки. Я еще помню страшилки о том, что в ранних версиях макоси поставить питон - было непросто, и бубен прилагался. Не знаю, насколько это правда.<br />В дистрах линуксов тоже, из коробки часто стоит двойка. Хотя убунта я помню пыталась форсировать переход на тройку.<br /><br />Вобщем все непросто.<br /><br />С одной стороны революционные изменения нужны. А с другой... Может все-таки надо было более радикальные изменения делать и создавать язык программирования с другим названием?bialixhttps://www.blogger.com/profile/03276301722234350242noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-29032362793531062232013-02-26T16:48:35.041+02:002013-02-26T16:48:35.041+02:00Дождитесь видео и слайдов (слайды крайне лаконичны...Дождитесь видео и слайдов (слайды крайне лаконичные, всё равно придется слушать). <br /><br />Это будет лучше моего ограниченного пересказа. Тем более что я не являюсь Django Core Developer (и даже не contributor) и не слежу за всеми изменениями.<br /><br />Включение средства для миграции БД в django core, по моему, очень круто. И я услышал еще несколько столь же впечатляющих планов. <br /><br />Но вам всё же лучше дождаться видео с оригиналом. Я просто недостаточно вовлечен в django чтобы хорошо об этом рассказать.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-23834280514666107992013-02-26T16:40:57.435+02:002013-02-26T16:40:57.435+02:00Типа того. Парня устраивает двойка (и я знаю немал...Типа того. Парня устраивает двойка (и я знаю немало таких людей). Но с последнего визита Армина в Киев прошло полтора года, тройка сильно продвинула свои позиции за это время. Понемногу она завоёвывает популярность и мы имеем некоторое разделение python community на двоечников и троечников. Армина эта ситуация пугает, мне такое положение дел тоже не нравится.<br /><br />С другой стороны что еще можно было ожидать от довольно радикальных изменений, ломающих обратную совместимость.<br /><br />С третьей — превращение unicode в str с выделением bytes очень важно и полезно в большинстве областей применения. HTTP наиболее яркий пример, но, например, проблемы с файловой системой чинились долго и трудно. Victor Stinner проделал гигантскую работу (другие разрабы тоже помогали), последние известные баги исправлены только в 3.4 (и не факт что не всплывет что-то еще). subprocess тоже не закончен, есть corner cases.<br /><br />Это в моих глазах лишь показывает насколько проблема сложна — но переключение на unicode правильный путь с моей точки зрения. Ты тоже наелся с кодировками в своё время. Юникод становится критичным как только программа выходит из сообщества англоязычных пользователей в большой мир. <br /><br />И очень хорошо, что язык подталкивает к написанию программ готовых к суахили и китайскому без предварительной долгой полировки. Лучше, проще и дешевле чинить питон чем каждую написанную на питоне программу.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-90323758996845766422013-02-26T16:21:53.908+02:002013-02-26T16:21:53.908+02:00Armin, don't get me wrong too: I understand an...Armin, don't get me wrong too: I understand and respect your position.<br /><br />I don't operate on WSGI level and cannot be authority in this subject. I only use libraries built on top of this layer — you are much more deep inside.<br /><br />Also I understand your objections for constant bytes->str->bytes encoding in HTTP stack and outcoming problems with string encoding.<br /><br />But I still think the Python 3 is our future.<br /><br />If you and others decide to make unofficial Python 2.8 version maybe it's not bad idea. To make it really useful to community I would to see PEPs that decribes proposed changes well and clean (and forward porting to Py3k as well). I afraid your changes can increase the gap between 2 and 3 instead of decreasing one.<br /><br />Accepting a PEP is long tired process, I know. But it is the only way to roll wheel forward.<br /><br />Thanks for comprehensive comment, Andrew.<br /><br />Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-84247773728711194502013-02-26T16:10:21.784+02:002013-02-26T16:10:21.784+02:00У меня стойкое дежа-вю насчет Армина и питона-трой...У меня стойкое дежа-вю насчет Армина и питона-тройки. Кажется почти слово в слово ты также описывал после украинского пайкона.<br />bialixhttps://www.blogger.com/profile/03276301722234350242noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-14994117502625834632013-02-26T16:00:24.207+02:002013-02-26T16:00:24.207+02:00Спасибо. Выложат видео — посмотрю. Также очень хоч...Спасибо. Выложат видео — посмотрю. Также очень хочу увидеть доклад Власовских — он обычно очень интересные вещи рассказывает. Я говорил как раз перед ним и мне пришлось продолжить отвечать на вопросы в холле.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-7467554475726791832013-02-26T15:57:31.112+02:002013-02-26T15:57:31.112+02:00У тройки есть объективные достоинства и это развив...У тройки есть объективные достоинства и это развивающаяся ветка. <br />Равно как и есть объективные сложности в одновременной поддержке двойки и тройки, особенно для некоторых библиотек в специфических предметных областях.<br /><br />Про юникод: ставить его во главу угла было правильное решение. Ошибкой было переводить некоторые API в stdlib полностью на str. Лучше было бы добавить параллельную поддержку bytes для заслуживающих того случаев (что не поздно добавить и в 3.4 если есть конкретные предложения, я недостаточно погружён в предмет).<br /><br />Про итераторы: не понял. Можешь привести примеры?<br /><br />Об Армине: его позицию понимаю и уважаю. Open Source — дело добровольное.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-26991254760459913522013-02-26T15:47:18.699+02:002013-02-26T15:47:18.699+02:00Еще был отличный доклад Саши Будкаря (Яндекс) про ...Еще был отличный доклад Саши Будкаря (Яндекс) про распространение python-программ на кластер. Хотя он не столько про распространение, сколько про организацию python-консоли, которая позволяет скрипты распространять, запускать и конкатенировать результаты работы. Лично я был очень впечатлен и рекомендую посмотреть запись.<br /><br />P.S. Был крайне рад знакомству :)acherninhttps://www.blogger.com/profile/13261228221332827830noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-40881383771274393132013-02-26T15:20:13.252+02:002013-02-26T15:20:13.252+02:00А может у вас несколько предвзятая позиция по трой...А может у вас несколько предвзятая позиция по тройке? Ну как у BDFL - мы тут пилили пилили, а вы никак не восхищаетесь.<br /><br />Я скорее солидарен с Ронахером - не очень ясно зачем переходить. Есть объективные проблемы с навязанным повсеместным юникодом. Вроде все согласны, что резали обычные строки уж слишком интенсивно, но у меня вообще вопрос оправдано ли было ставить юникод во главу угла? По прошествии времени это уже не так уж и очевидно.<br /><br />Отдельно стоит вопрос по повсеместным итераторам - есть подозрение что быстрее от них не стало, а как раз наоборот.<br /><br />Ронахера вполне можно понять - ему не нужна тройка, ему там неудобно, ему не нравится как там устроены некоторые моменты. Так для чего он должен тратить время на портирование своих библиотек?Deepwalkerhttps://www.blogger.com/profile/11174389329305818117noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-79492376652069862092013-02-26T14:08:09.602+02:002013-02-26T14:08:09.602+02:00Just to give a bit of context to my thoughts about...Just to give a bit of context to my thoughts about Python 3: A port of Werkzeug to Python 3 will most likely break the API for Python 2 users because of the level of where it operates (very close to WSGI). As such a port to Python 3 has been delayed for a while already. Work on that is done however, it just is a question of picking the right time.<br /><br />What I meant by brokenness in Unicode is that writing support for text based protocols that are ASCII based involves a lot of extra work on Python 3 because primitives were removed. The standard library in many of such cases decided to just force unicode in places where they do not belong. For a long time the urllib module in Python 3 was such an example. WSGI/HTTP on Python 3 involves encoding strings into an incorrect encoding to transfer it etc.<br /><br />Don't get me wrong: I was not trying to badmouth Python 3: I am concerned that we're in the process of splitting the community. Python 2 for better or worse will stick around for years to come and we can't forcefully upgrade everybody to Python 3. As such I think it's important to assume that Python 2 will be a valid target for a while and I still think that a 2.8 release of Python would help a lot.<br /><br />I am almost certain companies will start to create their own forks of Python 2 to add functionality that is missing (SNI comes to mind). That idea frightens me.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-89742217267708985972013-02-26T13:01:00.433+02:002013-02-26T13:01:00.433+02:00Спасибо за краткий обзор. Так а что на счёт будующ...Спасибо за краткий обзор. Так а что на счёт будующего джанги то ? <br />Anonymoushttps://www.blogger.com/profile/17186202605074451996noreply@blogger.com