4 comments

  • mmastrac 13 hours ago
    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 `*/`.
  • taraparo 16 hours ago
    You could also write your app in Haxe instead and cross compile to Javascript, Python, C++, Java, Lua,...
    • jorl17 14 hours ago
      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 11 hours ago
        Not my project but there's always Dead Cells and the stories behind its developed.
    • rafram 16 hours ago
      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.
      • omneity 14 hours ago
        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 13 hours ago
          "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.
      • eesmith 15 hours ago
    • betterThanTexas 13 hours ago
      To what extent does Haxe still align with modern Javascript? Is modern javascript even considered to be the basis of actionscript anymore?
  • gobblik 17 hours ago
    The tricks it uses are explained well in the video. Would love to see this expand to include more languages.
  • GeekFortyTwo 18 hours ago
    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 17 hours ago
      Maybe we can convince Marc Feeley to write a backend for Gambit that targets this.
      • belmarca 15 hours ago
        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 14 hours ago
          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".