tsc-ts: TypeScript written in TypeScript

(github.com)

18 points | by tosh 1 hour ago

9 comments

  • pizlonator 10 minutes ago
    I confirmed, it's faster than the Go version, which is very surprising, and super impressive!

    Caveats:

    - I don't think it's right to say that it's "written in TypeScript". In fact, it's written in the subscript of TypeScript that scriptc supports. scriptc isn't just a subset of ts; it even diverges from ts semantics in sneaky ways to facilitate its optimizations. So, these folks have really created a TypeScript-like native language with some kind of RC-GC hybrid and a bunch of caveats. Not clear if this is any better than just creating a new language.

    - Very likely that it was codeveloped with scriptc, so it's getting maximum benefit from exactly the sorts of idioms that scriptc supports well. And, I would bet they landed optimizations to scriptc specifically to get this result.

    This could be useful, assuming they invest in supporting it, and you're the sort of person who needs 2x faster ts compiles.

  • _1tan 0 minutes ago
    Did anyone benchmark against Buns‘ new time typecheck that landed in v 1.4.3? I would do it but too far away from my machine right now.
  • tallowen 32 minutes ago
    The back and forth between writing tools in javascript and go or rust seems like it's in an unstable equilibrium right now:

    - Go / Rust: It's easier than ever to rewrite existing tools in more performand languages

    - Javascript: The v8 runtime for vercel or cloudflare workers is a much cheaper way to run certain workloads (e.g. conversational agents) than running a heavy weight vm. See just bash as another example project for taking advantage of this (https://github.com/vercel-labs/just-bash)

    I'm curious to see what happens!

    • ameliaquining 2 minutes ago
      Running Rust code in V8 via WebAssembly works today, though the tooling could benefit from a bit more polish. Go sort of works, but less well; IIUC fixing this would require adding more features to Wasm, most especially interior pointers, so that its garbage collection behavior can be made semantically compatible with Go's.
    • CharlieDigital 2 minutes ago

          > ...than running a heavy weight vm.
      
      Serverless containers are a thing (GCP Cloud Run, Azure Container Apps) and seems like the right analogue.
  • koolba 24 minutes ago
    > An experimental TypeScript port of the TypeScript 7.0.2 compiler (TypeScript-Go, or tsgo), compiled to native code with scriptc.

    I don’t get it. Isn’t the golang version already native?

    Or is this one of those things where it’s not supposed to make sense?

    • clarus 16 minutes ago
      This version can additionally be compiled through LLVM, using a compiler from Vercel supporting a subset of TypeScript. I tried and it is 2 to 3x faster than the native Go version.
  • jchw 44 minutes ago
    There is no obvious explanation for why you would want this anywhere I can find... Does anyone understand? If you wanted this, wouldn't it make more sense to extend the last version of TypeScript before ts-go instead? Hmm.
    • phoghed 39 minutes ago
      Seems like it’s to show off scriptc unless I’m missing something else. They claim this is 2-4x faster than tsgo

      https://t.co/fMEAmv2VDY

      • ameliaquining 15 minutes ago
        I guess the question is why you wouldn't use TypeScript 6 as the basis for that.
    • reactordev 37 minutes ago
      Stage 1 to writing a bootstrap able language is using the intermediate step of compiling it with a compiler written in another language so that you can write a compiler for yours. I’m sure they did this in order to get a binary of the first self-compilable version.
    • 9cb14c1ec0 31 minutes ago
      All the twitter types are busy rewriting typescript to speed it up, just because they can. It's becoming a meme.
  • drewbitt 1 hour ago
    I don't know whats a meme or not anymore..
  • einaralex 23 minutes ago
    What is the purpose of this?
  • perganomoly 50 minutes ago
    Seriously, the simulation needs a reboot.
    • staminade 25 minutes ago
      What if we're actually running in a slop decomp of the simulation...
    • dalmo3 26 minutes ago
      Or needs to be rewritten in Rust.
  • jdw64 23 minutes ago
    Will it be faster than the Go version? But why is this even necessary? I don't get it.
    • epolanski 2 minutes ago
      Apparently it's 2/3 times faster than the Go version.

      Whatever one think, the fact that there's 4 vibe coded compilers, 2 of those with 100% coverage of the official one and all being much faster than the Go version should be a wake up call for the TypeScript team.

      Despite the resources and having a huge team of people that are clearly good at programming languages and compilers, something is definitely not working as it should there if vibecoders can get much faster fully compliant compilers.