The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Началось бета-тестирование Python 2.6 и Python 3.0

19.06.2008 21:54

Началось бета-тестирование Python 2.6 и Python 3.0. Финальные релизы 2.6 и 3.0 запланированы на сентябрь.

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

Из новых возможностей Python 3.0 можно отметить:

  • Нарушение обратной совместимости со скриптами, разработанными для более ранних версий Python;
  • Удаление дублирующих конструкторов и модулей;
  • Вместо оператора форматирования строк "%" будет использован глобальная функция и метод format(), например "The story of {0}, {1}, and {c}".format(a, b, c=d) или print(format(10.0, "7.3g")).
  • Будут удалены методы dict.iterkeys(), dict.itervalues() и dict.iteritems(). Методы dict.keys(), dict.values() и dict.items() будут возвращать контейнер объектов (итератор);
  • Возможность аннотирования параметров функций и возвращаемых значений, например def compile(source: "something compilable").
  • Замена оператора print, который широко используется для вывода, на функцию print();
  • Использование Unicode в качестве основной кодировки представления строк (единый тип str, вместо раздельных str и unicode);
  • Для хранения бинарных данных представлен тип bytes;
  • Тип long переименован в int, деление int переменных возвращает float, для получения целого результата нужно использовать //;
  • Для обозначения неравенств, вместо "<>" нужно будет использовать "!=";
  • Признаны устаревшими модули: cPickle, imageop, audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2, rexec, sets, sha, stringold, strop, sunaudiodev, timing, xmllib, new;
  • Удалены функции os.tmpnam(), os.tempnam() и os.tmpfile(), вместо них нужно использовать модуль tempfile;
  • Все исключения теперь должны порождаться от класса BaseException;
  • Новый синтаксис для создания мета-классов (Metaclass), реализация абстрактных базовых классов (Abstract Base Class), возможность использования декораторов для классов;
  • Новая реализация библиотеки ввода/вывода, имеющая обратно совместимый API ;


  1. Главная ссылка к новости (http://comments.gmane.org/gman...)
  2. OpenNews: Начало альфа тестирования Python 2.6. Третья альфа версия Python 3.0
  3. OpenNews: Python 3.0: Готовьтесь к проблемам
  4. OpenNews: Началось альфа тестирование Python 3.0
  5. wikipedia.org Python 3000
  6. What’s New in Python 3.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/16569-python
Ключевые слова: python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (30) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Smaug (?), 22:30, 19/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Замечательная новость. Python - отличный инструмент
     
  • 1.2, belkin (ok), 22:56, 19/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Обещают в 3-ей версии убрать устаревшее и сделать другие улучшения. Конечно я не знаток в языках, но мне этот Питон (2.5) тяжело даётся. Постоянно натыкаюсь в языке на какие-то уходы в сторону мелкого прагматизма в ущерб общей целостности. Практическая реализация пока далека от Питон-Дзэна. Речь не об отсутствии символов для группировки операторов т.е. к отступам можно и привыкнуть, но по-моему это типичный пример когда заявляется одно ("явное лучше неявного") а на деле совсем другое. То же самое с общетиповыми функциями - всё объекты, однако, например, функция определения длины реализована отдельно а не как метод объекта Строка. Ну и т.д в более сложных конструкциях и с перекрываемыми атрибутами в классах и прочие уходы от заявленных принципов, которые вообще-то меня привлекают. Мля, "изобретение" кортежей вообще веселит. :)

    Тут недавно была новость "Почему Ruby и Python не могут занять место стареющей Java" http://www.opennet.me/opennews/art.shtml?num=16178
    Про Ruby не знаю, но Питон, во-первых, ещё не достиг зрелости т.е. будут большие перемены, и, во-вторых, возможно стабилизации не будет так как обнаружатся противоречии в концепции.

    (Шигорин и остальные "мудрецы", давайте без обвинений в зелённости и без пацанских "самому слабо".)

     
     
  • 2.3, vitek (??), 23:18, 19/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    по секрету - ни один язык не достиг зрелости, кроме С.
    если конечно не считать, что зрелость - этап перед старостью и смертью.
     
  • 2.6, csdoc (ok), 00:15, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    perl, PHP или bash попробуй, - сразу почувствуешь разницу там этого гораздо бол... большой текст свёрнут, показать
     
     
  • 3.13, zeus (??), 11:15, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >http://docs.python.org/ref/sequence-types.html
    >
    >почему сделали именно так? не знаю. возможно потому что "длинна строки"
    >более естественно переводится в конструкции языка программирования как "len(string)",
    >чем "string.len()" - "вызов метода len у объекта string с пустым списком
    >аргументов".
    >
    >кроме того, в случае "len(string)" человек читает исходники прямо и быстрым способом,
    >
    >а "string.len()" придется уже читать задом-наперед, сначала метод, потом имя обьекта.

    про literal programming ничего не слышали?


     
     
  • 4.15, csdoc (ok), 11:41, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> "длинна строки" более естественно переводится в конструкции языка программирования как "len(string)",
    >> чем "string.len()" - "вызов метода len у объекта string с пустым списком аргументов".
    >>
    > про literal programming ничего не слышали?

    при чем тут Literate Programming ?

     
     
  • 5.17, zeus (??), 11:48, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>> "длинна строки" более естественно переводится в конструкции языка программирования как "len(string)",
    >>> чем "string.len()" - "вызов метода len у объекта string с пустым списком аргументов".
    >>>
    >> про literal programming ничего не слышали?
    >
    >при чем тут Literate Programming ?

    так. пойдем с другой стороны. С точки зрения ООП: str.len - получение атрибута объекта.

     
     
  • 6.18, csdoc (ok), 11:54, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>>> "длинна строки" более естественно переводится в конструкции языка программирования как "len(string)",
    >>>> чем "string.len()" - "вызов метода len у объекта string с пустым списком аргументов".
    >>>>
    >>> про literal programming ничего не слышали?
    >>
    >>при чем тут Literate Programming ?
    >
    >так. пойдем с другой стороны. С точки зрения ООП: str.len - получение
    >атрибута объекта.

    "string.len()" - это вызов метода.

     
  • 2.23, HardNik (?), 16:32, 21/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не трогайте Шигорина - "он хороший человек" , просто есть пунктик относительно питона.
    Кстати, почему-то не указаны 2 новшества - идентификаторы на национальных языках и исчезновение reduce.
    А вот, по поводу, почему питон не вытеснит жабу - потому, что очень сложен для изучения. Смешно для языка создоваемого именно для этого? Тем не менее, к сожалению, это именно так. Не замечали, что каждый продвинутый питонист начинает чем-то напоминать Гвидо? Вот и делайте выводы.  Именно по этому отступы всегда будут - как отмазка для тех кому не хватило тяму.
     
     
  • 3.24, belkin (ok), 17:17, 21/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не замечали, что есть большие многофункциональные системы, изучать и пользоватьс... большой текст свёрнут, показать
     
     
  • 4.25, HardNik (?), 19:48, 21/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Дзен обожают любители самого задзенного языка - пых-пыха. Наверное, потому, что им тяжко перейти со средневековой философии на язык современной математики.


     
     
  • 5.26, belkin (ok), 21:26, 21/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Дзен обожают любители самого задзенного языка - пых-пыха. Наверное, потому, что им
    >тяжко перейти со средневековой философии на язык современной математики.

    Дзен всего лишь простая форма описания основных идей людьми, которые полностью не осознали иерархию структурного знания. Проблема в том, что в нём смешивают в одном списке и идеологию и методы, но это лучше, чем совсем ничего. Хотя да, рассказать о принципах языка через Дзен - это нехороший признак. Так как вам Питон?

     
     
  • 6.27, HardNik (?), 06:58, 22/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Так как вам Питон?

    А какой Питон?
    В стиле хаскеля
    def sent_desplit(x_in):    
        """ sent_split:: Sent::[([],[],[]),] ->  Text::([],[],[]) """
        concat=operator.concat    
        f1=lambda (a,b,c),(x,y,z):tuple([concat(a,x),concat(b,y),concat(c,z)])
        f2=lambda t:reduce(f1,t,([],[],[],))
        return f2(x_in)
    C
    def f2(x,(y,z)):
        global triger
        if not triger: triger |= True; x+=[[u'',u'',True],]; x[-1][2]=z
        x[-1][0]+= y; return x
    Java
    class ddict(dict):
        def get_formating(self,key):
            lst_val=self[key]
            lst_format=[u'',]
            for i in xrange(len(lst_val)):
                if i==1:
                    lst_format=lst_format+[u'{']+[u'}']
                    lst_val=lst_val+[u'']
                elif i>1:
                    lst_format.insert(i,u',')
            d=map(lambda x,y:x+y,lst_format,lst_val)
            return string.join(d)
    Можно и в Лисп-, Смолтолк-,С++, только где в стиле Питона?
    Может, правда, в том, что примеры выдраны из одного файла, который сейчас просто открыт,не совсем поэтому правильные, но идеология просматривается.

     
     
  • 7.30, Аноним (30), 18:36, 02/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>Так как вам Питон?
    >
    >А какой Питон?

    ...
    >Можно и в Лисп-, Смолтолк-,С++, только где в стиле Питона?
    >Может, правда, в том, что примеры выдраны из одного файла, который сейчас
    >просто открыт,не совсем поэтому правильные, но идеология просматривается.

    Это и есть идеология Питона - нет навязывания стиля.
    Что-то пишется объектно, что-то функционально, что-то классически императивно...
    Жаль, хорошей поддержки декларативного стиля нет :)

     

  • 1.4, Серж (??), 23:35, 19/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нарушение обратной совместимости со скриптами, разработанными для более ранних версий Python - новая возможность Python 3.0. Жесть.
     
     
  • 2.8, belkin (ok), 00:19, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Нарушение обратной совместимости со скриптами, разработанными для более ранних версий Python -
    >новая возможность Python 3.0. Жесть.

    "Должен существовать один — и, желательно, только один — очевидный способ сделать это." Старые способы сделать это заменяются новыми. Ревизия и тестирование всегда будет необходимо в таких случаях.

     

  • 1.5, Аноним (5), 23:47, 19/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    уберут модули md5 и sha, а чем тогда хеши считать ???
     
     
  • 2.7, Александр (??), 00:16, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >уберут модули md5 и sha, а чем тогда хеши считать ???

    а на пальцах, слабо?

     
  • 2.9, Аноним (30), 00:43, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >уберут модули md5 и sha, а чем тогда хеши считать ???

    Слабо доки посмотреть?
    http://docs.python.org/dev/3.0/library/hashlib.html

     
  • 2.10, kron (??), 00:50, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >уберут модули md5 и sha, а чем тогда хеши считать ???

    hashlib-ом

     

  • 1.11, t0ly (?), 01:25, 20/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    по поводу возмущений об обратной совместимости - а кто мешает не трогать интерпритатор там где это не надо?
     
     
  • 2.12, Konstantin (??), 10:23, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >по поводу возмущений об обратной совместимости - а кто мешает не трогать
    >интерпритатор там где это не надо?

    Ага.  и я про тоже. Типа ездить на грузовике имея тока категорию С а потом сесть на мотоцикл и возмущаться почему у тя нету права ездить на мотике. Слабая аналогия правда ... но всетаки изменилась мажорная версия. Не надо помидорвами кидать мол питон фуфло обратной совместимости не может сделать. Ну не переходи на другую версию. Оставайся на 2.*
    Все ж к лучшему делается...
    Это тем кто возмущается отсутсивием обратной совместимости

     

  • 1.14, tty01 (?), 11:21, 20/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Использование Unicode в качестве основной кодировки представления строк

    А когда вышел Python 1.0? И сколько времени потребовалось на осознание того, что в мире есть не только английский язык, а символов больше чем в ASCII...

     
     
  • 2.16, Аноним (-), 11:46, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Я на версии 2.3 не имел проблем с юникодом. Более ранние Версии не пробовал.
     
  • 2.19, Андрей (??), 12:40, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно, когда вышел Python 1.0? Почти 20 лет назад. Многие тогда использовали Unicode? Способны ли были компьютеры того времени значительную часть своей производительности тратить на Unicode?
     
  • 2.20, Konstantin (??), 12:41, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> Использование Unicode в качестве основной кодировки представления строк
    >
    >А когда вышел Python 1.0? И сколько времени потребовалось на осознание того,
    >что в мире есть не только английский язык, а символов больше
    >чем в ASCII...

    в коде не должно быть символов выше 127 .. если они появились в коде - вы делаете чтото не так. Тоже касается комментариев

     
     
  • 3.21, belkin (ok), 13:05, 20/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Использование Unicode в качестве основной кодировки представления строк
    >>
    >>А когда вышел Python 1.0? И сколько времени потребовалось на осознание того,
    >>что в мире есть не только английский язык, а символов больше
    >>чем в ASCII...
    >
    >в коде не должно быть символов выше 127 .. если они появились
    >в коде - вы делаете чтото не так. Тоже касается комментариев

    А строковые константы наружу выносить? А по моему наоборот нужно быстренько везде и всё на utf-8 перевести. Весь текст программы в unicode. Нет же проблемы транслировать старые тексты в Unicode? А так застряли все на полпути и отсюда лишняя работа для программиста.

     
  • 2.31, Аноним (30), 18:39, 02/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> Использование Unicode в качестве основной кодировки представления строк
    >
    >А когда вышел Python 1.0? И сколько времени потребовалось на осознание того,
    >что в мире есть не только английский язык, а символов больше
    >чем в ASCII...

    в 1.5.2 "нелатинские ASCII" фунциклировали нормально.
    юникод появился тоже ещё до 2.0, AFAIR

     

  • 1.28, s79 (?), 03:36, 23/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше б они нормальную пробелонезависимость сделали
     
     
  • 2.29, anonym (?), 04:39, 23/06/2008 [^] [^^] [^^^] [ответить]  
  • +/
    лучше б они мозгонезависимость сделали.
    сразу бы проблем не стало.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру