LINUX.ORG.RU

Вышла альфа Python 3.0


0

0

В то время как PHP 6 и Perl 6 всё ещё маячат в туманных горизонтах, уже вышла первая альфа Python 3.0 (проект, ранее известный как Python3000).

Окончательный релиз планируется на август 2008 года; ожидается, что к этому времени будут портированы наиболее популярные библиотеки. Новая версия не содержит особо радикальных изменений (в основном косметические исправления старых недостатков), но нарушает обратную совместимость с версиями 2.x. Будут выпущены вспомогательные утилиты для облегчения миграции кода.

Поддержка и развитие ветки 2.x будет продолжены, по крайней мере до 2.7 (текущая стабильная версия - 2.5.1).

Основные значимые нововведения:
- все строки полностью уникодные, доступ к бинарным данным - через мутабельный тип bytes;
- новый синтаксис форматирования строк, метод .format вместо оператора "%";
- стандартные функции возвращают преимущественно итераторы, вместо списков;
- деление целых теперь даёт вещественный результат;
- оператор print заменён функцией print();
- исходники по дефолту в UTF-8, не-ASCII идентификаторы;
- доступ к не-глобальным переменным из вышележащего скопа;
- восьмеричные и двоичные литералы;
- более гибкая распаковка последовательностей.

Полный список можно засмотреть тут: http://docs.python.org/dev/3.0/whatsn...




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

Re: Вышла альфа Python 3.0

Я думаю, что выход даже альфы-версии нового Python значимое событие. Это не означает, что теперь надо обязательно сообщать в новостях о всех промежуточных релизах.

anonymous_incognito ★★★★★ ()

Re: Вышла альфа Python 3.0

>деление целых теперь даёт вещественный результат; то, о чем так долго говорили большевики!

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

>>деление целых теперь даёт вещественный результат; то, о чем так долго говорили большевики!

самое дурацкое изменение, ИМХО. куча геморроя - и ради чего?

tailgunner ★★★★★ ()

Re: Вышла альфа Python 3.0

>через _мутабельный_ тип bytes

o_O Меня это слово не много в ступор вогнало... что оно означает-то?

kagor ()

Re: Вышла альфа Python 3.0

>The print() function doesn’t support the “softspace” feature of the old print statement. For example, in Python 2.x, print "A\n", "B\n" would write "A\nB\n"; but in Python 3.0, print("A\n", "B\n") writes "A\n B\n".

Хм. А что это за софтспейс такой [был]?

Davidov ★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от kagor

Re: Вышла альфа Python 3.0

>>через _мутабельный_ тип bytes

>o_O Меня это слово не много в ступор вогнало... что оно означает-то?

Я так понял это "перевод" слова mutable (изменяемый) или как?

kagor ()
Ответ на: Re: Вышла альфа Python 3.0 от kagor

Re: Вышла альфа Python 3.0

Ура. Теперь ждем беты Ruby 2.0, и смотрим, как же оба сообщества решат вопрос с реализацией потоков (нативно, green threading, еще как-то -- у каждого подхода хватает своих минусов). Хотя было бы очень интересно увидеть-таки оживление разработки Perl 6, боюсь, в будущее мы пойдем все же под знаменами Python и Ruby.

anonymous ()

Re: Вышла альфа Python 3.0

>исходники по дефолту в UTF-8, не-ASCII идентификаторы;

а там где-нибудь есть надпись большими буквами: НЕ ТРОГАТЬ ?

polachok ()
Ответ на: Re: Вышла альфа Python 3.0 от tailgunner

Re: Вышла альфа Python 3.0

> самое дурацкое изменение, ИМХО. куча геморроя - и ради чего?

Лично я очень рад. Необходимость всё время конвертить к флоату сильно задалбывала.

Для целочисленного деления оставлен //.

yk4ever ()
Ответ на: Re: Вышла альфа Python 3.0 от kagor

Re: Вышла альфа Python 3.0

> Я так понял это "перевод" слова mutable (изменяемый) или как?

Бинго! Бери с полки пирожок.

