1
0
Fork 0
forked from fun/fun
fun/web/about/about.md

5.4 KiB
Raw Blame History

layout title subtitle description metasub noToc noDate tags _description noComments permalink
page About More information about having fun... :) About news true false
fun
programming
language
about
The programming language that just makes fun! true /about/

What is Fun?

Fun is an experiment, just for fun, but Fun works!

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{:class="ext"}, C{:class="ext"}, Lua{:class="ext"}, PHP, Python{:class="ext"}, and a little Rust (Most influences came from linked languages).

Fun is and will ever be 100% free under the terms of the Apache-2.0 License{:class="ext"}.

Idea

  • Simplicity
  • Consistency
  • Simple to extend
  • Hackable
  • Joy in coding
  • Fun!

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{:class="git"} 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

Core

  • functions/classes/objects
  • if/else if/else
  • try/catch/finally

and much more...

Look at the examples here: https://git.xw3.org/fun/fun/src/branch/main/examples{:class="ext"}

Lib

See https://git.xw3.org/fun/fun/src/branch/main/lib for what the standard library provides.

Extensions (only Linux actually)

  • CGI{:class="ext"} support builtin using kcgi{:class="ext"} (optional)
  • cURL{:class="ext"} support builtin using libcurl{:class="ext"} (optional)
  • INI{:class="ext"} support builtin using iniparser{:class="ext"} (optional)
  • JSON{:class="ext"} support builtin using json-c{:class="ext"} (optional)
  • PCRE2{:class="ext"} support builtin for Perl-Compatible Regular Expressions (optional)
  • PCSC{:class="ext"} smart card support builtin using PCSC lite{:class="ext"} (optional)
  • SQLite{:class="ext"} support builtin (optional)
  • XML{:class="ext"} support builtin using libxml2{:class="ext"} (optional)

= Done / = Planned or in progress.

Note: Not all of the above features will be implemented. Those who are marked "Done" will probably remain in Fun, but I don't know actually... ;)

There are some libs written in Fun available in the ./lib/{:class="ext"} diretory. In the future most Fun enhancements should be written in Fun itself.

Code