LINUX.ORG.RU

Обзор новых возможностей в Python 2.6 и 3.0

 ,


0

0

В сентябре 2008 года должны выйти сразу две версии языка Python — 2.6 и 3.0. Версия 3.0 потеряет обратную совместимость с линейкой 2.x. Облегчить переход на новую ветку должна версия 2.6, в которой будут реализованы основные возможности из Python 3.0, но в которой еще сохранится обратная совместимость с предыдущими версиями. Таким образом, в версии 2.6 уже можно будет пользоваться многими возможностями Python 3.0, но старый код будет продолжать работать, и будет время для перехода на Python 3.0.

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

>>> Подробности



Проверено: Shaman007 ()

Ответ на: комментарий от xTERM

> Я разлогиниваюсь. Не на всегда (пока). Пока что на пару месяцев. Хотя может и дольше

Вот что Питон животворящий делает! Слава Гвидо, одним сноботроллем временно меньше.

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

> Нет, хуже - там вся арифметика сделана длинной.

Как в erlang? И правильно, для скорости есть другие способы.

sv75 ★★★★★
()

опять будут несовместимы между собой?...................................................

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

> я буду доволен когда поганая (как пример) утилитка на питоне для Ubuntu 7.10 буде нормально работать на Ubuntu 8.10 и не надо будет обновлять по спирали весь ворох питонового хозяйства

scons работает на Питон1.5 - Питон2.4, так что при желании так можно было бы сделать и эту убунтовую утиль. Видно, такого желания не было, но это не вина Питона.

tailgunner ★★★★★
()

Обидили бедного xTERM... ЛОР крайне отрицательно влияет на психику людей.

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

+10
придумали херню и теперь будут ее проповедовать

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

> Видно, такого желания не было, но это не вина Питона.

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

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

>Это уже даже не смешно. Сколько можно тыкать в академические тесты? В реальности всё по-другому. На первый план выходит высокоуровневость языка, скорость разработки на нём, поддержки кода, количество разработчиков, требуемых под проекты.

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

А по поводу двух гигов для жабы - хэловорд запускается с ограничением в 1 метр (учтите что при его запуске стартует JVM, которая тоже кушает память), а по умолчанию в жабе стоит ограничение в 64 метра - и для большинства приложений его таки хватает, исключение составляют - IDE, серверы приложений, различный софт (обычно серверный, сразу замечу - время запуска для него абсолютно некритично), обрабатывающий большие объемы информации и, разумеется, поделки криворуких ананимусов, которые подняли страничку с хэлловордом на JBoss и теперь орут "Жаба тормоз"!

И таки да - скорость и качество разработки приложений играет очень важную роль. Именно поэтому я возьму Spring, JPA (или какой-нибудь маппер запросов), ActiveMQ, GlassFish, Tomcat или любой другой фреймворк/сервер имя которым легион, а если мне понадибится скриптинг - то просто прикручу туда же груви, или вообще всю софтину на нем напишу.

Питон? Блоки кода отступами, очередная "стандартная библиотека", которой никто кроме питона не пользуется, сомнительная производительность даже по сравнению с жабой, относительно низкая востребованность, отсутствие обратной совместимости (в жабе до сих пор есть совместимость с первой версией). Вопрос: а нахрена?

Я лучше буду пользоваться груви - тем более, что в жабу 7 должны добавить invokedynamic, что благоприятно скажется на динамических языках для JVM. И мне непонятно, как питоновцы могут получать удовольствие от того, что Гвидо их кидает с обратной совместимостью и это не первый раз.

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

> scons

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

P.S. Я не xTERM.

P.P.S. За давностью лет мог попутать чего, но в целом - правда.

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

>> Видно, такого желания не было, но это не вина Питона.

> прикидываешся, да ?

Нет.

> сначала декларирутся совместимость

Снизу вверх.

> по прошествии времени ломают обратную соместимость с умным видом.

Совместимости сверху вниз не обещали.

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

>> scons

> Отличный аргумент, кстати, почему не надо писать программы на питоне. Даже на небольшом проекте он несколько секунд тратит на определение того что надо собирать

