# Languages

Nock is Turing-complete, but as you've probably come to realize, it's not exactly a “programming” language:  it's too abstruse and economical to be used directly for most programming tasks.  Instead, Nock is best thought of as a compilation target for higher-level languages.

At the current time, the high-level languages under most active development that target Nock are Hoon and Jock.  There is also an Urwasm Nock compatibility layer for executing WebAssembly code on a Nock runtime.

- [Hoon](../languages/relationship-to-hoon.md) is a mature systems programming language with much syntax and flexibility.
- [Jock](../languages/relationship-to-jock.md) is a scripting language designed as a more developer-friendly alternative to Hoon.

There have also been a few experimental compilers built to play with language concepts:

- [Hick by ~tacryt-socryp](https://gist.github.com/tacryt-socryp/b08dc66b7bcc760e914c4db5c9fd7ba7), a Lisp-like Hoon.

    ```lisp
    (seq
      (put x 5)
      (put y (ffi add (get x) 1))
      (ffi mul (get x) (get y)))
    ```

    Hick is a proof of concept for what S-expression syntax might look like in Hoon.

- [Loon by ~fodwyt-ragful](https://github.com/frodwith/loon), a Lisp.

  - [Discussion of Loon](../languages/relationship-to-loon.md): Loon is an experimental Lisp dialect that compiles to Nock, with a unique split between two forms of abstraction: `fn` for ordinary closures and `dfn` for bare Nock formulas.

- [North by ~lagrev-nocfep](https://github.com/sigilante/north), a Forth interpreter running as a Gall agent.

  - [Discussion of North](../languages/relationship-to-north.md): North is an ANSI-compatible Forth interpreter that runs on a Nock host, demonstrating how different computation models can be implemented on top of Nock.

- [Trinitite by ~lagrev-nocfep](https://github.com/sigilante/trinitite), not a language, a Raspberry Pi Forth-based Nock OS.