Как-то у меня не вяжется с русскими переводами, до сих пор кортежи туплями зову.

yk4ever ()
Ответ на: Re: Вышла альфа Python 3.0 от Davidov

Re: Вышла альфа Python 3.0

> Хм. А что это за софтспейс такой [был]?

A space is written before each object is (converted and) written, unless the output system believes it is positioned at the beginning of a line. This is the case (1) when no characters have yet been written to standard output, (2) when the last character written to standard output is "\n", or (3) when the last write operation on standard output was not a print statement.

yk4ever ()

Re: Вышла альфа Python 3.0

из ново-васика пытаются сделать real language

grob ★★★★★ ()

Re: Вышла альфа Python 3.0

Аффтар технично намекнул, что он - быдлопитонокодер. Это я на "туманные перспективы" намекаю, если наш недалекий ньюсмейкеры сам не поймет. По делу - видимо, как Оффтоп2000 выпускали к 2000 году, так и Питон3000 собирались к 3000-ному. Однако, перенесли релиз годков на двести. Ура, товарищи! Ура!

anonymous ()

Re: Вышла альфа Python 3.0

Неплохо. Ничего лишего имхо не придумали, всё по делу.

troorl ★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

> Теперь ждем беты Ruby 2.0

Да хотя бы 1.9, куда YARV включат. Старый рантайм, говорят, вообще ни к чёрту в продакшене.

> как же оба сообщества решат вопрос с реализацией потоков (нативно, green threading, еще как-то

В Py3k менять ситуацию с тредами никто не собирается. Подробнее тут: http://www.artima.com/weblogs/viewpost.jsp?thread=211200

> Хотя было бы очень интересно увидеть-таки оживление разработки Perl 6

Да чего-то они там копошатся. Вот только неясно, много ли будет желающих его использовать, с такими изменениями.

yk4ever ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

> Аффтар технично намекнул, что он - быдлопитонокодер.

На питоне не бывает быдлокодеров. Удивительно, но факт.

> По делу - видимо, как Оффтоп2000 выпускали к 2000 году, так и Питон3000 собирались к 3000-ному. Однако, перенесли релиз годков на двести. Ура, товарищи! Ура!

Онанимус лает - змея ползёт. Кстати, название "Python 3000" было придумано именно как пародия на винду.

yk4ever ()
Ответ на: Re: Вышла альфа Python 3.0 от yk4ever

Re: Вышла альфа Python 3.0

>На питоне не бывает быдлокодеров. Удивительно, но факт.

Да вы, батенька, оптимист. Даже нет. Вы, батенька, утопист. Либо просто неосведомленны о размахе быдлокодерства на Питоне.

>Онанимус лает - змея ползёт. Кстати, название "Python 3000" было придумано именно как пародия на винду.

Ржу нимагу. У быдлопитонодевелопмеров получилось пошутить. А следующий питончег будет ПитонХеХеПеПе. Тоже пародия на XP. А можно - ПитонАстаЛаВиста.

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от yk4ever

Re: Вышла альфа Python 3.0

> В Py3k менять ситуацию с тредами никто не собирается.

Там нет, в Ruby собираются. Однако простота, с которой потоки живут в JRuby (они уже делают тред-сейф AST sharing), показала на проблемы green threading в MRI явно.

> Да хотя бы 1.9, куда YARV включат. Старый рантайм, говорят, вообще ни к чёрту в продакшене.

Да не, нормально. Идея ребят в том, чтобы быстро поднять приложение до 1.0 и потом уже исправлять боттлнеки кешированием, переписыванием проблемных мест на С расширения. Twitter же справились даже с их проблемным кешированием (очень много запросов = немного запросов на каждую * на очень большое число страниц).

1.9, кстати, нестабильная ветка, которая при релизе будет названа 2.0. Политика именования как у многих GNU проектов :)

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

> Ржу нимагу. У быдлопитонодевелопмеров получилось пошутить.

Так без проблем, не умри только со смеху :) Быдлокодеры есть везде, и от смены языка они редко умнеют :)

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от yk4ever

