Meta Documentation

Getting Started

Please note that the current version of Meta is a very early release. Many planned features are not implemented yet, and many implemented features do not work as planned yet. There is a lot there, but Meta's glass is currently half full and half empty. It seems to be human nature to focus on the empty half, but that will leave you empty. We strongly advise you to focus on the full half. A journey of a thousand miles starts with taking the first step. Be aware that Meta is a different and unique language that you need to learn and practise to understand and become comfortable with. Study the published example programs to have the best chance of success.

It is currently too early to call known unimplemented features bugs, so it is not useful yet to report them. We will use your submissions to our build service to help decide which features to improve in what order. This way, issues are reported on our build service automatically, without any extra work needed from you. However, if one of the provided example programs doesn't work for you, please report it in the community forums. If you feel a pressing need for a particular improvement, you can also discuss it there or contact us for contract work.

Your program text is sent to our free Meta build service over an encrypted connection, where it is compiled to an executable program. The Meta compiler is a combination of toolchains that is complex to install and maintain. This way, you don't have to do that on your systems.

The project operates on the principle that everyone who uses it, contributes something to it. We are not in the business of selling your information, so we will keep it confidential and not provide it to third parties, but we may retain and analyse your submissions to improve Meta. For security, please don't include sensitive information in your programs. If you need to handle sensitive information, such as passwords, read it in from separate data files.

Show Me the Code!

Programmers like to start with a new language by trying the traditional Hello World example. It's a small program that shows that the language works and can interface with the host system to write a text on the screen:

Write/line "Hello, world!"

It is easy to get started with Meta, like old-timers were used to in user-friendly languages such as BASIC. There is no boilerplate code required such as in many other languages.

See the examples collection for more examples and a downloadable source file of Hello World.

Reference Documentation

Writing documentation for Meta is a large, ongoing task. In the meantime, it is useful to read the documentation for the REBOL programming language. Meta is a descendant of REBOL, but there are many subtle differences to optimise the language. Keeping that in mind, here are the most applicable sections of the REBOL documentation:

Meta helps with trying out and converting code from some other languages. It detects some words and paths from other REBOL-like languages: REBOL 3, REBOL 2, Red, Red/System and Boron, and some words from the Logo, Lisp and Scheme language families. An error message will be produced, but when there is an alternative in Meta, this will be suggested.

Refer to the published examples and other sample programs for Meta-specific information. We will add to these collections and write more documentation over time.