LINUX.ORG.RU

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

 , ,


0

0

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

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

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

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



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

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

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

Я привел уже кучу раз: генерация документации, верификаци, построение прочих артефактов - например WSDL.

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

>Пример с продуктом путать начал?

Если пример интересного решения является чьим-то продуктом то они могут совпадать.

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

>может и действительно все так плохо )))

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

theos ★★★
()
Ответ на: XML is like violence; if a little doesn't solve the problem, use more. (c) от anonymous

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

Да сравнивай XML с чем хочешь XML, XSD, WSDL - стандарт и это хорошо. Мог бы быть стандарт гораздо хуже. Или еще хуже отсутствие стандарта. Мнение XMLофобов как и вообще любой-технологии-фобов мне как то не очень интересно.

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

> Как походить? Если хотеть ручками следить за соответствием кода и всдлки?

Воистину, жаба с зумелем съедают мозг.

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

>> А вот пример до сих пор хочется увидеть.

Да блин, я привел конкретный пример с WSDLкой.

Если это был пример, то можно и обсудить.

Если есть готовая WSDL, по построить по ней как серверную, так и клиентскую часть вполне можно (В гугле масса примеров))). А используя упоминавшиеся декораторы еще и вполне красиво. А генерить по существующему коду питона, да вряд ли получится. Хотя я себе слабо представляю необходимость такого хода.

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

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

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

Это не проблемы, это его достоинство )))

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

> по построить по ней как серверную, так и клиентскую часть вполне можно

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

А генерить по существующему коду питона, да вряд ли получится. Хотя я себе слабо представляю необходимость такого хода.

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

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

>Настоящие программисты на Java могут писать на Java на любом языке.

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

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

>Тебе нужно - поддерживай и крепись. Только в наш Питон не лезь.

Гвидо, ты?

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

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

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

...

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


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

вот относящийся к теме метапрограммирования пример, который мне интересен:
есть всевозможные интеллектуальные задачки/головоломки/итд для детей разных возрастов (от детсада до старшего школьного), нужно придумать язык, позволяющий «минимальными» усилиями создавать язык предметно-ориентированный для конкретного типа задачек, логического/лингвистического/геометрического/смешаного/итд. минимальными означает возможность реализации DSL за разумное время средним программистом, сгенерённый DSL должен:
1) быть способен описать любую задачку из области, под которую он сгенерён
2) школьник, решающий описываемые DSL задачки, должен быть способен _сам_ описать на этом DSL любую задачку из области, описываемой DSL и без помощи разработчика получить модель работающую на компьютере.
3) в общем виде тут можно наложить требование возможности описать модель задачек из любого школьного предмета, но это слишком сильно, поэтому это намёк куда двигаться

смысл описываемого примера в привлечении пользователей интеллектуальных игрушек к самостоятельному расширению набора игрушек, что позволяет к ограниченному штату разработчиков таких игрушек добавить _армию_ пользователей-разработчиков. Школы компьютеризировали, а зачем, по-большому счёту никто не знает (про откаты и распилы промолчим, нас интересует «полезный выхлоп»).

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

Что то мне таких задачек не попадалось в школьном возрасте. Достаточно странно требовать от школьника врубаться в идеи DSL - мне кажется это совсем своевременно - физика и математика для них полезней. Но это уже мое лично дело.

А можете привести пример таких задач? Очень интересно.

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

Именно по-этому мне крайне импонирует идея Language Workbench.

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

Кстати - ссылка в профиле у вас битая. Это так и задумано?

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

>Тавтология

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

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

> /me представляет себе феерический дебаг
да всё замечательно дебажиться у питона отличный интерактивный режим и pdb и исходники читабельные и docstrings

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

> когда всё прогрессивное человечество сто лет как использует x86_64

64 бита на рабочей станции не нужны.

Большинство прикладного софта на ура живёт в двух гигабайтах. А выигрыша по скорости 64 бита не дают.

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

> Зачем на интерпретированном яыке писать интерпретатор этого же языка?\

