At the Language Summit a few days ago we discussed this problem. I wasn't
involved in this discussion, but it's a hard one to solve.

You may be interested in HPy (https://hpyproject.org/), which aims to
provide what you are looking for.

El dom, 23 abr 2023 a las 6:18, Evan Greenup via Python-ideas (<
python-ideas@python.org>) escribió:

> Dear All
>
> Python is a "glue" language, its dynamic nature has programming advantage
> and performance disadvantage.
> The best way to use Python is write Python code for high-level stuff and
> use native programming language like C, Rust, Zig, V for low level stuff.
> Currently, there is library like PyO3 and so on.
> However there is a lot of limitation in those library.
>
>    1. The "FFI" library is implementation specific. For example, PyO3, it
>    highly depend on specific version of CPython. If you use a different
>    version of CPython, there is some work for you to do. If you don't use
>    CPython, for example use another Python Implementation, This framework may
>    not work.
>    2. The project structure is rigid. When using something like PyO3. you
>    must make your project structure following certain pattern, then finally
>    produce a complete wheel package. The majority Python programmer does not
>    write a whole Python project for a installable package and pack it up then
>    install it. They are edit Python source file iteratively and run it
>    locally.
>    3. It is really ridiculous when you want to stick some item on the
>    wall. You need to totally redesign this item and manufacture a new item to
>    fit the glue you are going to use. As a glue language, Python should be
>    designed to glue other native programming language as a feature of Python
>    programming language itself not the tricks of certain variant of
>    implementation.
>
> It would be nice to add the feature in Python Standards (no matter what
> implementation is used) to satisfy the following capabilities:
>
>    - The interface is universal across all variant and version of Python
>    implementation (There might be protocol version update and may not
>    backward-compatible, but it is not bounded with Python implementation). The
>    overall effect is in some extent like JSON, but it is not a structured
>    string, It is a lively data structure with in-memory representation, they
>    are unified no matter what Python variant is used and what low level native
>    language is used.
>    - This mechanism is transparent to users, there is modules in standard
>    library to support it. If user want, they can design a toy native
>    programming language, and use Python to write a compiler for it. Then write
>    a module with custom language then compile and import it. This mechanism
>    provide user with maximum flexibility.
>    - almost zero-cost abstraction. Even if it not depend on CPython
>    tricks. But the central idea of this mechanism is still the dynamic linking
>    feature provided by operating system. The detailed format will be slightly
>    different. It doesn't introduce new stuff in nature. It doesn't spawn new
>    process, nor launch a VM, and nor I/O operations is involved. It just make
>    some basic data representation conversion and invoke the method in dynamic
>    library.
>
> This is just a raw idea. If it is valuable, it can take a discussion and
> make further steps.
>
> Thanks
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/R2NBDZHCCTJNRN27XP7PY7QLKDLYKSAW/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/WZKFVNEIZHZLTE4UPAHZ4F4SHT3JVNXN/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to