[HN Gopher] Show HN: Now my pet programming language can run in ...
       ___________________________________________________________________
        
       Show HN: Now my pet programming language can run in the browser
        
       Author : nbittich
       Score  : 53 points
       Date   : 2024-02-10 14:36 UTC (8 hours ago)
        
 (HTM) web link (nbittich.github.io)
 (TXT) w3m dump (nbittich.github.io)
        
       | mcdonje wrote:
       | Got a blog post about building this?
        
         | simonw wrote:
         | It's not a blog post but the GitHub Actions workflow that
         | deploys that site has some clues
         | https://github.com/nbittich/adana/blob/42d167b1d04ad2e2f4045...
        
           | ZoomerCretin wrote:
           | Ah. I was curious about the Rust-style function returns (just
           | having the name of the variable on the last line without a
           | "return" statement or keyword), but knowing that the language
           | is written in Rust answers my question of why that design
           | decision was made ;)
        
         | nbittich wrote:
         | I may try writing something about my experience building this
         | project, I'm terrible at writing but it was so much fun, I
         | think it is worth the effort :)
        
       | Instantnoodl wrote:
       | Tasty name! Great work :) I'm sure that was a lot of fun to build
        
         | nbittich wrote:
         | Thank you :)
        
       | beardyw wrote:
       | I think there is a role for a scripting language in the browser
       | akin to scripting in a spreadsheet. Sadly I don't see an accepted
       | standard. Key would be what it can't do (access the document
       | model, access the internet etc), not so much what it can.
        
         | javajosh wrote:
         | I agree, but I imagine there either is or will be a js-in-wasm
         | project that can suitably truncate the environment. Not that js
         | is actually not good at this sort of application (triple equals
         | get old fast), but people already know it.
         | 
         | And of course there's lua.
        
       | nilslice wrote:
       | It may just be my own unique obsession to peek at the internals
       | of .wasm, but if anyone else is curious:
       | 
       | https://modsurfer.dylibso.com/module?hash=ab6f4b2de9db171347...
       | 
       | u/nbittich - curious if you've tried to use your language as as a
       | scripting language inside other apps? I took a peek at your
       | browser wasm environment, and think we could hook up the
       | `compute` entrypoint you have here[0], but I'm not certain what
       | the `ctx` does without going super deep, and if it could be
       | passed into an Extism function[1] (which is how I'd try to run it
       | from within 16+ other languages).
       | 
       | [0]: https://github.com/nbittich/adana/blob/master/adana-
       | script-w...
       | 
       | [1]: https://github.com/extism/extism
        
         | nbittich wrote:
         | Thank you for having a look at it! I didn't know extism, will
         | definitely have a look at the readme right after I finish to
         | write this comment.
         | 
         | The ctx variable is a piece of memory, kind of the heap where
         | functions and variables are stored during the script execution;
         | I did it that way because I wanted to keep whatever is in that
         | memory after each script execution, so in a prior version you
         | could define a variable x, run the script, then re-run a
         | completely different script, but still have access to the x
         | variable. I removed it at the end because I wasn't sure if it
         | was a good idea, or at the very least should be documented, but
         | I kept the ctx thing there (could easily remove it tho)
        
           | nilslice wrote:
           | ah that makes sense! so `compute` can still execute a script
           | with an empty memory (just to test things out)?
           | 
           | feel free to join us on Discord if you'd like:
           | https://extism.org/discord -- happy to chat about it there. I
           | think your language embedded in a bunch of apps as a
           | scripting lang (beyond Rust) would be really cool to see.
        
       ___________________________________________________________________
       (page generated 2024-02-10 23:00 UTC)