What is Scol ?

Scol is a free, fonctionnal, high level, interpreted, polymorphic and asynchronous language. Its typing is mainly static and done by inference of type.

Scol is under development, it should be multiplatform ultimately. Like Java or Python, Scol runs in a virtual machine (VM) and each Scol application runs in a child virtual machine. A VM can communicate with another VM. A full VM takes 15 à 20 MB in memory.

Scol has two 3d engine. The legacy engine, very old, is not used to the new applications. The second, newer, is totally based on Ogre3d. It is much more powerful and has a much better rendering.
Today, Scol is used rather in the 3d real time, interactive and multi-user application. Applications can be off- or on-line.

However, multimedia, graphics, database, ... libraries are in the standard release : other applications are possibles !

Examples :

  • virtual 3d worlds
  • showcases (companies, products, ...)
  • galleries for artists
  • universe edutainment
  • simulations
  • e-trainings
  • visioconference
  • serious games
  • editors (for others applications / projects)
  • few ecommerce applications
  • and more

More specifically

  • Free : no royalties are required to install, use, study or contribute.
    Scol is under Scol license for the historical part and under GNU / LGPL 2 for the newer part.
  • Fonctional : Scol is influenced by OCaml too. All is function and all instructions must return a single value (never "void" or more). Variables and other objects are internally considered as functions.
    However, the side effects are importants. Recursive functions and objects are commonly used.
  • High level : OO and GC
  • Interpreted / script : Scol launches a new virtual machine with a minimal environment (with all APIs availables). Next, it reads and loads each package in the memory, checks the typing and product a byte-code. Finally, this last is executed.
  • Asynchronous : Scol uses mostly the asynchronous method in the most of cases : networks, graphics, ...
  • Polymorphic : Certain functions do not impose any type conditions on certain arguments, or certain parts of certain arguments.
  • Typing : in Scol, types are simply there to help the developer: the types are only used when compiling. Thereafter, when you run your program, they are no longer used since the program has already been proved to be correctly typed. The typing is done by inference of type : this means that the compiler calculates the type of your functions itself; you will not usually have to specify it.
  • Scol is written in C and C++ with few parts in asm.