January 30, 2026

Buzzing into C, stinging the Lua hive

Show HN: Cicada – a scripting language that integrates with C

Tiny “Cicada” crawls into C, fans shout “Use Lua!” while creator says he wrote it by accident

TLDR: Cicada is a tiny scripting language you can run inside C, born from a decades-old neural networks tool. The crowd debated whether we need yet another option, pressed for real use cases, and questioned memory safety and threading, while enjoying the “I accidentally made a language” origin story.

A new mini language called Cicada just buzzed into town, promising to run right inside C programs. The demo is simple—include a header, link a library, call a function—and suddenly your C app can speak Cicada. But the community immediately split into camps: one chorus cheered the novelty, another yelled, “We already have Janet, Guile, Lua, and Tcl!” The strongest mood? Friendly skepticism with a side of “try it, but don’t reinvent the wheel.”

The author dropped a curveball: he accidentally wrote a language decades ago while building neural network tools, and kept evolving it for scientific programming. That origin story became the meme of the thread. Meanwhile, the nerdier drama lit up around an “aliases not pointers” claim for memory safety—folks poked at whether that slows things down, and if it’s runtime or compile-time wizardry. Practical voices asked, “What’s the use case?” and “Does it work from multiple threads or is there global state?” Translation: the vibe is curious but cautious. Bonus jokes: yes, people made cicada insect puns about emerging every 17 years and the project “chirping” into C. The takeaway? It’s fresh, it’s tiny, it’s contentious—and it’s getting a lot of buzz.

Key Points

  • Cicada is a lightweight scripting language that runs within C programs.
  • Installation uses standard steps: ./configure, make, and make install.
  • Integration requires including the header file: #include <cicada.h>.
  • Linking is done with the lcicada library flag, e.g., gcc -lcicada -o myprogram.
  • The interpreter can be started by calling runCicada(NULL, NULL, true).

Hottest takes

“My personal favorite is still Janet” — smartmic
“What’s the use case?” — eps
“Writing a language was almost an accident” — briancr
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.