Re: Вышла альфа Python 3.0

> Вот только неясно, много ли будет желающих его использовать, с такими изменениями.

Читал. Изменения отличные. Вот выпустили бы его хоть когда-нибудь.

atrus ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

>Быдлокодеры есть везде, и от смены языка они редко умнеют :)

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

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

> А почему у питона - больше всего? Наверное, питон - быдлоязык :)))))

Да ты придурок, а не клон анонимуса. Бери свой Рубильник или ПыхПых и вали быдлокодить, урод! Куча толковых ребят бабло на Питоне зарабатывает.

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

Умри, гнида! Тебе только в Винде на Канчел нажимать предначертано! Бот хренов!

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

> Да вы, батенька, оптимист. Даже нет. Вы, батенька, утопист. Либо просто неосведомленны о размахе быдлокодерства на Питоне.

Вы тролль. Взойдёт солнце и вы окаменеете. И тогда за вами приду я, с киркой и перфоратором.

yk4ever ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

>Умри, гнида! Тебе только в Винде на Канчел нажимать предначертано! Бот хренов!

Вот оно, истинное лицо ЛОРа, разговор интеллигентных инженеров о плюсах и минусах языка.

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

- все строки полностью уникодные, доступ к бинарным данным - через мутабельный тип bytes;

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

- новый синтаксис форматирования строк, метод .format вместо оператора "%";

давно пора.

- деление целых теперь даёт вещественный результат;

ну и зря.

- оператор print заменён функцией print();

правильно. Еще бы pass на pass() заменили

- исходники по дефолту в UTF-8, не-ASCII идентификаторы;

никто не мешал и в старых версиях писать в UTF-8

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от yk4ever

Re: Вышла альфа Python 3.0

> Да хотя бы 1.9, куда YARV включат.

в svn-е -- уже давно. собирается и работает.

> решат вопрос с реализацией потоков

так вроде бы в ruby -- pthreads.. ну и зеленых оставили, на всякий разный случай.

dmiceman ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

> никто не мешал и в старых версиях писать в UTF-8

просто теперь иероглифами можно будет писать не только комментарии

Syncro ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

> уникод и в старых версиях можно было использовать, bytes - ненужное.

О нём там приходилось специально заботиться. В основном все тупо писали обычными строками, что приводило к эксепшнам и неправильному подсчёту длин utf-8. Теперь уникод будет получаться сам собой, легко и непринуждённо.

Хорошая проповедь тута: http://live.julik.nl/2005/12/composition-normalization-and-morons

> никто не мешал и в старых версиях писать в UTF-8

в хедерах приходилось это явно прописывать кажинный раз. ЧТо раздражало.

yk4ever ()

Re: Вышла альфа Python 3.0

Неплохой язык, но скажите, там до сих пор, если сделать:

C.a = 1

где а - переменная не объявленная в классе, то она будет автоматически создана?

shumer ()
Ответ на: Re: Вышла альфа Python 3.0 от shumer

Re: Вышла альфа Python 3.0

> Неплохой язык, но скажите, там до сих пор, если сделать:

Может и создана, может и нет, зависит от объявления класса. В общем случае - будет создана. Если у класса жесткое описание полей - будет эксепшн.

Farcaller ★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от Farcaller

Re: Вышла альфа Python 3.0

> Если у класса жесткое описание полей - будет эксепшн.

Не знал про это. Как задается жесткое/не жесткое?

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

shumer ()
Ответ на: Re: Вышла альфа Python 3.0 от shumer

Re: Вышла альфа Python 3.0

>...то она будет автоматически создана?

Это не баг, это фича.

Midael ★★★★★ ()
Ответ на: удаленный комментарий

Re: Вышла альфа Python 3.0

>альфа Python

это какаято туманность? 0_o

sa22 ()
Ответ на: Re: Вышла альфа Python 3.0 от shumer

Re: Вышла альфа Python 3.0

> Не знал про это. Как задается жесткое/не жесткое?

Точно помню что надо явно наследовать object, и задать какое-то __ поле, глянь в мане...

Farcaller ★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от grob

Re: Вышла альфа Python 3.0

> из ново-васика пытаются сделать real language

Просто для статистику - вы перлист, рубист, или явист?

sv75 ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от shumer

Re: Вышла альфа Python 3.0

> где а - переменная не объявленная в классе, то она будет автоматически создана?

В этом вся соль. ;)

sv75 ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от sv75

Re: Вышла альфа Python 3.0

>> из ново-васика пытаются сделать real language

>Просто для статистику - вы перлист, рубист, или явист?

Он лиспер, это же сразу видно :D

tailgunner ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от shumer

Re: Вышла альфа Python 3.0

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

Как раз для некоторых больших программ это спасение. Допустим, мы хотим вынести часть логики программы во внешние скрипты, и пусть их авторы добавляют атрибуты по мере надобности. Или переводить XML в аналогичный по аттрибутам набор объектов. Дальше продолжать?

Про необходимость юнит тестинга даже для явы вы надеюсь слышали?

sv75 ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от tailgunner

Re: Вышла альфа Python 3.0

> __slots__ = ("fld1", "fld2")

ага, точно

>>> class A(object):
...   __slots__ = ("a","b")
...   a=1
...   b=2
...   c=3
...
>>> a = A()
>>> a.a
1
>>> a.c
3
>>> a.c=2
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'A' object attribute 'c' is read-only
>>> a.d=4
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'A' object has no attribute 'd'

Так что питон может быть гибкий как JavaScript и культурный как C++ ;)

Farcaller ★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от sv75

Re: Вышла альфа Python 3.0

> Как раз для некоторых больших программ это спасение.

Не-а

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

Ну не надо примеры притягивать за уши. В данном случае можно использовать ассоциативный массив.

> Про необходимость юнит тестинга даже для явы вы надеюсь слышали?

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

tailgunner ★★★★★ ()

Re: Вышла альфа Python 3.0

Пидон фтопку! .Net наше фсё!

anonymous ()
Ответ на: Re: Вышла альфа Python 3.0 от tailgunner

Re: Вышла альфа Python 3.0

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

Это мой use case Python'a. И не только мой.

> В данном случае можно использовать ассоциативный массив.

А смысл?

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

Правда? Именно *не* могут?

Ну если статические языки не вызывают гемороя и у тебя нет нужды в бешеном использовании ассоциативных массивов (те же рантайм-ошибки) - значит не используй Питон для этих задач? :)

sv75 ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от anonymous

Re: Вышла альфа Python 3.0

> Пидон фтопку! .Net наше фсё!

Расскажи это MS, пуская отменят IronPython

sv75 ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от sv75

Re: Вышла альфа Python 3.0

> Это мой use case Python'a. И не только мой.

Да понятно... но для этого use-case нет необходимости в "автоматическом" добавлении атрибутов.

>> В данном случае можно использовать ассоциативный массив.

>А смысл?

Имеется в виду - если бы поведение со __slots__ было жестко встроено в язык, это не помешало бы "добавлению атрибутов по мере надобности", разбору XML и прочему.

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

> Правда? Именно *не* могут?

Правда. Именно *не* могут. Не говоря уже о том, что unit-тесты редко дают 100%-coverage.

> Ну если статические языки не вызывают гемороя и у тебя нет нужды в бешеном использовании ассоциативных массивов (те же рантайм-ошибки) - значит не используй Питон для этих задач? :)

Я использую и то, и другое.

tailgunner ★★★★★ ()
Ответ на: Re: Вышла альфа Python 3.0 от tailgunner

Re: Вышла альфа Python 3.0

> Имеется в виду - если бы поведение со __slots__ было жестко встроено в язык, это не помешало бы "добавлению атрибутов по мере надобности", разбору XML и прочему.

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

> Правда. Именно *не* могут.

Тут не понял :( Пойду почитаю.

> Не говоря уже о том, что unit-тесты редко дают 100%-coverage.

Есть проблема, но она к необязательному описанию полей она по-моему не относится напрямую :(

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