LINUX.ORG.RU — Русская информация об ОС Linux

[#]  

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

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

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

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

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

Метки: jit, python, история успеха

shapka (13.03.2010 1:13:22)
Проверено: boombick (13.03.2010 11:31:57)
Juick

[#] Ответ на: комментарий от pythonist 13.03.2010 14:05:27  
annulen

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

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

annulen ** (13.03.2010 18:50:38)
[#] Ответ на: комментарий от registrant 13.03.2010 13:45:10  
val-amart

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

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


ofk

val-amart **** (13.03.2010 18:51:51)
[#] Ответ на: комментарий от annulen 13.03.2010 18:50:38  
val-amart

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

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


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

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

val-amart **** (13.03.2010 18:53:34)
[#]  
theos

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

theos ** (13.03.2010 18:54:31)
[#] Ответ на: комментарий от val-amart 13.03.2010 18:53:34  
theos

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

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

theos ** (13.03.2010 18:55:43)
[#]  
pevzi

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

Што.

pevzi **** (13.03.2010 19:03:01)
[#] Ответ на: комментарий от theos 13.03.2010 18:54:31  

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

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

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

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

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

tailgunner ***** (13.03.2010 19:31:47)
[#] Ответ на: комментарий от annulen 13.03.2010 18:50:38  

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

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

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

Alesh (13.03.2010 19:39:13)
[#] Ответ на: комментарий от theos 13.03.2010 18:55:43  

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

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

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

Alesh (13.03.2010 19:41:29)
[#] Ответ на: комментарий от theos 13.03.2010 18:55:43  
val-amart

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

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


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

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

val-amart **** (13.03.2010 19:43:15)
[#] Ответ на: комментарий от tailgunner 13.03.2010 19:31:47  
theos

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

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

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

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

theos ** (13.03.2010 19:44:59)
[#] Ответ на: комментарий от val-amart 13.03.2010 19:43:15  
theos

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

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

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

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

theos ** (13.03.2010 19:49:01)
[#] Ответ на: комментарий от theos 13.03.2010 19:49:01  

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

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

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

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

Alesh (13.03.2010 20:01:36)
[#] Ответ на: комментарий от Alesh 13.03.2010 20:01:36  
theos

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

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

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

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

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

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

theos ** (13.03.2010 20:12:24)
[#] Ответ на: комментарий от theos 13.03.2010 20:12:24  

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

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

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

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

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

Alesh (13.03.2010 20:19:55)
[#] Ответ на: комментарий от Alesh 13.03.2010 20:19:55  
theos

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

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

theos ** (13.03.2010 20:25:02)
[#] Ответ на: комментарий от theos 13.03.2010 20:25:02  

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

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

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

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

Alesh (13.03.2010 20:33:44)
[#] Ответ на: комментарий от Alesh 13.03.2010 20:33:44  
theos

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

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

theos ** (13.03.2010 21:10:29)
[#] Ответ на: комментарий от theos 13.03.2010 21:10:29  
val-amart

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

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

val-amart **** (13.03.2010 21:15:50)
[#] Ответ на: комментарий от val-amart 13.03.2010 21:15:50  
theos

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

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

theos ** (13.03.2010 21:31:21)
[#] Ответ на: комментарий от theos 13.03.2010 21:31:21  

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

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

Alesh (13.03.2010 22:07:57)
[#] Ответ на: комментарий от Alesh 13.03.2010 22:07:57  
val-amart

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

val-amart **** (13.03.2010 22:14:09)
[#] Ответ на: комментарий от val-amart 13.03.2010 22:14:09  

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

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

Alesh (13.03.2010 22:51:36)
[#] Ответ на: комментарий от zHACKa 13.03.2010 11:52:55  

> это бутстреппинг, а не тавтология ;)

или онанизм?

ubuntulover (13.03.2010 23:51:07)
[#] Ответ на: комментарий от Alesh 13.03.2010 22:51:36  
theos

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

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

theos ** (14.03.2010 1:09:11)
[#] Ответ на: комментарий от val-amart 13.03.2010 18:53:34  

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

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

Hjorn * (14.03.2010 1:40:44)
[#]  
xtron

может лучше было бы к LLVM сделать фронтенд чтобы оно уже JIT делало?

xtron * (14.03.2010 2:28:25)
[#] Ответ на: комментарий от xtron 14.03.2010 2:28:25  
xtron

почитал и понял что это оно и есть - фронтенд к LLVM.
гуд, хоть питон и не пользую.

xtron * (14.03.2010 2:33:52)
[#] Ответ на: комментарий от val-amart 13.03.2010 18:51:51  
registrant

>ofk

wtf

registrant ***** (14.03.2010 5:10:47)
[#] Ответ на: комментарий от theos 14.03.2010 1:09:11  

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

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

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

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

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

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

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

Alesh (14.03.2010 10:33:12)
[#] Ответ на: комментарий от Hjorn 14.03.2010 1:40:44  

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

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

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

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

Alesh (14.03.2010 10:38:49)
[#] Ответ на: комментарий от Alesh 14.03.2010 10:38:49  

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

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

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

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

Hjorn * (14.03.2010 14:04:59)
[#] Ответ на: комментарий от xtron 14.03.2010 2:33:52  

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

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

tailgunner ***** (14.03.2010 14:07:32)
[#] Ответ на: комментарий от Hjorn 14.03.2010 14:04:59  

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

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

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

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

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

tailgunner ***** (14.03.2010 14:10:18)
[#]  

Представляю, как это действо тормозит

CLD (14.03.2010 14:17:09)
[#] Ответ на: комментарий от CLD 14.03.2010 14:17:09  

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

anonymous (14.03.2010 14:31:36)
[#]  

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

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

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


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

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

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

anonymous (14.03.2010 15:03:33)
[#] Ответ на: комментарий от tailgunner 14.03.2010 14:07:32  

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

Не лги мне. Есть там LLVM-backend.

anonymous (14.03.2010 15:08:02)
[#] Ответ на: комментарий от Alesh 14.03.2010 10:33:12  
theos

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

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

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

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

a.meth = decorator(a.meth)

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

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

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

theos ** (14.03.2010 15:08:08)
[#] Ответ на: комментарий от Alesh 14.03.2010 10:38:49  
theos

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

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

theos ** (14.03.2010 15:14:11)
[#] Ответ на: комментарий от theos 14.03.2010 15:08:08  

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

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

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

anonymous (14.03.2010 15:34:43)
[#] Ответ на: комментарий от theos 14.03.2010 15:08:08  

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

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

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

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

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

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

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

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

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

Alesh (14.03.2010 16:01:03)
[#] Ответ на: комментарий от theos 14.03.2010 15:14:11  

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

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

Alesh (14.03.2010 16:05:03)
[#] Ответ на: комментарий от Hjorn 14.03.2010 14:04:59  

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

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

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

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

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

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

Alesh (14.03.2010 16:13:05)
[#] Ответ на: комментарий от theos 14.03.2010 15:08:08  

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

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

Alesh (14.03.2010 16:26:01)
[#] Ответ на: комментарий от anonymous 13.03.2010 14:06:55  

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

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

pythonist * (14.03.2010 16:40:41)
[#] Ответ на: комментарий от anonymous 14.03.2010 15:08:02  

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

> Не лги мне.

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

> Есть там LLVM-backend.

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

tailgunner ***** (14.03.2010 16:44:57)
[#] Ответ на: комментарий от pythonist 14.03.2010 16:40:41  
BZFLATER

>pythonist

Кот бы говорил.

BZFLATER (14.03.2010 16:51:43)
[#] Ответ на: комментарий от Alesh 14.03.2010 16:26:01  
theos

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

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

theos ** (14.03.2010 18:34:27)
[#] Ответ на: комментарий от Alesh 14.03.2010 16:01:03  
theos

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

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

theos ** (14.03.2010 18:36:16)

О Сервере - Правила форума
http://www.linux.org.ru/

Rambler's Top100 Рейтинг@Mail.ru