Bit of writing
This commit is contained in:
parent
8982aabdc3
commit
4657e3305c
1 changed files with 7 additions and 2 deletions
9
book.org
9
book.org
|
@ -929,12 +929,17 @@ Given that the target audience for this tool is secondary education students, we
|
||||||
Python can not be executed directly by a browser, since only JavaScript and WebAssembly are natively supported.
|
Python can not be executed directly by a browser, since only JavaScript and WebAssembly are natively supported.
|
||||||
We investigated a number of solutions for running Python code in the browser.
|
We investigated a number of solutions for running Python code in the browser.
|
||||||
|
|
||||||
The first of these is Brython [cite:@quentelBrython2014].
|
The first of these is Brython\nbsp{}[cite:@quentelBrython2014].
|
||||||
Brython works by transpiling Python code to JavaScript, where the transpilation itself is also implemented in JavaScript.
|
Brython works by transpiling Python code to JavaScript, where the transpilation itself is also implemented in JavaScript.
|
||||||
The project itself is conceptualized as a way to develop web applications in Python, and not to run arbitrary Python code in the browser, so a lot of its tooling is not directly applicable to our use case, especially concerning interactive input prompts.
|
The project itself is conceptualized as a way to develop web applications in Python, and not to run arbitrary Python code in the browser, so a lot of its tooling is not directly applicable to our use case, especially concerning interactive input prompts.
|
||||||
It also runs on the main thread of the browser, so executing a student's code would freeze the browser until it is done running.
|
It also runs on the main thread of the browser, so executing a student's code would freeze the browser until it is done running.
|
||||||
|
|
||||||
Another solution we looked at is Skulpt [cite:@scottSkulpt2009].
|
Another solution we looked at is Skulpt\nbsp{}[cite:@scottSkulpt2009].
|
||||||
|
It also transpiles Python code to JavaScript, and supports Python 2 and Python 3.7.
|
||||||
|
After loading Skulpt, a global object is added to the page where Python code can be executed through JavaScript.
|
||||||
|
Skulpt however also has the main drawback of Brython, namely that it executes on the main thread of the currently open tab.
|
||||||
|
|
||||||
|
The final option we looked at was Pyodide\nbsp{}[cite:@droettboomPyodide2018].
|
||||||
|
|
||||||
*** Implementation
|
*** Implementation
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue