LINUX.ORG.RU

Вышел PyPy 1.2 - интерпретатор Python, написанный на Python

 , ,


0

0

Буднично и обыденно вышла очередная версия PyPy - интерпретатора языка Python, написанного на Python.

В этой версии впервые появился JIT, благодаря которому PyPy уже обгоняет CPython в большинстве бенчмарков. Это важный этап в развитии проекта, отмечают разработчики, и хотя проект ещё далёк от практического применения, такими темпами светлое будущее не за горами.

Бенчмарки PyPy vs CPython: http://speed.pypy.org/

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



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

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

>изменение структуры классов и объектов в процессе выполнения программы

/me представляет себе феерический дебаг

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

>> вышла очередная версия PyPy - интерпретатора языка Python, написанного на Python.

а можно на питоне написать интерпретатор интерпретатора языка Python, написанного на Python?


ofk

val-amart ★★★★★
()
Ответ на: комментарий от annulen

>> изменение структуры классов и объектов в процессе выполнения программы

/me представляет себе феерический дебаг


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

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

val-amart ★★★★★
()

Гугл же вроде сообщил что разрабатывает свой мегабыстрый интерпритатор питона. Новости кто-то знает?

theos ★★★
()
Ответ на: комментарий от val-amart

>если у кого-то мозг не способен осмыслить метапрограммирование

Это не метапрограммирование, это попытка его имитировать когда язык его не позволяет.

theos ★★★
()

> интерпретатора языка Python, написанного на Python

Што.

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

> Гугл же вроде сообщил что разрабатывает свой мегабыстрый интерпритатор питона. Новости кто-то знает?

Результаты так себе: http://unladen-swallow.googlecode.com/files/Unladen_Swallow_PyCon_2010.pdf

если у кого-то мозг не способен осмыслить метапрограммирование

Это не метапрограммирование, это попытка его имитировать

Напомни, ты лиспер или работаешь в JetBrains?

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

>изменение структуры классов и объектов в процессе выполнения программы

/me представляет себе феерический дебаг

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

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

>> если у кого-то мозг не способен осмыслить метапрограммирование

Это не метапрограммирование, это попытка его имитировать когда язык его не позволяет.

ЩТО?! Какой язык? ПэХаПэ?

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

>> если у кого-то мозг не способен осмыслить метапрограммирование

Это не метапрограммирование, это попытка его имитировать когда язык его не позволяет.


да ну. и метаклассы это тоже не метапрограммирование, да? модификация кода во время выполнения и интроспективные возможности это не динамическое программирование?

мисье хардкорный цппшник/жабер?

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

>Результаты так себе: http://unladen-swallow.googlecode.com/files/Unladen_Swallow_PyCon_2010.pdf

Да, действительно не впечатляют. Я был уверен что они воспользуются опытом V8.

Напомни, ты лиспер или работаешь в JetBrains?

:) Раньше работал в JetBrains.

theos ★★★
()
Ответ на: комментарий от val-amart

>модификация кода во время выполнения и интроспективные возможности это не динамическое программирование?

Про динамику ничего не писал. Спорить с тем что питон динамический язык глупо :)

и метаклассы это тоже не метапрограммирование

Нее, жалкое подобие. Настоящее - это когда у языка хватает семантической выразительности описать сущности с которыми он работает. Динамика это тот самый способ развязать узел без особого умения ;)

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

>> и метаклассы это тоже не метапрограммирование

Нее, жалкое подобие. Настоящее - это когда у языка хватает семантической выразительности описать сущности с которыми он работает. Динамика это тот самый способ развязать узел без особого умения ;)

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

А то складывается впечатление, что мсье рассуждает о вкусе лангуста имея про себя ввиду главного героя детской сказки «Рики-Тики-Тави» )))

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

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

К сожалению, нигде не видел :)

героя детской сказки «Рики-Тики-Тави»

Блин, не читал. Как оно читается не в детском возрасте? Интересно?

Ну тогда уж дайте в студию свое определение метапрограммированию

Да к сожалению строгого дать не могу. Грань между программированием и метапрограммированием слишком размыта. Лучше чем то что сказал боюсь не дам. С моей точки зрения метапрограммирование - описание отображения сущностей из предметной области в код.

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

>> героя детской сказки «Рики-Тики-Тави»

Блин, не читал. Как оно читается не в детском возрасте? Интересно?

Ну из вашего детства аналогичный герой Тимон из мультфильма про него и Пумбу ))) Хотя он не совсем мангуст, ну да ладно.

С моей точки зрения метапрограммирование - описание отображения сущностей из предметной области в код.

ОМГ! С вами все ясно, хотя бы потрудились посмотреть определение в педевикии до того как )))

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

>ОМГ! С вами все ясно, хотя бы потрудились посмотреть определение в педевикии до того как )))

Мне не нравиться определение в википедии. Оно отвечает на вопрос как, а мое - почему.

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

>> ОМГ! С вами все ясно, хотя бы потрудились посмотреть определение в педевикии до того как )))

Мне не нравиться определение в википедии. Оно отвечает на вопрос как, а мое - почему.