> За давностью лет мог попутать чего

8)

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

В конкретных цифрах мог ошибиться, но что scons тормоз - помню точно.

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

>> Пока на него не переведут большинство библиотек и фреймворков, о переходе не может быть и речи.

>держать две версии и указывать #!/usr/bin/python3 ?

Судя по тексту новости, некоторое время мы будем сидеть на 2.6, где в какой-то степени работает и старый код, и новый.

Laz ★★★★★
()

А в чем преимущества Python перед Basic?

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

> Совместимости сверху вниз не обещали. ах ,ну да - полный GPL кругом :))) только эти все непрестанные "улучшения" для linux уже несколько достали за последние лет пять и порой закрадываются кромольные мысли - "изменения ради самих изменений" снова появится студент которому будет влом изучать и совершенствовать уже сделаное - проще будет придумать новый язык с "тремя отступами" и передрачивать лет десять все либы и проложения. Далее найдутся идиоты которые на этом сделают продакшн и будут стоять насмерть - "а мы уже этим пользумся и все работает - шо я делаю не так ?" да , хрен с ними - пусть будет хоть несколько сотен языков :))) вот только не суньте наспех сделанное в базу дистра , играйтесь себе в программирование в продакшене и на деньги заказчика :))) - ибо сил уже нет никаких от дурной работы. вантузоиды порой в лучшем положении оказываются - увы :(((

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

>> Совместимости сверху вниз не обещали.

> ах ,ну да - полный GPL кругом :)))

Совместимости сверху вниз не обещает никто, даже венда.

> эти все непрестанные "улучшения" для linux уже несколько достали за последние лет пять

Понимаю, но за те же 5 лет появились дистры с длительным циклом поддержки.

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

Этого не понял. О чем конкретно речь?

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

> Совместимости сверху вниз не обещает никто, даже венда.

только не надо лукавить .нехватало еще чтоб в си такие новшества были

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

>Зато в плюсах - всегда одинаково выглядящий код. Для тех, кто хоть раз видел программу на си из >1000 строк без отступов и с расстановкой скобок "как в голову придет", сразу станет понятно это преимущество.

Убейся, тупой тролль. В твою башку не приходит, что программисты на Си, в отличие от Питонщиков, используют auto-indent? (для тупых поясню, что auto-indent - это не то, что есть в gedit)

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

На 2.5 тоже нормально работает.

c: legrer

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

>> Совместимости сверху вниз не обещает никто, даже венда.

> только не надо лукавить

Назови, кто обещает совместимость "сверху вниз".

> нехватало еще чтоб в си такие новшества были

Язык Си существует с 1972 года. Последние несовместимые сверху вниз изменения были с C99 - как минимум поддержка комплексных чисел и именованных инициализаторов. Т.е. - 27 лет, а несовместимые изменения всё еще происходят.

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

> Этого не понял. О чем конкретно речь?Этого не понял. О чем конкретно речь?

заметно
ничего , может и "конкретно" прочувствуешь
лет через пять :)))

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

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

Что все так плохо даже при том что идентация каждого уровня и блока может быть своя ? Может надо просто больше времени уделять проектированию ? Говорить о непригодности из-за таких вещей это все равно что сетовать на неудобство использования goto в ооп.

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

+10 Если на JVM поставить язычишко по-удобнее (Scala та же), то Питон нервно курит в сторонке. (как минимум на сервере)

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

да ты просто давно не получал в табло со всего наскока урод

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

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

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

> си++ говно, пора вырасти тебе троль

сказала сопливая недоросль

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

2Led *** (*) (29.06.2008 6:24:30):

> А это было мнение анонимуса-быдлокодера (того же самого, который
> кроме C++ и Python ничего не знает) о моей скромной персоне. Я
> аплодирую стоя!:)

Зачем стоять, ты лучше побегай. И не аплодируй, а барабан на шею
и в руки горн. Так смешнее будет.

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

>> На первый план выходит высокоуровневость языка

> Ой, надо же! А когда те же аргументы приводят в пользу жабы -
> сбегается весь ЛОР и дружно начинает хаять яву и при этом ссылаются
> как раз на числодробилки - это уже называется двойные стандарты.

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

