Вышел релиз Python 3000!
От: Cyberax Марс  
Дата: 04.12.08 08:59
Оценка: 68 (7)
Ну, если кто-то ещё не видел — сегодня вышел финальный релиз Python 3 (aka "Python 3000").

http://python.org/download/releases/3.0/
Вот тут вот список изменений: http://docs.python.org/dev/3.0/whatsnew/3.0.html

11.12.08 22:31: Перенесено модератором из 'Декларативное программирование' — der Igel
Sapienti sat!
Re: Вышел релиз Python 3000!
От: Аноним  
Дата: 04.12.08 12:37
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Ну, если кто-то ещё не видел — сегодня вышел финальный релиз Python 3 (aka "Python 3000").


GIL так и не убрали? Эх...
Re: Вышел релиз Python 3000!
От: Monax-At  
Дата: 04.12.08 12:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну, если кто-то ещё не видел — сегодня вышел финальный релиз Python 3 (aka "Python 3000").


C>http://python.org/download/releases/3.0/

C>Вот тут вот список изменений: http://docs.python.org/dev/3.0/whatsnew/3.0.html

Класс. дождались таки. День сегодня неплохой, день рождения у товарища, пару новостей хороших с работы
Когда появится wxPython под него и Blender3d перенесут, тогда и попробую. Пока 2,5 продолжу юзать.
Re[2]: Вышел релиз Python 3000!
От: DemAS http://demas.me
Дата: 04.12.08 14:41
Оценка:
> Когда появится wxPython под него и Blender3d перенесут, тогда и попробую. Пока 2,5 продолжу юзать.

Под linux обе версии можно параллельно поставить.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Вышел релиз Python 3000!
От: Cyberax Марс  
Дата: 04.12.08 16:26
Оценка:
Здравствуйте, Аноним, Вы писали:

C>>Ну, если кто-то ещё не видел — сегодня вышел финальный релиз Python 3 (aka "Python 3000").

А>GIL так и не убрали? Эх...
Ага. Максимум что могу предложить — это http://docs.python.org/dev/library/multiprocessing.html
Sapienti sat!
Re[3]: Вышел релиз Python 3000!
От: FR  
Дата: 04.12.08 17:03
Оценка:
Здравствуйте, DemAS, Вы писали:

DAS>Под linux обе версии можно параллельно поставить.


Под windows тоже
Re[3]: Вышел релиз Python 3000!
От: Critical Error ICQ: 123736611
Дата: 05.12.08 00:50
Оценка: 1 (1) +1
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Аноним, Вы писали:


C>>>Ну, если кто-то ещё не видел — сегодня вышел финальный релиз Python 3 (aka "Python 3000").

А>>GIL так и не убрали? Эх...
C>Ага. Максимум что могу предложить — это http://docs.python.org/dev/library/multiprocessing.html

Я не думаю что GIL вобще когда либо починят. Для этого придется переписать пол интерпретатора. И плюс будет сомнительный ведь придется создавать по менаджеру памяти и GC на поток. Кроме того придется чтото делать с глобальными переменными. В общем даже не представляю как это победить в питоне.

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

Кстати говоря интересно, что проблема GIL остро стоит только в питоне, больше нигде я такого не видел, хотя в тех же php и ruby тот же самый GIL.
Re[4]: Вышел релиз Python 3000!
От: Cyberax Марс  
Дата: 05.12.08 01:04
Оценка:
Здравствуйте, Critical Error, Вы писали:

CE>Я не думаю что GIL вобще когда либо починят. Для этого придется переписать пол интерпретатора. И плюс будет сомнительный ведь придется создавать по менаджеру памяти и GC на поток. Кроме того придется чтото делать с глобальными переменными. В общем даже не представляю как это победить в питоне.

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

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

Сейчас типа процессоры на 32 ядра будут в кофеварки ставить. Хотелось бы иметь реальную многопоточность.

CE>Кстати говоря интересно, что проблема GIL остро стоит только в питоне, больше нигде я такого не видел, хотя в тех же php и ruby тот же самый GIL.

Изначально добавили, а потом сил не хватило переписать.
Sapienti sat!
Re[5]: Вышел релиз Python 3000!
От: Critical Error ICQ: 123736611
Дата: 05.12.08 01:36
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну это, всё делается как в куче других языков с многопоточностью и GC.


