Представлен (http://blog.pyston.org/2014/09/11/9/) второй тестовый выпуск проекта Pyston (http://www.pyston.org), в рамках которого развивается реализация языка Python 2.7, созданная с использованием наработок проекта LLVM, примечательная применением современных технологий JIT-компиляции и нацеленная на достижение высокой производительности, близкой к производительности традиционных системных языков, таких как C++. Код Pyston написан на языке C++ и распространяется (https://github.com/dropbox/pyston) под лицензией Apache. Проект развивается компанией Dropbox, в которой работает Гвидо ван Россум, создатель языка Python.
Отмечается, что проект заметно продвинулся по сравнению с первым экспериментальным выпуском. Новый выпуск ознаменовал переход на стадию альфа-тестирования. Код всё ещё не рекомендован для использования в реальных проектах, но уже успешно проходит многие тесты, обеспечивает совместимость со стандартными библиотеками и позволяет выполнять простые программы. Ключевым новшеством выпуска является поддержка экспериментального многопоточного режима работы без глобальной блокировки интерпретатора (GIL, global interpreter lock), позволяющего обеспечить параллельное выполнение нескольких нитей кода на языке Python. Кроме того, значительно улучшена поддержка языка, в том числе обеспечена поддержка API для написания модулей на языке Си. При подготовке следующего выпуска основное внимание планируется уделить наращиванию производительности.В отличие от проекта PyPy (http://www.opennet.me/opennews/art.shtml?num=39759), также продвигающего идею применения JIT для ускорения выполнения Python-скриптов, в Pyston используется не трассирующий JIT, базирующийся на компиляции в машинный код часто выполняемых циклов, а применяемый в современных JavaScript-движках JIT на основе трансляции отдельных методов (method-at-a-time), который, по мнению инженеров Dropbox, является более перспективной технологией. Принцип работы Pyston сводится к разбору кода на языке Python и его трансляции в промежуточное представление LLVM (IR, Intermediate Representation). Далее IR-представление проходит обработку в оптимизаторе LLVM и передаётся для исполнения в JIT-движок LLVM, который преобразует IR-представление в машинный код. Для получения информации о типах переменных для программ на динамическом языке Python применяется техника вероятностного предсказания типов объектов с последующим уточнением правильности выбора типа в процессе выполнения. Таким образом Pyston постоянно варьирует выполнение между двумя ветками - быстрой, когда данные о предсказанных типах подтверждаются, и медленной, используемой в случае рассогласования данных о типе.
URL: http://blog.pyston.org/2014/09/11/9/
Новость: http://www.opennet.me/opennews/art.shtml?num=40571
вот оно, будущее ветки 2.7
> вот оно, будущее ветки 2.7А что делать, раз 3.x никому не нужен? Лично я, поглядев на всю эту катавасию, перешел на Go и доволен как слон. Чего и вам желаю.
> развивается реализация языка Python 2.7Зачем насиловать труп?
Да действительно, надо выкинуть весь работающий легаси-код и начать срочно переписывать на 3-м пестоне
Давно пора. Годы идут, у людей уже дети выросли, а прогрессивное человечество никак не может нормально перейти на третий Питон наконец.
> Давно пора. Годы идут, у людей уже дети выросли, а прогрессивное человечество
> никак не может нормально перейти на третий Питон наконец.Лучше бы на функциональные языки программирования переходили бы
Чем лучше?
чем не функциональные
нефункциональные
Простите, господин нацист, а какой же синоним без "не" есть для слова "нефункциональный"?
Бесполезные же
Императивный.
Нет, императивный — противоположность декларативного. А противоположность функционального — процедурный.
В правиле слитного написания "не" нет рассуждений о наличии/отсутствии синонимов без "не".
Напишите что нибудь дельное на Haskell хотя бы и выложите сообществу. Люди ждут.
А то годы идут а только пшик. Пока что выходит выгода от гибридных языков. Как и в природе - борьба и сосуществование форм.
Питон развивается и занял свою нишу.
> Напишите что нибудь дельное на Haskell хотя бы и выложите сообществу. Люди
> ждут.
> А то годы идут а только пшик. Пока что выходит выгода от
> гибридных языков. Как и в природе - борьба и сосуществование форм.
> Питон развивается и занял свою нишу.На Scala и Clojure написано достаточно дельных вещей, многие из которых работают в продакшене.
На Бэйсике и Коболе тоже много чего написано и оно всё ещё работает в продакшене.
Это как раз гибридные языки - Scala продвинутая Ява с функциональщиной. Поэтому вам и предложили попробовать Haskell.
> а прогрессивное человечество никак не может нормально перейти на третий Питон наконец.потому что нормальное (противоположность прогрессивному) человечество не может ответить вопрос "а нахрена"?
На этот вопрос могу ответить я. Логичный подход к кодировкам - уже достаточная для перехода причина.
> у людей уже дети вырослиДа где ж вы выросли?
Да уж, глядя на тебя и не скажешь.
> Да действительно, надо выкинуть весь работающий легаси-код и начать срочно переписывать на 3-м пестонеНет, вы что. Питоний код нужно только выкинуть, переписывать ничего не нужно.
Есть две неадекватные вещи, намеренно разжигаемые на OpenNETe:- ненависть к Python;
- ненависть к Ubuntu.Остальное - в высшей степени на высоте.
В былые времена разжигали ненависть к пхп и виндовс... Конкуренция усилилась.
питон и пыхпы - оттенки одного го%%%а
Ну если рассмотреть внимательно, то труп это python 3.x. Выкидыш, который лучше только большим номером версии.
Это мой ник!
хм, пока Гвидо в дропбоксе они пилят вариант Python2.7, как он приходит домой он строчит в твиттер что Python3 это будущее - двуликий Янус.
Ан нет, посмотрел коммиты, Гвидо не причем, зато прилагали руки к этому пистону сотрудники Гугла, РедХата и кучка непонятных немцев.
Неужели кто-то ещё понимает убогость 3 ветки...
А вообще, это похожие но разные языки. И 2 ветка ещё долго не умрёт. Ну и 2 проще будет, пилить меньше надо.
Убогость как раз осталась во 2 ветке.
С появлением 3 стало значительно проще отделить кодировку исходных данных от кода, работающего с этими данными. Для тех, кто работает с данными в разных кодировках все стало намного проще!!!
>Для тех, кто работает с данными в разных кодировках все стало намного прощеесть мнение, что их не так много и ими можно пожертвовать
Ах, если бы дело заканчивалось на кодировках...
> Убогость как раз осталась во 2 ветке.
> С появлением 3 стало значительно проще отделить кодировку исходных данных от кода,
> работающего с этими данными. Для тех, кто работает с данными в
> разных кодировках все стало намного проще!!!Разные кодировки не нужны, есть только одна кодировка - UTF-8. А вот то, как оно работает с UTF-8 - и есть самый главный вопрос, если есть с этим косяки - то в печь.
Хотя нет, есть один кейс, где нужна поддержка разных кодировок - импорт старых данных для конверсии в нормальную.
>> Убогость как раз осталась во 2 ветке.
>> С появлением 3 стало значительно проще отделить кодировку исходных данных от кода,
>> работающего с этими данными. Для тех, кто работает с данными в
>> разных кодировках все стало намного проще!!!
> Разные кодировки не нужны, есть только одна кодировка - UTF-8. А вот
> то, как оно работает с UTF-8 - и есть самый главный
> вопрос, если есть с этим косяки - то в печь.Данное мнение о нужности кодировок не нужно. Программа нагло и упорно навязывающая UTF более чем не нужна.
> С появлением 3 стало значительно проще отделить кодировку исходных данных от кода, работающего с этими данными.Доооо. Скажи это Армину. Третьегвидон пытается сказать, что вокруг мир только из юникода и терпит очевидный фейл — это наглая ложь. ОС — набор байт, и интерпретация этого факта должна быть под контролем разработчика. Что мы имеем в тройке? Веселые костыли (постоянно ломающиеся) в виде суррогатного эскейпинга и плясок вокруг файловых объектов, чтобы достучатся до сырых данных и байтовых строк. Если ты с этим не сталкивался, поздравляю, ты хомяк. Какие плюсы? Хомячки теперь могут не думать что писать, encode или decode. Для серьезных задач 3-я версия мало подходит.
Что-то вы похоже все перепутали. Костыли как раз в 2. В 3 сразу получаем все в байтах, а если надо получить как текст - указываем сразу кодировку. Стало намного удобнее. Ничего не ломается. Никаких плясок - все осталось в прошлом. Переход проходил тяжело, но сейчас уже никто не хочет возвращаться на 2.
> Что-то вы похоже все перепутали.Отнюдь, http://lucumr.pocoo.org/2014/5/12/everything-about-unicode/
> но сейчас уже никто не хочет возвращаться на 2.
Правильно, потому что все кто работает и так сидят на ней.
А расскажите развернуто, чем стало лучше? Анальным принуждением к некоему внутреннему представлению данных? Хочешь просто прогнать по сети байтики? Не судьба.
> А расскажите развернуто, чем стало лучше?Давайте представим, что у вас есть текст, закодированный с помощью deflate. Вы же не станете пытаться работать с ним, как с текстом? Вот и питон теперь не пытается работать с закодированными текстовыми строками, как с текстовыми строками. Если вы знаете (на основании протокола, формата файла), что у вас в буфере deflate(данные) - вы делаете inflate явно. Знаете, что там cp1251(текст) - делаете decode('cp1251'). Нет никаких причин считать, скажем, utf-8 чем-то отличающимся от другого метода кодирования данных.
> Хочешь просто прогнать по сети байтики? Не судьба.
Как это не судьба, если ничего другого принять/послать по сети и нельзя в 3 питоне?
Вообще новость преподносится не совсем верно. Это не проект по реализации Python 2.7, а реализация компилятора Python, которая на данный момент поддерживает только 2.7.
Просто у них приоритеты такие>Currently, Pyston targets Python 2.7, only runs on x86_64 platforms, and only has been tested on Ubuntu. Support for more platforms -- along with Python 3 compatibility -- is planned for the future, but this is the initial target due to prioritization constraints.
прикольный парень этот ваш гвидо, не бросает 2.7
После того, как в этом пистоне всё устаканится, накидать поддержку Py3 будет довольно просто
> После того, как в этом пистоне всё устаканится, накидать поддержку Py3 будет
> довольно простоДействительно, аноны с опеннета за вечер накидают.
> Действительно, аноны с опеннета за вечер накидают.Да они постоянно так делают: накидаются, а потом лезут на опеннет и кодить на пистонах.
> Pyston постоянно варьирует выполнение между двумя ветками - быстрой, когда данные о предсказанных типах подтверждаются, и медленной, используемой в случае рассогласования данных о типе.Какой трэш только не творят люди лишь бы писать без указания типов
> Какой трэш только не творят люди лишь бы писать без указания типовПри типах тоже треша хватает в виде абстрактных фабрик фабрик.
>> Какой трэш только не творят люди лишь бы писать без указания типов
> При типах тоже треша хватает в виде абстрактных фабрик фабрик.Обычно это значит что "так проектируют только мудаки"
> Обычно это значит что "так проектируют только мудаки"Обычно это значит, что система типов тупо не справляется. Не хватает гибкости/выразительности.
>> Обычно это значит что "так проектируют только мудаки"
> Обычно это значит, что система типов тупо не справляется. Не хватает гибкости/выразительности.Когда не справляется система типов - это редкие специфичные случаи, а в большинстве своём это именно ошибки проектирования.
> Когда не справляется система типов - это редкие специфичные случаи, а в
> большинстве своём это именно ошибки проектирования.Tell me moar)) Чистый типизированный код возможен только на хеллоуворлдах. Ну и сырцы на go приятно выглядят.
>> Когда не справляется система типов - это редкие специфичные случаи, а в
>> большинстве своём это именно ошибки проектирования.
> Tell me moar)) Чистый типизированный код возможен только на хеллоуворлдах. Ну и
> сырцы на go приятно выглядят.Доказательство? Не опирающееся на глубокую ошибочность проектирования проектировщиками хеллоуворлдов? >:-)
Респект! Хоть кто то в теме наконец сказал про этот небольшой косячок Питона ))
Отсутствие типизации заставляет писать кучу unit-тестов даже на простые
вещи - в итоге проще и дешевле писать сразу на
языке со строгой типизацией (любом).
Вот для сборки проектов или автоматизации этот инструмент подходит очень даже.
PyPy оказался ненужным полигоном для тестов
Как ни транслируй питон, все равно он гвидобейском останется.
ну и чего, list comprehension у него будет медленнее PyPy чтоль?
Eat da PyPy!
> PystonА-тя-тя!
я так понимаю, что в велобаджо все еще переходят на 3 пайтон )))
Ура товарищи! Вот и Go-капец не за горами.
>Проект развивается компанией Dropbox, в которой работает Гвидо ван Россум
>Поддержка языка пока ограничивается Python 2.7Это пять. Похоже, третий питон так и останется мёртворожденным.
Оуееее!!! ))))
Теперь я всем пистона вставлю! )))
> Ключевым новшеством выпуска является поддержка экспериментального многопоточного режима работы без глобальной блокировки интерпретатораМне вот интересно, как они это сделали. Неужто придумали какой-то внятный memory model?
Чего только не придумают, чтобы не объявлять явно типы в коде.