Метапрограммирование имеет четкое и устоявшееся определение. Которое в принципе отличается от вашего частного мнения по поводу расшифровки данного слова. Но при этом это не мешает вам заявлять, что оно это самое метопрограммирование всего лишь жалко имитируется в языке.

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

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

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

Наверно я плохо изъясняюсь. Оно плохо не потому что плохо меняет классы на лету. Меняет и не глючит, я тут не спорю. Я говорю что оно плохо этим решает насущные задачи. Метапрограммирование ценно не само по себе как факт. Я про цель, а не про средства.

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

> Я говорю что оно плохо этим решает насущные задачи. Метапрограммирование ценно не само по себе как факт. Я про цель, а не про средства.

иными словами, вы считаете, что метапрограммирование не решает задачи «описания отображения сущностей из предметной области в код»? а вам не кажется, что это не совсем для этого инструмент?
вам не кажется, что это немного нерелевантно в контексте дискуссии?

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

>что метапрограммирование не решает задачи «описания отображения сущностей из предметной области в код»?

Блин, видимо я действительно так плохо изъясняюсь если по карайне мере два человека меня поняли не правильно. Попробую еще раз. Нет я не говорю что метапрограммирование плохо, я говорю что питон его плохо реализует. И не в том смысле что оно в нем глючит, а в том, что цель метапрограммирования - введение в язык сущностей предметной области, и я утверждаю что с этой целью он справляется плохо.

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

> Блин, видимо я действительно так плохо изъясняюсь если по карайне мере два человека меня поняли не правильно.

Давайте что ли пример приведите. Что вы хотели сделать, какую «сущностей предметной области» пробовали реализовать, а питон вам в этом не помог? Без подкола, просто интересно.

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

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

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

>новая формулировка заметно лучше предыдущей и вполне понятна.

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

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

>Я тоже заметил. Похоже, что собеседник познакомился с материалом. Понял, что не по теме ляпнул и теперь делает хорошую мину.

Метапрограммированием я занимался профессионально. Так что материалом немножко владею ;) Мои претензии скорее к динамическому подходу вообще и справедливы не только для питона. Да, в питоне на лету можно добавлять методы и атрибуты на лету. Конструировать на лету классы - можно одной такой динамикой. Но у этого подхода есть фундаментальный минус - вся логика происходящего будет только в вашей голове. Как следствие на основе такой модели дико неудобно или невозможно генерировать эффективный код, документацию, верификацию, спецификацию и так далее. То есть на самом деле вы не вносите в язык понятий предметной области. Вы можете сказать что метапрограммирование не об этом. Но блин, когда я говорю что на языке плохо программировать я не имею ввиду что на нем переменных нету. Я имею ввиду что на этом языке не удобно выражение концепций более высокого уровня. Так и с метапрограммированием в питоне: технически оно есть, но только много чего не позволяет.

theos ★★★
()
Ответ на: комментарий от val-amart

> лиспы рулят, а питон в данном контесте почти лисп

В данном контексте питон крайне неудобен и ограничен. Это совсем не «почти лисп», даже на «почти тикль» не тянет. Единственная техника «метапрограммирования», часто встречаемая в живом коде на питоне - это method chaining :) Порой из этого даже получается уродливое подобие декларативного мини-языка. Интроспекция, eval'ы, самомодификация кода - это конечно хорошо, но было бы странно, если бы динамический язык этого не умел. При том что вся эта магия считается дурным стилем, как мне не раз объясняли опытные питоноводы. По собственным ощущениям на питоне удобно и приятно быдлокодить, а вот метапрограммирование - отнюдь не сильная его сторона. Хотя смотря с чем сравнивать... Це с Паскалем конечно Питон рвёт на этом поле :)

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

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

О Как! Все больше захотелось увидеть пример.

Да, в питоне на лету можно добавлять методы и атрибуты на лету. Конструировать на лету классы - можно одной такой динамикой. Но у этого подхода есть фундаментальный минус - вся логика происходящего будет только в вашей голове.

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

Так и с метапрограммированием в питоне: технически оно есть, но только много чего не позволяет.

На питоне не только простые и сложные типы являются объектами, но и функции, классы и их методы. Не наводит на мысли?

ЗЫ: Пример ждем!

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

>> лиспы рулят, а питон в данном контесте почти лисп

Единственная техника «метапрограммирования», часто встречаемая в живом коде на питоне - это method chaining :)

Харе уже газифицировать лужи. Напиши просто: «Пистон отстой, липс форева». Все, вопросов больше не будет )))

Лучше вон, расскажи Зеосу, что есть метапрограммирование, п то он до сих пор кажется его с математическим моделированием путает )))

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

> Напиши просто: «Пистон отстой, липс форева»

Ну можно и так :) Питон как метаязык - это просто смешно. Особенно на фоне лиспа, ребола или форта. Или (для простых смертных) тикля. Да даже перл получше будет в этом контексте.

Лучше вон, расскажи Зеосу, что есть метапрограммирование, п то он до сих пор кажется его с математическим моделированием путает

