[HN Gopher] Goscript: Transpile Go to human-readable TypeScript
       ___________________________________________________________________
        
       Goscript: Transpile Go to human-readable TypeScript
        
       Author : aperturecjs
       Score  : 20 points
       Date   : 2026-01-11 09:20 UTC (4 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | tayo42 wrote:
       | Interesting I feel like I'd rather go the other way, write
       | something in a language with nice syntax and features, then
       | transpile to go
        
         | jerf wrote:
         | There are a number of little projects like that but I'm not
         | aware of any that have attained liftoff.
         | 
         | Javascript was a weird exception, being rigidly the only thing
         | available in the browser for so long and thus the only
         | acceptable "compile target" for anything you want to run in the
         | browser. In general I can't name very many instances of "write
         | in X and compile it to Y", for some Y that isn't something you
         | are forced to use by a platform, being all that successful.
         | (See also assembler itself.) The Javascript world gives a false
         | signal of this being a viable approach to a project; in general
         | it doesn't seem to be.
         | 
         | (Note this is a descriptive claim, not a normative one. I'm not
         | saying this is how it "should" be. It just seems to be the
         | reality. I love people trying to buck the trend but I am a big
         | believer in _realizing_ you are trying to buck a trend, so you
         | can make decisions sensibly.)
        
           | unsnap_biceps wrote:
           | I keep waiting for a LLVM IR reverser. If there's a LLVM IR
           | to foo reverser written, you would be able to use any
           | language supported by LLVM and convert them to foo. It seems
           | like a much better solution than all the disparate one-offs
           | that exist today.
        
             | antonvs wrote:
             | You may be waiting a long time. Low-level IRs lose a lot of
             | information compared to the source language - their purpose
             | is only to execute correctly, which means a lot of the
             | information that we depend on when reading code is
             | eliminated. I'm reminded of Hal Abelson's quote, "
             | "Programs must be written for people to read, and only
             | incidentally for machines to execute." IRs are the opposite
             | of that. In general, a reverser is going to suffer because
             | of that.
             | 
             | I did some reverse engineering of compiled C code back in
             | the day. Back when compilers and CPUs were simpler, and
             | optimizations were fewer, it was relatively straightforward
             | for a human to do. That's no longer true. I suspect an LLM
             | would have difficulty with it as well, plus the non-
             | determinism that would introduce would be likely to be
             | problematic.
        
         | adsharma wrote:
         | If there is such an interesting language, you can transpile to
         | static python first and then use py2many to gain access to many
         | systemsey languages.
         | 
         | The other option is to evolve static python into such a
         | language. Looking forward to the PEP that proposed DSLs in
         | Python.
        
       | nzoschke wrote:
       | Neat! I have experimented with various ways to convert Go structs
       | to/from TypeScript interfaces.
       | 
       | - https://quicktype.io/
       | 
       | - https://github.com/danielgtaylor/huma then OpenAPI -> TS
       | 
       | - https://github.com/gzuidhof/tygo
       | 
       | - https://github.com/coder/guts
       | 
       | guts also does some AST stuff.
       | 
       | It seems like this project could help with this and then some.
        
       | lowmagnet wrote:
       | Wait, go isn't human readable?
        
         | dieggsy wrote:
         | Not sure if humor, but this is meant to make a distinction with
         | a non-human readable _compilation target_ , many of which
         | aren't, even when using high level languages.
        
       | tdaron wrote:
       | hey ! i like the idea but I don't get why not using WASM instead
       | of transpiling ? (I get the "transpiled typescript might be more
       | readable" argument, but it seems less bullet proof / prone to
       | unexpected behavior)
        
       ___________________________________________________________________
       (page generated 2026-01-15 23:01 UTC)