LINUX.ORG.RU

Вышел Python 3.1

 ,


0

0

Новое в этой версии:

  • Класс для хранения упорядоченных словарных данных.
  • Разные оптимизации в целочисленном типе (int).
  • Новые возможности тестирования модулей, включая поддержку отключения определенных текстов и новые assert-методы.
  • Более быстрый модуль ввода/вывода (io). Быстрее в 2-20 раз, в зависимости от задачи.
  • Добавлена эталонная реализация оператора importlib, написанная целиком на Python.
  • Декодирование UTF-8, UTF-16 и LATIN-1 теперь в 2-4 раза быстрее.
  • Включение опции "--with-computed-gotos" позволяет добиться 20%го прироста в исполнении циклов.
  • Функция string.maketrans() больше не рекомендуется к использрованию, и она была заменена на статические методы bytes.maketrans() и bytearray.maketrans().

Что нового?

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

★★★★★

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

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

Хорошие нововведения. :) Если сохранят курс на увеличение скорости работы Python, то это несомненно большой плюс будет.

Интересно, когда уже можно будет его в Gentoo установить. :) Там с питоном баловаться опасно. Хотя хочется все-таки попробовать.

Никто не в курсе - Django с Python 3.1 будет работать?

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

> Никто не в курсе - Django с Python 3.1 будет работать?

Не работает. Потому питон 3х еще не нужен в хозяйстве.

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

> Какой смысл в этом в динамически типизированном ЯП?
Чтобы интерпретатор на ошибки указывал.

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

> > Хоть щас. Берёте C# и указываете. > Ага, только взял java - и как-то грустно на душе стало.

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

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

> А как там дела у гугла с его реализацией на LLVM?

Судя по SVN log, лето они проводят за компом и пашут как проклятые (: Битва за проценты просто суровая.

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

> Когда уже можно будет тип переменной указать при объявлении?

В языке высокого уровня такое не нужно. Это вам не паскаль.

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

>Когда уже можно будет тип переменной указать при объявлении?

Вот когда мосье освоит разницу между динамическим и статическим ЯП, ответ прийдет к нему свыше :)))))))

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

> В языке высокого уровня такое не нужно.

Да ну?! Сразу видно, что кульхацкеры с ЛОРа ничего, кроме хелловорда реально не пейсали.

Педон не имеет нормального кавайного графического тулкита типа SWT cj 100% нативным L'n'F. Про убожество Tk 8.4 я уже говорил.

Педон не имеет строгой статической типизации. На отсутствии строгой типизации погорел смолток. Для enterpriZe нужен язык со (1) строгой (2) полиморфной (3) статической (4) безопасной (5)именованной (6) явной типизацией, а не пионЭрское поделие.

Да и для обычного пользователя педонистые проги неудобны. Для пользователя программки на С/C++/Obj-C потребны - достаточно сравнить мегарулезный мюТоррент и отстойный БитТоррент.

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

> Ага, только взял java - и как-то грустно на душе стало.

Это потому что C# гораздо лучше жабы. Много разных полезных мелочей.

Хотя память жрут и тормозят вначале оба, факт. Ждём раскрутки D.

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

> Педон не имеет нормального кавайного графического тулкита типа SWT cj 100% нативным L'n'F.

wxPython

> Педон не имеет строгой статической типизации.

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

> Для пользователя программки на С/C++/Obj-C потребны

Согласен. Однако питону есть место в мире опенсорса:

1) опенсорсники работают забесплатно, у них мало времени, можно и сэкономить на типизации

2) для опенсорса интерпретируемый язык естественнее, ибо дистрибутив в исходниках автоматически соответствует требованиям GPL

3) быстрое прототипирование

> - достаточно сравнить мегарулезный мюТоррент и отстойный БитТоррент.

бла-бла-бла, фигня. Пользуюсь Deluge, TaskCoach, Mercurial, QCT. Всё вполне себе удобно.

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

Думаю выборочная типизация была бы весьма кстати, но тут надо много думать, как это реализовать :)

Мне вообще очень не хватает элементарных "структур" из C.

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

К примеру храним список координат + каких-то еще данных.

l[i].coord.x

понятнее чем

l[i][2][0] -- при чтении такого кода надо искать описание этого типа для программиста, то же самое если надо дописать код.