Чтобы интерпретатор был гибче.

Всеравно для выполнения требуется базовая среда питона под конкретную платформу,

Подлежащий интерпретатор планируется минимизировать, часть его переводится в JIT.

Как видим, результаты уже хорошие.

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

> как у него с многопоточностью ? так же плохо ?

С многопоточностью у питона всё отлично, если не писать числодробилки.

А числодробилки на питоне писать не следует вообще.

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

> 4.2

Пруфлинки будут, не?

Выигрыш из-за лишних регистров примерно компенсируется тормозами из-за увеличения размера указателей.

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

Пруфлинки будут, не?

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

Выигрыш из-за лишних регистров примерно компенсируется тормозами из-за увеличения размера указателей.

теоритик, такой теоретик

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

> А можете привести пример таких задач? Очень интересно.

дети изучают корни квадратных уравнений. Учитель на DSL описывает общее решение, и выдаёт индивидуальное уравнение каждому с помощью генератора коэффициентов в качестве дз или на контрольной. Общее решение описанное на DSL проверяет решение с заданными коэффициентами у каждого школьника и автоматом заносит оценку в тетрадку или в журнал. Имеем:
а. списать нельзя поскольку коэффициенты у всех разные,
б. у учителя появилось время объяснить доп материал поскольку проверка производится общим решением на компе.

В случае ЕГЭ имеем:
а. списать нельзя, поскольку коэффициенты у всех разные.
б. учителя порешать и выдать ответы не могут, поскольку генерация коэффициентов и их рассылка на места производится непосредственно перед экзаменом.
с. решения сразу посылаются в вц минобра откуда пришли коэффициенты. Общее решение в этом вц проверяет ответы сразу после экзамена и записывает оценку в централизованную базу данных. Коррупция на местах отсутствует (в экзаменационные помещения устанавливаются веб-камеры с записью, каждый родитель или работник гороно может наблюдать за всем происходящим в помещении)

проблемы:
1) задать общее решение может быть слишком тяжело
2) без контроля промежуточных шагов нельзя сказать, где учащийся ошибся и поправить его, описать модель, которая способна проверять ещё и промежуточные шаги решения может быть слишком тяжело
3) используя «подпольную программу-решалку» учащийся может «списывать» её ответы не понимая как задача была решена => нужен анализ промежуточных шагов решения учащегося, опять же усложнение задачи

в рамках тестов с выбором ответа из списка (ЕГЭ один из них) такой подход имеет право на существование

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

> На чистом Питоне, и только пока.

При использовании Numpy/SciPy количество требуемой возни постепенно сводит выигрыш от питона на нет.

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

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

Перепишите получше. Используйте оптимизирующий компилятор под x86.

теоритик, такой теоретик

Никакой теории. Тупо результаты практических тестов.

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

Интересная цитата про 32 и 64 бита из сопроводительной документации квантовохимического пакета GAMESS US:

«Converting GAMESS to 64 bits is important in order to allow for the allocation of more than 2 GBytes of RAM for the calculation. In fact, it is higly desirable to see all 32 bit systems eliminated from the face of the planet. So, if you encounter a new system that supports both 32 and 64 bit models, don't even bother about porting for 32 bit mode. Its the past, not the future.»

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

> Перепишите получше.

написано все хорошо

Используйте оптимизирующий компилятор под x86.

используется

Тупо результаты практических тестов.

у меня противоположные результаты

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

> «Converting GAMESS to 64 bits is important in order to allow for the allocation of more than 2 GBytes of RAM for the calculation

Для научных числодробилок, которым нужно стопиццот памяти - да, 64 бита маст хэв.

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

У меня на ноуте 3 Гб памяти. Я откровенно не знаю куда их девать. 64 бита мне там нахрен не впёрлись.

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

Там ключевая фраза «In fact, it is higly desirable to see all 32 bit systems eliminated from the face of the planet» :)

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

ну да, ну да
«640Кб должно быть достаточно для каждого»

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