Ничего он не путает. Он хорошо понимает основную цель метапрограммирования, которую питоньи инструменты решают плохо. Можно трактовать метапрограммирование шире, скажем кодогенерацию и внешние препроцессоры вспомнить. Но и тут Питон не на высоте со своим чудо-синтаксисом. Язык спроектирован точно не для метапрограммирования, просто его динамическая природа позволяет кое что. Я не против Питона, мне только не понятно, с чего вдруг динамический вижуал бейсик стали преподносить как «почти лисп»? Лавры лисповой илиты не дают покоя что ли?

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

> почитал и понял что это оно и есть - фронтенд к LLVM.

Что-то странное ты читал. PyPy не имеет ровно никакого отношения к LLVM.

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

>> Напиши просто: «Пистон отстой, липс форева»

Ну можно и так :)

и тут Питон не на высоте со своим чудо-синтаксисом.

динамический вижуал бейсик

Походу ты читаешь «Справочник молодого тролля», раздел о Питоне?

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

Ну, пофантазируй) а тем временем он во многих тестах просто рвёт CPython)

anonymous
()

> иными словами

описания отображения сущностей из предметной области в код

а вам не кажется


это немного нерелевантно в контексте дискуссии?



попессди мне тут. тоже мне, дискутирующая интеллигенция.

алсо, по теме: вышла новая версия велосипеда, позволяющего ездить на велосипеде.

всем забить на питон. будущее - за пхп.

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

>О Как! Все больше захотелось увидеть пример.

Не хочу. Я и так слишком много пиарю этот продукт)

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

Слышал. А вы видимо нет, потому что он делает так:

a.meth = decorator(a.meth)

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

На питоне не только простые и сложные типы являются объектами, но и функции, классы и их методы. Не наводит на мысли?

Да знаю я. Только это не решает те проблемы которые я поставил. Вы по вашему описанию на питоне надорветесь тужу WSDLку строить. Особенно если у кого-то ручки шаловливые. Подробную документацию также. Ну и эффективный код не сгенирите.

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

>то он до сих пор кажется его с математическим моделированием

Почему с математическим? А проблема в том, что вы не замечаете что разницы то между моделировнием и программированием метапрограммирование должно страрть. В «правильных» системах эту разницу почти и не заметишь. Если ваш язык не умеет понимать модели, то есть вводить предметные сущности, - то и метапрограммирование в нем не полноценное. Метапрограммирование решает определенные задачи, так вот питоновское метапрограммирование справляется не со всеми из них. какие - я перечислил.

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

XML is like violence; if a little doesn't solve the problem, use more. (c)

> тужу WSDLку строить

Если так подходить к созданию себе проблем, то, безусловно, Питон не нужен.

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

>> О Как! Все больше захотелось увидеть пример.

Не хочу. Я и так слишком много пиарю этот продукт)

Пример с продуктом путать начал? Про твой продукт НЕ НУЖНО, и так доставляет ))) А вот пример до сих пор хочется увидеть.

Слышал. А вы видимо нет, потому что он делает так:
а.meth = decorator(a.meth)

Это приводилось тебе как пример, что модификацию метода вполне читаемо можно сделать, в вообще-то )))

Декоратор дает чуть более читабельнее код.

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

Только это не решает те проблемы которые я поставил.

Читать о ваших проблемах, в купе с отмазками привести пример, становится все смешнее и смешнее. )))

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

> проблема в том, что вы не замечаете что разницы то между моделировнием и программированием метапрограммирование должно страрть. В «правильных» системах эту разницу почти и не заметишь.

«Правильные» системы в студию с ПРИМЕРОМ!

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

> Питон как метаязык - это просто смешно.

Метаязык? Может быть, он просто хороший универсальный язык.

Ничего он не путает. Он хорошо понимает основную цель метапрограммирования, которую питоньи инструменты решают плохо.

Так помоги ему с рождением примера, может и действительно все так плохо )))

Лавры лисповой илиты не дают покоя что ли?

Ололо, прочитал книжку «Липс за 21 день», а все туда же, в элиту )))

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

> Вы по вашему описанию на питоне надорветесь тужу WSDLку строить. Особенно если у кого-то ручки шаловливые.

Интересно а по описанию на каком динамическом, нетипизированном языке вы не надорветесь строить WSDLку? Очень хочется узнать ;)

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

> Сейчас лисперы набегут и будут правы.

Я на Лиспе пару лет программировал и знаю его силу. Но Питон практичнее.

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

>> PyPy не имеет ровно никакого отношения к LLVM.

Не лги мне.

Я бы не посмел солгать самому анонимусу!!!111

Есть там LLVM-backend.

Там и CLI-backend, будут и backend'ы настоящих аппаратных архитектур. PyPy - это генератор JIT-компиляторов, но работает там только JIT для 32-бит x86. Может, я слишком категорично выразился - пусть будет «поддержка LLVM там на ранней стадии».

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

>Интересно а по описанию на каком динамическом, нетипизированном языке вы не надорветесь строить WSDLку? Очень хочется узнать ;)

А я вообще то написал что проблемы вообще в динамической типизации и у питона в частности.

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

>Это приводилось тебе как пример, что модификацию метода

это просто синтаксичкеский сахар. более читатабельно - так я и не спорю. я так и написал.

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