> А по поводу двух гигов для жабы - хэловорд запускается

Меня это как-то вообще не интересует. К чему Вы про гиги?

> И таки да - скорость и качество разработки приложений играет очень
> важную роль. Именно поэтому я возьму Spring, JPA (или какой-нибудь

Мы про языки говорим, а не технологии. Не надо мешать всё в одну
кучу.

> Питон? Блоки кода отступами, очередная "стандартная библиотека",
> которой никто кроме питона не пользуется,

А кто, кроме Питона должен ей пользоваться? Дядя Вася сантехник?

> сомнительная производительность даже по сравнению с жабой,

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

> относительно низкая востребованность,

'Относительно' низкая востребованность. Да, относительно.

> отсутствие обратной совместимости (в жабе до сих пор есть
> совместимость с первой версией).

Как известно, это большой минус, а не плюс Java. Тяжёлые,
перегруженные библиотеки. У Python нет особых проблем с обратной
совместимостью. Python3K будет другим и это правильно.

> Вопрос: а нахрена?

Вам не надо. Это очевидно.

> Я лучше буду пользоваться груви

Кто там про производительность выше говорил? Груви жутчайший тормоз.
Плюс к тому в плане синтаксиса ужасен. До Python ему далеко.

> И мне непонятно, как питоновцы могут получать удовольствие от того,
> что Гвидо их кидает с обратной совместимостью и это не первый раз.

Так серьёзно в первый раз. И это хорошо.

anonymous
()

Честно говоря, после прочтения обзора новых возможностей сижу в недоумении, пытаюсь понять, зачем оно нужно. Ну, то есть, какие проблемы решает отказ от "%03d %s %.3f" % (1, 2, 3) в пользу .format() ? Точнее, не самой функции .format(), а выбранного языка описания этого формата? Зачем оно такое?

Непонятно предназначение with. Ну, то есть, какие новые возможности появляются в сравнении с try/finally ?

Удивляет отказ от __metaclass__ в пользу (metaclass = <smth>). Гвидо же всю жизнь гордился тем, что его синтаксический анализатор - самый простой, зачем усложнять синтаксис и при этом увеличивать объём писанины. Ну, то есть, наверное, неплохо, когда задание метакласса происходит где-то в начале определения класса, но, гхм, такими средствами...

Угнетает отсутствие необязательной возможности точной спецификации сигнатуры функции/метода. Дак-тайпин' - это, конечно, увлекательно, только в проекте среднего и выше размера на каждый чих юнит-тест писать обломно (человек слаб...). К тому же, в заметном числе случаев подобная сигнатура и является *одним из* возможных гвардов.

Ну и, этА, хАтим кАмпилятор (i.e. транслятор в "С"), если не для всего языка, то для большого его подмножества, с возможностью прозрачного взаимодействия с кодом, "оставшимся динамическим". Что-то типа Pyrex, но с другим, "более официальным", статусом и синтаксисом, не противоречащим синтаксису основного языка.

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

2anonymous (*) (29.06.2008 12:55:46):

> +10 Если на JVM поставить язычишко по-удобнее (Scala та же),
> то Питон нервно курит в сторонке. (как минимум на сервере)

Jython уже стоит там. А Scala неплохой язык, но по синтаксису
ничего интересного, а по идеям ничего нового. До синтаксиса
Python ему далеко. И вообще это совсем разные языки,

Scala, скорее, хорош, как будущая замена Java. Это да.

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

>До синтаксиса Python ему далеко.

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

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

2AlexM **** (*) (29.06.2008 13:41:44):

> Честно говоря, после прочтения обзора новых возможностей сижу в
> недоумении, пытаюсь понять, зачем оно нужно. Ну, то есть, какие
> проблемы решает отказ от "%03d %s %.3f" % (1, 2, 3) в пользу
> .format() ? Точнее, не самой функции .format(), а выбранного языка
> описания этого формата? Зачем оно такое?

Читайте Rationale в PEP 3101

> Непонятно предназначение with. Ну, то есть, какие новые возможности
> появляются в сравнении с try/finally ?

Это совсем другое. Почитайте доки.

> Угнетает отсутствие необязательной возможности точной спецификации
> сигнатуры функции/метода. Дак-тайпин' - это, конечно, увлекательно,

PEP 3107

> Ну и, этА, хАтим кАмпилятор (i.e. транслятор в "С"), если не для
> всего языка, то для большого его подмножества, с возможностью
> прозрачного взаимодействия с кодом, "оставшимся динамическим".

PyPy очень перспективен в этом и других планах.

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

> какие проблемы решает отказ от "%03d %s %.3f" % (1, 2, 3) в пользу .format() ?

От него не отказывались.

> Угнетает отсутствие необязательной возможности точной спецификации сигнатуры функции/метода

Ты не пробовал ize?

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

>Не вижу, каким боком Java высокоуровневый язык. Как можно приводить те же примеры в её пользу.

Вот оно как! Любители питона уже даже жабу считают низкоуровенвым языком! C/C++ видимо уже переехали в подвал..... А что случилось с ассемблером мне даже страшно подумать!

P.S. Какой кошмар, интересно как будет выглядеть мир, в котором питон будет считататься низкоуровневым языком на котором пишут только задроты предпенсионного возраста...

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

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

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

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

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

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

>> До синтаксиса Python ему далеко.

> Скала обеспечивает все необходимое, включая функциональное и
> мето-программирование.

Я не говорил, что Scala что-то не обеспечивает. Scala будет прекрасной
заменой Java, но не Python.

> Так что производительность программистов будет на уровне.

Это пока неизвестно. Scala черезчур академичен ещё. Посмотрим.

> А уж как там ключевые слова называются никого не волнует.

Я про синтаксис, а не семантику языка.

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

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

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

2anonymous (*) (29.06.2008 13:55:35):

>> Не вижу, каким боком Java высокоуровневый язык. Как можно приводить
>> те же примеры в её пользу.

> Вот оно как! Любители питона уже даже жабу считают низкоуровенвым
> языком! C/C++ видимо уже переехали в подвал.....

А для Вас это открытие что ли? Ну сравните аналогичное на Python,
Java, C++ и поймете, что такое высокоуровневый язык. Там, где в
Python одна строчка, в Java десяток. Хотя согласен, Java1.5 уже
как-то попыталась исправить это. Шажок вперёд есть. Меньше мути
стало хотя бы с итераторами.

> А что случилось с ассемблером мне даже страшно подумать!

Нынешние ассемблеры заставят краснеть C++, как недоассемблер ;-)

> P.S. Какой кошмар, интересно как будет выглядеть мир, в котором
> питон будет считататься низкоуровневым языком на котором пишут
> только задроты предпенсионного возраста...

Мне тоже интересно. Поживём-увидим.

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

>Кто там про производительность выше говорил? Груви жутчайший тормоз. Плюс к тому в плане синтаксиса ужасен. До Python ему далеко.

Кто там говорил, что скорость не главное?

P.S. Просвети меня, что ужасного в синтаксисе груви?

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

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

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

> К тому же у Питона синтаксис довольно минималистичен (не слишком далек в этом плане от великих и ужасных), вот Руби - там действительно можно говорить о каком-то синтаксисе

Вы на языке программы пишете или на синтаксисе? Дело синтаксиса — однозначность и читаемость. Прежде всего. Ruby, конечно, не так плох, но Python всё равно лучше

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

2anonymous (*) (29.06.2008 13:59:14):

>> Я про синтаксис, а не семантику языка.

> man метопрограммирование

Очень умно. А мне что в ответ написать? Common Lisp, мать вашу!

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

>Мне одному кажется, что питон с кучей __something__ на каждый чих и избыточных операторов выглядит... не стройно, что ли?

Нет не тебе одному. +) имно кошмарные конструкции.

vtVitus ★★★★★
()

Жду когда допилят pypy - переспективная штука получается: "Note that PyPy also fully supports stackless-like microthreads (although both cannot be mixed yet)." и jit.

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