Я не спец, поэтому могу ошибаться, но единственный язык без проблемы с GIL — это erlang. И то по той лишь причине, что там нельзя созать тред ОС, хотя сейчас менаджер потоков VM erlang-а может создавать несколько тредов для выполнения на них легковесных процессов. Но даже там по менаджеру памяти и GC на поток ОС.

Есть еще правда куча "мелких" языков навроде lua. Там нельзя создавать треды из языка, но зато можно наплодить сколько угодно инстансов интерпретатора. Каждый естесственно со своей кучей и конечно изолирован от остальных инстансов. Вот в таких языках тоже нет проблемы GIL.

А еще? java? .NET? Там как?
Re[6]: Вышел релиз Python 3000!
От: Cyberax Марс  
Дата: 05.12.08 01:49
Оценка:
Здравствуйте, Critical Error, Вы писали:

C>>Ну это, всё делается как в куче других языков с многопоточностью и GC.

CE>Я не спец, поэтому могу ошибаться, но единственный язык без проблемы с GIL — это erlang. И то по той лишь причине, что там нельзя созать тред ОС, хотя сейчас менаджер потоков VM erlang-а может создавать несколько тредов для выполнения на них легковесных процессов. Но даже там по менаджеру памяти и GC на поток ОС.
Вообще-то, без всяких проблем с потоками работает GC и в Java, .NET, Ruby и даже в старом добром С (Boehm GC)!

CE>Есть еще правда куча "мелких" языков навроде lua. Там нельзя создавать треды из языка, но зато можно наплодить сколько угодно инстансов интерпретатора. Каждый естесственно со своей кучей и конечно изолирован от остальных инстансов. Вот в таких языках тоже нет проблемы GIL.

CE>А еще? java? .NET? Там как?
Без проблем всё работает. И по куче на поток не требуется, естественно (точнее, такая оптимизация может использоваться, но она нифига не обязательна).
Sapienti sat!
Re[7]: Вышел релиз Python 3000!
От: Critical Error ICQ: 123736611
Дата: 05.12.08 02:00
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Вообще-то, без всяких проблем с потоками работает GC и в Java, .NET, Ruby и даже в старом добром С (Boehm GC)!


CE>>А еще? java? .NET? Там как?

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

А как??? На ум приходит только одно: менаджер памяти и GC защищен мьютексом. Ну и чем это отличается от GIL??? Разве что может быть несколько пулов обьектов и соответсвенно несколько мьютексов. Это оптимизация, но не большая... Может быть также что менаджер памяти глобальный, а вот GC какойнибудь хитро-локалный для треда. Хотя в принципе 2 мьютекса — это уже не GIL, а Half-IL
Re[8]: Вышел релиз Python 3000!
От: Cyberax Марс  
Дата: 05.12.08 02:20
Оценка: +1
Здравствуйте, Critical Error, Вы писали:

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

CE>А как???
Ну блин... Тут писать можно...

CE>На ум приходит только одно: менаджер памяти и GC защищен мьютексом.

Это как вариант. Ещё часто используют комбинированный способ — небольшие thread-local арены для мелких объектов и специальная куча для больших.

CE>Ну и чем это отличается от GIL???

Всем.

GIL захватывается на все инструкции. Т.е. у меня в Java если не происходит аллокация памяти, то потоки гарантированно будут спокойно работать параллельно на нескольких ядрах (если stop-the-world GC не активен, конечно). В Питоне захватывается GIL вообще для всех операций (кроме некоторых простейших арифметических).

CE>Разве что может быть несколько пулов обьектов и соответсвенно несколько мьютексов. Это оптимизация, но не большая... Может быть также что менаджер памяти глобальный, а вот GC какойнибудь хитро-локалный для треда. Хотя в принципе 2 мьютекса — это уже не GIL, а Half-IL

Там всё сложнее... Обычно используется generational GC, который позволяет минимизировать потери на него.

В общем, Питон тут в каменном веке по уровню развития.
Sapienti sat!
Re[9]: Вышел релиз Python 3000!
От: Critical Error ICQ: 123736611
Дата: 05.12.08 02:32
Оценка: :)
Здравствуйте, Cyberax, Вы писали:

C>В Питоне захватывается GIL вообще для всех операций (кроме некоторых простейших арифметических).


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

C>В общем, Питон тут в каменном веке по уровню развития.


Да я говорю нужно переписывать его... Но задача эта трудна, я б не смог по крайней мере. Но язык сам по себе классный. Из всех существующих по моему мнению лучший в плане синтаксиса.
Re[10]: Вышел релиз Python 3000!
От: Cyberax Марс  
Дата: 05.12.08 02:48
Оценка:
Здравствуйте, Critical Error, Вы писали:

C>>В Питоне захватывается GIL вообще для всех операций (кроме некоторых простейших арифметических).

CE>Ого, если это действительно так, то все и правда очень плохо. Интересно зачем понадобилось лочить интерпретатор для каждой инструкции?...
Внутренности интерпретатора — не thread-safe. Скажем, там счётчики ссылок не thread-safe'ные, что когда-то давало неплохое ускорение.

C>>В общем, Питон тут в каменном веке по уровню развития.

CE>Да я говорю нужно переписывать его... Но задача эта трудна, я б не смог по крайней мере. Но язык сам по себе классный. Из всех существующих по моему мнению лучший в плане синтаксиса.
JPython рулит
Sapienti sat!
Re[4]: Вышел релиз Python 3000!
От: FR  
Дата: 05.12.08 07:09
Оценка:
Здравствуйте, Critical Error, Вы писали:


CE>Кстати говоря интересно, что проблема GIL остро стоит только в питоне, больше нигде я такого не видел, хотя в тех же php и ruby тот же самый GIL.


Скорее всего потому что питон в отличии от этих родственных языков, намного чаще используется как язык общего назначения, например на нем в отличии от них пишут и десктопные приложения.
Re: Вышел релиз Python 3000!
От: dmz Россия  
Дата: 05.12.08 08:55
Оценка:
C>Ну, если кто-то ещё не видел — сегодня вышел финальный релиз Python 3 (aka "Python 3000").

C>http://python.org/download/releases/3.0/

C>Вот тут вот список изменений: http://docs.python.org/dev/3.0/whatsnew/3.0.html

В общем-то, я и раньше читал whatznew, но если резюмировать: второстепенной важности изменения синтаксиса, GIL остается (навечно), никаких подвижек в сторону concurrency (в то время, как космические корабли бороздят...) и и про развертывание хвостовой рекурсии не слышно.

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

Предвижу также, что ветка 2.X развиваться не будет, или будет плохо.

Короче, мы переходить на 3.0 в новых проектах не будем, и вероятно, вообще не будем, по возможности, использовать питон в новых проектах — нет смысла.
Re[4]: Вышел релиз Python 3000!
От: thesz Россия http://thesz.livejournal.com
Дата: 05.12.08 09:20
Оценка:
CE>Я не думаю что GIL вобще когда либо починят. Для этого придется переписать пол интерпретатора. И плюс будет сомнительный ведь придется создавать по менаджеру памяти и GC на поток. Кроме того придется чтото делать с глобальными переменными. В общем даже не представляю как это победить в питоне.

В тикле потоки имеют свои собственные иерархии интерпретаторов. Нет одного основного.

В результате малое взаимодействие между потоками во время GC, отсутствие глобальных переменных и (!) если написанное на C(++) расширение умеет работать с несколькими интерпретаторами (хранит данные в ClientData указателе), то оно умеет работать и с несколькими потоками.

CE>Кстати говоря интересно, что проблема GIL остро стоит только в питоне, больше нигде я такого не видел, хотя в тех же php и ruby тот же самый GIL.


php живёт внутри apache, который делает fork. Поэтому там одна задача и один же интерпретатор, никаких потоков.

А вот AOLserver с тиклем внутри изначально был многопоточный.

Резюмируя: решения есть, давнишние, проверенные.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[2]: Вышел релиз Python 3000!
От: Daevaorn Россия  
Дата: 05.12.08 10:38
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>Короче, мы переходить на 3.0 в новых проектах не будем, и вероятно, вообще не будем, по возможности, использовать питон в новых проектах — нет смысла.


А какую технологию/язык вы предпочтете на место питона?
Re[3]: Вышел релиз Python 3000!
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 05.12.08 10:56
Оценка:
Здравствуйте, Daevaorn, Вы писали:

D>А какую технологию/язык вы предпочтете на место питона?


Scala?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[2]: Вышел релиз Python 3000!
От: Аноним  
Дата: 05.12.08 12:59
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>В общем-то, я и раньше читал whatznew, но если резюмировать: второстепенной важности изменения синтаксиса, GIL остается (навечно), никаких подвижек в сторону concurrency (в то время, как космические корабли бороздят...) и и про развертывание хвостовой рекурсии не слышно.

Про хвостовую рекурсию, кстати, уже давно сказали -- "нету и не будет".
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.