Fun is a programming language and virtual machine I originally started for fun - but I take it seriously and build it for professional environments. It is not an esoteric language. The current focus areas are:

  • Potential TCP/Unix socket communication
  • CGI and web server support
  • Serial communication
  • Smartcard communication

This post gives you a concise picture of what Fun is (and is not), why it exists, and where it is going.

What Fun is

  • A compact language with a small, pragmatic core
  • Backed by a lightweight VM designed for reliability
  • Geared toward IO-centric tasks where predictability matters
  • Built with maintainability in mind, aiming for clear semantics and straightforward tooling

What Fun is not

  • Not an esoteric toy - while the project began “for fun”, it has serious goals and standards
  • Not a kitchen-sink runtime - we prefer a focused, composable core over bloat

Primary use cases (today and near-term)

  • Fast prototyping of small, low-level tools
  • Explorations around TCP and Unix domain sockets for simple networked services
  • Talking to devices over serial interfaces (industrial/embedded scenarios)
  • Smartcard interactions where exact byte-level control is required

Design values

  • Focus: solve concrete communication problems well
  • Simplicity: keep concepts minimal and understandable
  • Reliability: deterministic behavior over clever shortcuts
  • Portability: aim to run in constrained and varied environments

Project status

Fun is evolving quickly. Some components are production-ready, others are still experimental. The direction is clear: practical features that make day-to-day, low-level communication tasks easier and safer.

Get involved

If you work with serial devices, smartcards, or lightweight networked tools and want a focused, no-nonsense environment, Fun might fit you well. It started as a project for fun - and it stays fun - but the goals are serious.

Happy hacking!

Johannes Findeisen (hanez) - hanez@fun-lang.xyz

Comments