[HN Gopher] Polycompiler: Merge Python and JavaScript code into ...
___________________________________________________________________
Polycompiler: Merge Python and JavaScript code into one file that
runs in both
Author : nickoates
Score : 58 points
Date : 2025-05-04 03:27 UTC (3 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| GeekFortyTwo wrote:
| Ok, now write your code in a metalanguage(i believe fut might
| work), and now we can write once and run on two different
| engines.
| bitwize wrote:
| Maybe we can convince Marc Feeley to write a backend for Gambit
| that targets this.
| belmarca wrote:
| Hey, I'm writing this from Pr Feeley's lab :)
|
| I understand your comment was tongue-in-cheek, but we
| certainly have an interest in cross-language
| interoperability! You can check out our work here:
|
| - https://try.gambitscheme.org is Gambit compiled to
| JavaScript with the universal backend. Evaluate
| \alert("hello!") at the REPL to see the JS<->Scheme Syntactic
| FFI in action.
|
| - https://codeboot.org is our own Python interpreter running
| in the browser. It has a Python<->JS FFI. Evaluate
| \alert("hello!") at the REPL to test it out. You can even
| import JS libraries using the standard Python syntax by
| replacing the identifier with a string: import
| "https://mycdn.com/mylibrary.js".
|
| - https://github.com/gambit/python is a Gambit module that
| integrates Gambit with CPython, using the same syntactic FFI.
| You can import PyPI modules from Gambit.
|
| References to conferences/papers describing these features
| can be found on my GH profile (https://github.com/belmarca).
| AMA if you wish!
| bitwize wrote:
| It was more "ha ha only serious" than purely tongue-in-
| cheek. I'm familiar with Gambit's multi-backend targeting
| and have experimented with its JS backend. I consider it
| one of the quickest, and most comprehensive, ways to get
| "Scheme in the browser".
| gobblik wrote:
| The tricks it uses are explained well in the video. Would love to
| see this expand to include more languages.
| taraparo wrote:
| You could also write your app in Haxe instead and cross compile
| to Javascript, Python, C++, Java, Lua,...
| rafram wrote:
| This seems to be intended as an interesting experiment (in the
| same genre as things like quines). There are obviously more
| production-ready ways to compile code for multiple runtimes.
| eesmith wrote:
| See even https://en.wikipedia.org/wiki/Polyglot_(computing) .
| omneity wrote:
| Haxe is not just an experiment. It is a mature language and
| ecosystem used in production. You will find it powering many
| games for example.
|
| I used it a long long time ago on one of my first freelance
| gigs (with a PHP target). It was already quite solid and
| saved me the need to use a PHP framework.
|
| I also remember using it as a typed javascript pre-compiler,
| at a time where FB Flow and MS Typescript were still fighting
| over developer mindshare. I would probably still use it if TS
| didn't take over the ecosystem entirely.
|
| https://haxe.org/use-cases/who-uses-haxe.html
| rafram wrote:
| "This" = Polycompiler (the OP project), not Haxe.
| Polycompiler appears to be intended as a toy/experiment, so
| it doesn't really make sense to compare it to Haxe.
| jorl17 wrote:
| It's so good to see Haxe mentioned!
|
| I ported an entire AS3/Flash game to Haxe that my friends had
| written during our college years, as a kind of "thank you"
| present for ten years of friendship (adding mobile, cross-
| platform, gamepad controller, netplay and other things).
|
| While the tooling was spotty, I found the experience wonderful!
| Haxe felt like a decent language with laudable goals and a nice
| community.
|
| I hope one day I find another reason to work with Haxe.
|
| Does anyone have any project that is using Haxe in production?
| Would love to hear about such stories!!
| outofpaper wrote:
| Not my project but there's always Dead Cells and the stories
| behind its developed.
| betterThanTexas wrote:
| To what extent does Haxe still align with modern Javascript? Is
| modern javascript even considered to be the basis of
| actionscript anymore?
| mmastrac wrote:
| I'll raise you a polyglot script that doesn't require eval: :)
| 1 // len(""" console.log('javascript'); /* """)
| print('python'); # */
|
| Example: # python3 /tmp/test.py python
| # node /tmp/test.js javascript
|
| I _believe_ the only source limitations are the the JS cannot
| contain `"""` and Python cannot contain `*/`.
___________________________________________________________________
(page generated 2025-05-07 23:01 UTC)