Подтвердить что ты не робот

Разработка PyPy Rpython как общего языка программирования

Есть ли интерес к разработке Rpython (Restricted Python) из PyPy как язык программирования общего назначения? Возможно, это может быть вилка из проекта PyPy. Существует ли такой проект? Поскольку программы скомпилированы, можно просто внести модули, написанные на Rpython, и они могут конкурировать с другими реализациями python, включая CPython и PyPy.

4b9b3361

Ответ 1

Я не могу говорить для всех остальных, но мне лично очень интересно использовать RPython как язык общего назначения. Чтобы ответить на некоторые другие вопросы:

Почему? Потому что Cython - это боль, чтобы понять, как использовать. Если вы не введете много сложных деклараций типа, вы не получите ускорения. С RPython он будет работать быстро или он не будет запускаться вообще.

Использование PyPy обеспечивает хорошее ускорение, но в настоящее время оно не так сильно, как RPython.

RPython может быть хорошим способом получить сверхбыстрый, несколько Pythonic-код. Вот пример, чтобы помочь вам начать работу. К сожалению, я не знаю больших проектов для этого.

Ответ 2

Да, уже существует проект для использования цепочки инструментов перевода PyPy для создания автономных исполняемых файлов и библиотек с использованием RPython. Он называется RPythonic.

Ответ 3

Универсальный RPython не будет конкурентом для CPython и PyPy. Он даже не был бы конкурентом таких вещей, как Cython.

Почему? Поскольку RPython не является Python! RPython - это просто язык, который разделяет некоторый синтаксис с Python; достаточно, чтобы интерпретатор Python мог выполнять код RPython, но вы не можете взять код Python и скомпилировать его как RPython.

Ограничения на Python, которые добавляются для включения и компиляции статического типа RPython (действительно, для вывода статического типа) настолько серьезны, что полностью меняют язык. Если вы хотите написать программу RPython, вам нужно решить сделать это заранее и записать ее в RPython. Вы не можете написать программу на Python, а затем решили скомпилировать ее как RPython, и вы даже не можете настроить реалистичную программу Python, чтобы сделать ее RPython. Обычный код Python не похож на обычный код RPython; запись RPython больше похожа на запись Java или С#.

Итак, если вы хотите писать общие программы на Python, но хотите, чтобы они шли быстрее, RPython предлагает вам очень мало. То, что пытается заполнить нишевый интерпретатор PyPy Python.

Если вы хотите писать общие программы на более компилированном языке более низкого уровня, потому что вам нужно, чтобы ваша программа работала быстрее, чем Python, для этого существуют уже очень зрелые языки и библиотеки, такие как Java или С#.

Причиной для кода в RPython было бы сделать что-то, что особенно улучшилось с помощью RPython. Подобно написанию интерпретаторов, к которым вы можете добавлять сборщиков мусора и компиляторы JIT без необходимости писать их вручную! Здесь отображает RPython, и да, я был бы очень заинтересован в более полированной и пригодной для использования среде интерпретатора RPython. Но в качестве языка программирования общего назначения для написания программ, которые не особенно выигрывают от специальностей RPython, просто было бы чудовищной работой, чтобы довести ее до такой степени, что она может конкурировать с существующими языками, которые уже выполняют эту роль лучше. Например, у него почти нет стандартной библиотеки (поскольку в RPython практически нет стандартной стандартной библиотеки Python).

Ответ 4

По внешнему виду, ограничения довольно суровые, и в целом это намного меньше, чем программировать. Это необходимо для реализации PyPy, но, как правило, если вы хотите быстро скомпилированный код, который может взаимодействовать с Python, вы должны использовать Cython (который нацелен на расширениях CPython и полностью поддерживает практически все Python) или писать код на одном из наиболее распространенных языков, которые могут это сделать. И если вам просто нужен быстрый, скомпилированный код... ну, RPython может быть приятнее, чем, например, C, но, тем не менее, я не вижу здесь существенного преимущества (по крайней мере, ни одно из них не может потребовать усилий для создания удобного и стабильного языка).

Ответ 5

Почему я хочу писать напрямую в RPython?

Кажется, что намного проще для кода Python и запускать PyPy.

Зачем мне писать C-код?

Кажется, гораздо проще написать Python и реализовать PyPy в C

Зачем мне писать код ассемблера?

Кажется, что гораздо проще написать Python и реализовать PyPy в C и C, реализованном в Assembler.

Я думаю, что это действительно черепахи до конца.

Почему я хочу прекратить использовать наиболее удобный язык и переключиться на менее удобный язык?

Какова ценность отказа от хорошего языка?