Можно использовать первый вариант, если вместо туплей используются объекты с полями, т.е. например

class r: ____pass

a = r() a.coord = r() a.coord.x = 1 a.coord.y = 2

либо применяя специальный модуль :)

a = rec(coord=rec(x=1,y=2))

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

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

> wxPython

"Pluralitas non est ponenda sine necessitate" (с)

Лишний слой.

> Не баг, а фича.

То есть можно про "Шоху" с сравнении с "Фиатом" говорить "Это не баг, а фича"?

> Всё вполне себе удобно.

Удобство - понятие относительное. Кому удобен бумбокс, а кому Hi-End удобен. Мне вот что удобно

http://www.vuze.com/app

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

> Педон не имеет нормального кавайного графического тулкита типа SWT cj 100% нативным L'n'F. Про убожество Tk 8.4 я уже говорил.

PyGTK не подходит?

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

А как же wxPython? Тоже не то?

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

И что дает строгая статическая типизация Enterpriz'у?

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

> cтрогая статическая типизация Enterpriz'у

Надежность кода. Бимеры проталкивали свой VAST в enterpriZe. Но безуспешно.

" * Динамическая типизация: ждать момента выполнения каждого вызова и тогда принимать решение.

* Статическая типизация: с учетом набора правил определить по исходному тексту, возможны ли нарушения типов при выполнении. Система выполняется, если правила гарантируют отсутствие ошибок." (с) http://www.intuit.ru/department/se/oopbases/17/2.html

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

Я знаю что такое динамическая и статическая типизация, я спрашивал совсем о другом. Разве в Enterprize главное типизация? Может главное сопровождение кода, скорость разработки и прототипирования и т.п.?

realstudent
()

оптизация в 20 раз говорит о том , что в питоне работы - поле непаханное :-)

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

> Может главное сопровождение кода, скорость разработки и прототипирования и т.п.

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

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

Скорость разработки для маленьких проектов выше на динамических язычках, однако, в сложных проектах проблемы нарастают.

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

Вывод - на всяких скриптовых язычках хорошо пейсать проекты типа "что вижу - то пою" (с). Серьезные прикладные проекты пишутся на статически типизированных + строго типизированных языках программирования.

Гугль не перешла полностью на Педон. Потому как не только яйцеголовые педонисты-теоретики там работают, а реальные кодеры. Отсюда такие кошерные вещи, как Guice.

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

> Для enterpriZe нужен язык со (1) строгой (2) полиморфной (3) статической (4) безопасной (5)именованной (6) явной типизацией, а не пионЭрское поделие.

Да пох на ынтерпрайz.

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

Python 2.5.2 (r252:60911, Oct  5 2008, 19:29:17) 
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 1.2+0.2
1.4
>>> print "%.9f"%(1.2+0.2)
1.400000000

сюрприз?

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

> Гугль не перешла полностью на Педон.

Гугль не перешла полностью на Жабу.

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

Потому как там работают нормальные прогеры. а не только "Ынтерпрайz-жабакодеры на J2EE и Spring" (c) (r) (tm).

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

ага - сюрприз:
$ python
Python 2.5.4 (r254:67916, Feb 17 2009, 20:16:45) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 1.2+0.2
1.3999999999999999
>>> 

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

биореактор, тебе бы в биореатор.

1) На tk никто не заставляется зацикливаться, есть pyqt и pygtk, например.

2) Есть code annotations которые может использовать дебаггер или редактор.

> проги неудобны.

тролль.

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

>>> 1.2+0.2
> 1.3999999999999999


Ты не заметил оператора print, или что?

tailgunner ★★★★★
()

Уже спрашивали, но повторюсь: так кто-нибудь уже программирует (не экспериментирует, а именно пишет что-то рабочее) на питоне 3.х ?

Мы вот в конторе сидим на 2.5 (ну некоторые локально юзают 2.6) и что-то никто не торопиться на 3.х

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

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

но у него есть недостатки. тупль - просто несколько объектов склеенных, типа структуры в C. А твой Struct (и мой rec) - объект, со своим словарем который хранится с каждый объектом. Если таких объектов много то это будет жрать память в несколько раз больеш чем надо.

и доступ к данным производится через словарь. это как-бы медленнее чем по смещению дотянуться до поля структуры C, что достижимо если во время компиляции известно это смещение, что обеспечивается статической типизацией.

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

