[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)