Show HN: USL - A Universal Scripting Language That Outputs to 111 Languages

(townsendatomics.gumroad.com)

15 points | by usl 1 day ago

9 comments

  • usl 1 day ago
    Hey HN,

    I built something I wish I had years ago.

    USL (Universal Scripting Language) is a symbolic syntax system that lets you write logic once, and output that logic into 111+ real programming languages — Python, Rust, C++, JS, Java, Go, etc.

    Upload a .usl file into the hosted app → choose any language(s) → download a .zip of the real code.

    It supports:

    Symbolic logic for print, assign, function, loop, if, etc.

    Custom syntax templates for each language

    A web app with multiselect UI + ZIP bundling

    Gumroad option to support or unlock everything ($5)

    App + Source: https://townsendatomics.gumroad.com/l/usl

    I’d love your thoughts on:

    How it could be more useful for devs/teachers

    Any language you'd want added

    Whether this belongs as a CLI tool, VS Code plugin, or playground next

    Happy to answer anything or collab. Thanks for reading!

    • danpalmer 1 day ago
      Hey, congrats on the launch. I'm interested in what use-case led you to create this? What problem does it solve?

      I've had a little experience translating code between languages (ObjC/Swift, Javascript/Python), and it has been frustrating, not because of re-stating the logic, but due to different availability of libraries, different execution semantics (e.g. async/await), different type systems, etc.

      Also, it looks like USL is a new language? Did you consider something like CEL instead (Common Expression Language, https://cel.dev/), which seems to be doing something similar for the expression of basic logic.

      • usl 1 day ago
        It's a new language. I haven't tried cel, but USL transpiles all of the logic--I'll keep working on it and make sure it works as you've mentioned.

        I was curious to see if I could do something like this for fun. It currently works with 111 languages from the 40/50s-today.

    • kej 1 day ago
      I think the landing page would be a lot more convincing with more examples. Show some simple scripts and a few of the generated outputs so people can get an idea of what your app is capable of.
      • crancher 1 day ago
        Absolutely. Huge claim with zero examples is hmm.
        • usl 1 day ago
          You're right. I'll post the examples, asap.
    • TylerE 1 day ago
      I find it impossible to take a $5 product seriously. It’s either a complete toy or the company will disappear inside of a year, or both. That isn’t a sustainable business model.

      Edit: Aldo the very first line of the very first example has. Basic syntax error (missing. Terminal quote in string constant).

      • usl 1 day ago
        Can you post it so I can see please? Which languages did you try?

        It's the first release--early bird pricing to raise funds for development.

        • TylerE 1 day ago
          I’m talking about literally the very first tab of the first example I. The link that was posted

          It’s something like print(“foo)

  • djfivyvusn 1 day ago
    Most languages are really just their standard library + ecosystem, go figure.
    • Defletter 1 day ago
      Heh, many languages have this inverse correlation between language features and the quality of their standard library. Zig for example has amazing language features, I wish that I could inline "orelse" or inline "catch" in Java, but I can't, and yet spinning up a cross-platform and asynchronous tcp server is infinitely easier in Java than in Zig. In fact, the more accurate correlation might be that the more annoying it is to write in a language, the more likely it is to have a thriving ecosystem, eg: Rust, Go, Javascript.
  • verdverm 23 hours ago
    Is there anything here besides big claims on a landing page, screenshots, and a payment button?

    This seems like vaporware

  • brirec 1 day ago
    I’ll definitely check it out if it’s ever published as open source software!

    Source available isn’t my cup of tea (especially for programming languages), and I’m not exactly a big fan of Gumroad either…

  • almostgotcaught 1 day ago
    You've invented IR - eg take a look at egress targets in MLIR https://github.com/llvm/llvm-project/tree/main/mlir/lib/Targ...
  • drivingmenuts 1 day ago
    This is neat, but, why not just run the USL script, rather than translating it to another language to run it there? Most of the target audience for this has the access to just work in whatever language needed and the few who don't, for reasons, probably are just going to write their scripts in the languages available to them.

    Seems that being able to translate a script from one language to another language would be more useful.

    This is a case where there were 111 problems. Now, there's 112.

  • cranberryturkey 1 day ago
    Sounds like smashlang
  • kjellsbells 1 day ago
    Suggestion: define who your target user is. A dev who speaks one lang and needs to quickly output another? A student in high school? A TA in college? That will orient the reader and set expectations appropriately.

    Also show some samples of output, eg Python or Go. It's difficult to assess the tool without understanding how idiomatic the output code is. As in, is USL doing anything more than "tokenizing sed on steroids"? I can't tell.

    Then again, if it's meant as a learning tool, maybe it matters less.