1
0
Fork 0
forked from fun/fun
fun/README.md

3.9 KiB
Raw Blame History

Fun (https://fun-lang.xyz)

What is Fun?

Fun is a highly strict programming language, but also highly simple. It looks like Python (My favorite language), but there are differences.

Influenced by Bash, C, Go, Lua, Python, and Rust (Most influences came from linked languages).

Fun is and will ever be 100% free under the terms of the Apache-2.0 License.

Idea

  • Simplicity
  • Consistency
  • Joy in coding
  • Fun!

☑ = Done / ☐ = Planned or in progress.

Characteristics

  • Dynamic and optionally statically typed
  • Type safety
  • Written in C (C99) and Fun
  • Internal libs are written with no_camel_case even when written in Fun, except class names
  • Only a minimal function set is written in C, and most other core functions and libraries are implemented in Fun

The Fun Manifesto

Fun is a programming language built on a simple idea: Coding should be enjoyable, elegant, and consistent.

Philosophy

  • Fun is Fun
    Programming should spark creativity, not frustration. Code in Fun feels light, playful, and rewarding.
  • Fun Uses Nothing
    Minimalism is power. No unnecessary features, no endless syntax variations, no formatting debates. Just clean, uniform code.
  • Indentation is Truth
    Two spaces, always. No tabs, no four-space wars. Code should look the same everywhere, from your laptop to /usr/bin/fun.
  • One Way to Do It
    No clutter, no 15 ways of writing the same thing. Simplicity means clarity.
  • Hackable by Nature
    Fun should be small and embeddable, like Lua. Easy to understand, extend, and tinker with — true to the hacker spirit.
  • Beautiful Defaults
    A language that doesnt need linters, formatters, or style guides. Beauty is built in.

The Community

Fun is not about being the fastest or the most feature-rich. Its about sharing joy in coding. The community should be:

  • Respectful
  • Curious
  • Creative

Like the name says: Fun Unites Nerds.

Please visit the Fun Community Page to get in touch.

The Goal

A language that feels like home for developers who:

  • Love minimal, elegant tools
  • Believe consistency is freedom
  • Want to write code that looks good and feels good

Fun may not change the world — but it will make programming a little more fun.

Features

  • cURL support builtin using libcurl (optional) ☑
  • JSON support builtin using json-c (optional) ☑
  • libSQL support builtin (optional) ☑
  • PCRE2 support builtin for Perl-Compatible Regular Expressions (optional) ☑
  • PCSC smart card support builtin using PCSC lite (optional) ☑
  • SQLite support builtin (optional) ☑
  • Tk support builtin for GUI application development (optional) ☐
  • XML support builtin using libxml2 (optional) ☐
  • YAML support builtin using libfyaml (optional) ☐

Documentation

I am writing documentation only actually, but this is work in progress, since debugging and bug fixing includes this task.

Current documentation is only found in the Fun Handbook.

In the examples/ directory should be an example of most Fun features.

Complete API documentation will follow.

Author

Johannes Findeisen you@hanez.org