WASP, a Lisp dialect for performant, concise Web Assembly modules

Have you heard about Web Assembly (WASM)? It’s a binary format standard and assembly-like execution environment used for speeding up web applications.

It’s cool. Very cool. And now enters WASP.

From the README on GitHub (https://github.com/wasplang/wasp)

WASP is ‘a LISP programming language for extremely performant and concise web assembly modules.’ That means that you can use WASP to generate WASM modules. Here’s an example:

; main.w
(extern console_log [message])
(defn main "main" []
(console_log "Hello World!"))

This will generate a WASM module that logs ‘Hello World!’ to the browser’s console.

The impact of WASP can be huge. Lisp is a family of languages; that means that there are many versions of Lisp without having an official implementation. Infact, Lisp’s main requirement is the idea of homoiconicity; that is, Lisp is represented primarily through code as a data structure. Take the above WASP example :

(console_log "Hello World!")

See those ()'s? Everything inside of the parentheses is valid Lisp code, but the parentheses themselves define a data structure called a list. So Lisp is defined by defining lists, which are composed of other data structures, such as strings (such as in the above example).

In the end, Lisp programming allows for some flexible and interesting solutions to programming problems.

Lisp programming, although somewhat niche, boasts a large, dedicated following, and many other programmers tinker with Lisp as a form of right-of-passage or out of sheer curiosity. Because of this, WASP is bound to attract some attention, especially considering that Web Assembly is just now starting to really make some headlines.

Because of this premise, I think that WASP is very cool, and I am very eager to see further development. I want to give a shoutout to the developer behind WASP! Good luck on future endeavors.

In the end, I believe Web Assembly is bound to change the world. And you know what, WASP maybe can change the world too.