> твой Struct (и мой rec) - объект, со своим словарем который хранится с каждый объектом. Если таких объектов много то это будет жрать память в несколько раз больеш чем надо.

Используй __slots__, блин. Если реально много данных - struct над двоичным представлением.

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

>Думаю выборочная типизация была бы весьма кстати, но тут надо много думать, как это реализовать :)

Думать, и даже много думать, батенька, это полезно. Не пренебрегай этим. Открой для себя Cython.

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

from collections import namedtuple

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

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

>что неприемлемо если надо хранить большие объемы данных

Насколько большие? И вообще, нахрена тебе хранить большие объемы в оперативке?

А вообще, господа тролли, если уж критикуете - давайте хотя бы по существу. А то ваши жалкие попытки только демонстрируют полное непонимание вопроса у самого тролля :)

Да, г-н Биореактор, уйди в себя.

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

>А мы все еще на 2.5

И мы. Хотя попытки перевести на пузик) были

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

извиняюсь, пропустил появление namedtuple. похоже на то что надо :) но в 2.5 его нет, а 2.6 долбаная убунта не дает поставить. надо debian ставить.

кстати я "struct" пробовал использовать, но такой модуль уже существует. пришлось назвать "rec".

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

> А теперь, толстячок, по пунктам, чем это "лучше"?

Хм. 71 кг при 179 см - это разве "толстячок"?

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

С точки зрения разработчика шарп сравнительно жабы рулит отчаянно. Да и по скорости/памяти у него есть некоторые преимущества. Печально, конечно, что он проприетарен и только под винду. Ибо моно - унылое говно, увы.

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

> Мне вот что удобно http://www.vuze.com/app

У меня на старом ноуте-качалке только полгига памяти. Шо, всю её быдложабе отдавать? Идите лесом. Питон память в разы меньше расходует.

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

> "Скобки, Алиса! Где скобки?!"

На свалке истории, где им и место.

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

> и доступ к данным производится через словарь. это как-бы медленнее чем по смещению дотянуться до поля структуры C

Нужна скорость - не пользуйтесь скриптоязыками.

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

> Мне вообще очень не хватает элементарных "структур" из C. При доступе к структурам понятно, какое поле используем, а при работе с туплями надо запоминать, какой индекс каким данным соответствует.

Dictionary тебя разве не спасёт? Пусть имена полей будут индексами в ассоциативном массиве.

>l[i].coord.x понятнее чем l[i][2][0]

Вот так:

l[i]['coord']['x']

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

> Интересно, когда уже можно будет его в Gentoo установить.

А кстати да, давно хочу попробовать новый питон в Gentoo но так и не решился. Ебилд есть вот здесь в оверлее: http://overlays.gentoo.org/proj/python/browser/overlays/experimental/dev-lang...

Кто-нибудь ставил? Как потом разруливать какой из слотов используется как системный и, самое главное, как ставить одинаковые модули для разных слотов питона?

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

> pyqt и pygtk

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

И потом, сейчас без MVC (типа JFace) просто пионЭров в реальном ремесле программирования просто засмеют.

Да и приятных конечному пользователю полезных элементов управления типа Nebula в скриптовых пионЭрских язычках нет.

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

> l[i]['coord']['x']

а зачем если есть namedtuple и классы?

со скобками и кавычками выглядит ужасно

короче у меня так (по старинке без слотов)

class rec:
    def __init__(self,**adic):
        self._modify(adic)
    def _modify(self,adic):
        for k,v in adic.items():
            self.__dict__[k] = v

(всякие методы и функции для удобного доступа и перевода в тупли и обратно  опущены)

после чего можно писать 

o = rec(coord=rec(x=1,y=2),v=3)

o.coord.x
o.v

и т. д.

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

Можешь сколько угодно поливать грязью питон, он хуже от этого не станет.

> в реальном ремесле программирования просто засмеют.

Я сомневаюсь что ты знаешь о реальном ремесле программирования. На питоне написано гораздо больше серьёзных продуктов чем тебе кажется. Например, youtube.com (http://digg.com/programming/YouTube_is_almost_entirely_written_in_Python). Парням из гугла явно виднее что использовать в продакшене чем тебе.

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