LINUX.ORG.RU

Python 3 для веба - есть ли смысл?

 , ,


2

1

Привет.
Потихоньку пилим веб-приложение на питоне. Проект just 4 fun, участвует несколько человек, в итоге хочется добиться юзабельного состояния и какого-то практического применения наработок.
Проект начинали с Python 2.7, т.к. ещё не знали, какие библиотеки будем использовать. Сейчас вот думаю - а есть ли смысл переходить на тройку? Больше всего привлекает юникод и повышенная стабильность (по крайней мере разрабы так утверждают).
Основные библиотеки в проекте - Tornado и SQLAlchemy. Они поддерживают Python 3 уже достаточно давно, хотя сами разрабы скорее всего пилят и отлаживают на 2.x. Есть пара библиотек, которые ещё не портированы на тройку (интерфейсы к Mercurial и Git) - не очень приятно, но можно свелосипедить свои альтернативы.
У кого-нибудь есть опыт работы с Python 3? Какие впечатления? Стоит ли переходить?

★★★★

Есть любительский проект на оном.

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

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

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

Со стабильностью проблем нет? Имеется ввиду сам интерпретатор, stdlib и сторонние либы.
На идеологию как-то вообще пофиг.

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

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

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

А что вообще имеешь в виду под стабильностью? Не падает внезапно - не падает. Не портит данные, выполняет то, что написано в коде. Ещё что-то?

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

А что вообще имеешь в виду под стабильностью? Не падает внезапно - не падает. Не портит данные, выполняет то, что написано в коде.

Ну в основном это, плюс всякие corner cases. Сходу не могу придумать примера.

h31 ★★★★ ()

Больше всего привлекает юникод

Будто python2 его не поддерживает.

и повышенная стабильность

Повышенная стабильность чего, тройки? Т.е. ты утверждаешь, что новая поделка стабильнее двойки, которую вылизвали десяток лет?

Стоит ли переходить?

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

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

Будто python2 его не поддерживает.

в 2 юникод не лежит в основе работы со стрингами. так то, 2 - шлак

которую вылизвали десяток лет?

нынешняя 2 - это доунпатч с тройки, дорогуша

С учетом того, что двойку будут официально поддерживать еще пяток лет,

это благодаря таким ретардам-быдлокодерам, как ты

производительность двойки до сих пор выше

щито?

А потом и перевести сможешь на тройку, если возникнет желание.

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

anonymous ()

Больше всего привлекает юникод

в python2 нет юникода? :)

Лично для меня подход «строка это набор байт, а юникод это набор символов» из python2 - однозначнее и привычнее, удобнее данными манипулировать.

odii ()

ps. лично я не вижу проблемы переносить на python3... но и не вижу смысла. тем, кому нужно «модное и современное», пусть идут на ruby и node...

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

ты вообще понял, о ком я? я говорю о тех, кто орут на всех углах «я не делаю на python2, и ты не смей делать!». собственно, их я примерно туда и послал, только веееежливо.

odii ()

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

menangen ★★★★★ ()

Работал с третьим питоном. Проблем из-за того что третий не было. Единственное это портирование старого кода и отсутствие одной либы. В третьем питоне много хорошего в стандартной библиотеке: concurrent.futures, энумы.. Однозначно стоит переходить.

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

Переходить стоит только в плане дальновидности

Python 2 будет поддерживаться до 2020 года, а потом продлят до 30 еще :) так что это не аргумент

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

Продлевают именно из-за таких ленивых товарищей, которые не знают что такое прогресс(да и я отметил, что это тут будут оспаривать (: ).

Lilly ()

У кого-нибудь есть опыт работы с Python 3? Какие впечатления?

Не web, но networkx хоть и портирован на python3, но графики строить отказывался.

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

Нет. Он будет доступен для загрузки на сайте и открыт для сторонних патчей.

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

Пайтон

За Вами уже выехали.
h31, камрад, если пилите на двойке, то не стоит как, простите, проститутка прыгать с двойки на тройку, с тройки на двойку. На переход больше ресурсов убьёте. Текущий лучше спокойно развивать на том, что есть. А новый... Вот новый и на 3 можно повесить. Тут ситуация почти как с гтк: тоже 2 ветки, тоже 2 и 3, и тоже много народа мучается с выбором, то ли на 2 остаться, то ли на 3 перепилить, а потом перепилят на 3 и горючими слезами обливаются, что надо возвращать всё взад на 2. В общем, игра свеч не стоит.

Hertz ★★★★★ ()

вы все ущербные какие-то. какая вообще проблема поддерживать 2.6+ в единой кодовой базе? никакой. единственное что плохо так это что нельзя coroutines пользоваться, и некоторые вещи из новых версий stdlib приходится отдельными бекпортированными пакетами ставить в старых питонах.

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

какая вообще проблема поддерживать 2.6+ в единой кодовой базе?

Ты верно хотел сказать 2.7, 3.3, 3.4? Да и то, некоторые усилия прилагать нужно. 2.6+ это ад.

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

За Вами уже выехали.

Да пусть выезжают, оспаде. Надоели уже воины священной терминологии и любители посмотреть «Летающий Цирк Монти Питона». От того, какое из двух названий используешь - суть не меняется.

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

('2.7', '3.3', '3.4') так вообще элементарно. six и поехали. 2.6 и 3.1+ тоже можно, вот 3.0 поддерживать это гемор, да. вы еще скажите что на pypy не тестируете.

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

вы еще скажите что на pypy не тестируете

Еще хуже. Мы пишем только под 2.7))

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

чувак, ну возьми любой код, запусти на 2.7 и 3.4 и посмотри. какой тебе еще источник нужен?

val-amart ★★★★★ ()
Ответ на: комментарий от bj

Ты верно хотел сказать 2.7, 3.3, 3.4? Да и то, некоторые усилия прилагать нужно. 2.6+ это ад.

а у меня 2.5 поддерживается, бебебе :)

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

На переход больше ресурсов убьёте. Текущий лучше спокойно развивать на том, что есть. А новый... Вот новый и на 3 можно повесить.

Сам код перевести не проблема - я старался не пользоваться deprecated вещами, так что скорее всего всё ограничится добавлением decode/encode в паре мест.
В основном меня беспокоит деплой - народ пилит проект на венде, а там поставить все библиотеки - тот ещё квест. Для 2.7 вроде всё настроили, если переходить на тройку, то всё нужно будет начинать сначала. Да и вообще, собирать всех, объяснять, что нужно поставить другой питон, что-то там перенастраивать - брр.

h31 ★★★★ ()

Python — есть ли смысл?

Fixed FTGJ.

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

какая вообще проблема поддерживать 2.6+ в единой кодовой базе? никакой.

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

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

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

bj ()

У трёшки со стабильностью проблем нет. Я бы делал на трёшке потому что это тот же питон2 только +5 лет эволюции. Мне прогать на нём приятнее чем на втором.

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

ну да, там каменный век тогда был, ничегошеньки не было :)

была бы цель поддерживать и ниже - поддерживал бы и ниже :)

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

почему же плохое?.. я имел ввиду что те кому оно правда надо не лазят по форумам с вопросами «о, а какой питон лучше, их так многооооо»...

ei-grad ★★★★★ ()
Ответ на: комментарий от h31

скажу что эта магия реально работает, иногда даже быстрее грамотно сделанного cython / ручного завертывания сишечки. еще скажу что поддержка тройки наконец-то на нормальном уровне, что не может не радовать. проблему с некоторыми scientific библиотеками лично меня вообще не волнуют. некоторые пользователи держат продакшен на pypy, все отлично. да и у нас тоже имеется. в любом случае я на нем тестирую (tox ftw!), потогло пару раз отловить ситуации когда код полагался на поведение cpython, которое implementation-specific а не часть стандарта. рекомендую короче хотя бы интегрировать в CI и вполне годно для прода если код под 2.6-2.7 и JIT для вас имеет смысл.

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