Special Note About pyjs Development
pyjs is Free Software, and is made up of its contributions from users, for its users. As a Free Software Project, its existence and continued development depends exclusively on financial and technical contributions.
If you use pyjs for a non-commercial project, consider contributing patches, examples, or documentation updates. If you use it for a commercial project, consider contracting the Lead Developers to assist your development. This helps ensure the pyjs codebase remains stable and consistent with your project's development. If you just like pyjs and wish to see it move forward, consider sponsoring or making a donation to help support the continuing efforts toward the pyjs Roadmap.
pyjs Roadmap
As pyjs comprises several projects, each has its own future and
direction.
pyjs Compiler
- Add support for exec and eval (like Skulpt).
- Improve the Python interoperability support for --strict, with the goal of providing full and complete Python interoperability for this mode.
- Provide a complete suite of interoperable Python modules.
- Be able to run and pass the standard CPython test suite, under pyv8run and pysmrun (all 25,000 regression tests).
- Add decorators to all functions which allow the declaration of the types
of parameters and the return result, and enhance the compiler so that it
optimises the generated code. One of the flaws of the Python programming
language is that every operation (+, -, len etc.) requires double-checking
the type of the object, and CPython always check whether the two types are
integers, then moves into complex detection and type coercion second.
Converting this logic to JavaScript has proved to be very expensive for
--strict. Emacs and PyQt4 solve this by allowing the type of parameters and
the return result to be declared in advance.
- Complete the enhancements work listed in the TODO file.
pyjs Desktop
- Add more runtimes, especially for MacOSX and embedded systems.
- Provide easy-to-install dependencies for all platforms across all computing architectures (webkitgtk is not easy to install on Win32 or MacOSX, neither is pywebkitgtk).
- Change the startup API so that it uses the HTML loader file to detect the module (just like pyjs)
- Provide the means to open several web engine windows (support for Window.open) and still have them load and run pyjs applications.