# Scol

Standard Cryo OnLine Language ou SCOL est un langage de haut niveau, interprété, typé (typage fort et statique, inférence de types), asynchrone et essentiellement fonctionnel créé par la société Cryo-Interactive en 1995. La mémoire est gérée par un ramasse-miettes. Il est écrit en C et en C++ avec quelques portions spécifiques en assembleur.

## Fonctionnement

Le code source, sous forme de fichiers de type texte portant historiquement l'extension .pkg (package) ou sous forme de chaîne de caractères en mémoire, est lu du premier vers le dernier octet. Toutes les fonctions et variables doivent être déclarées avant d'être utilisées sous peine d'échec de la compilation. Le compilateur inclus dans le plugin génère alors un byte-code volatil avant l'exécution finale.
Chaque exécution génère une machine virtuelle liée à la première machine virtuelle créée et encore active sur le système hôte. Cette machine primaire, encore nommée scol engine, contient entre autres l'environnement minimal (toutes les APIs Scol chargées et valides) qui sera ainsi disponible pour chaque machine secondaire.
Une machine virtuelle Scol peut être liée ou peut communiquer (toujours de façon asynchrone) avec une ou plusieurs autres machines, locales ou distantes.
Un simple plugin multilangue, libre et gratuit est nécessaire pour ouvrir, voir, tester, créer toutes les applications écrites en Scol.

## Historique

Il a été créé par Sylvain Huet au sein de la filiale Cryo-Networks, d'abord sous forme d'un prototype nommé magma avant d'être publiquement diffusé durant l'année 1998. Différentes formules étaient alors commercialisées selon les usages désirés et surtout le nombre de connexions simultanées supportées. Des applications (Cryonics, Emaginer, SCS, ...) et des jeux en ligne (Fog, ...) furent commercialisées jusque fin 2002. Après la faillite de la société, Sylvain Huet a récupéré les droits complets. Il le libère pour en faire un projet libre (licence de type BSD) en mars 2003. Toutes les versions postérieures à la 4.5 (MS Windows) et 4.0 (GNU/Linux) sont sous licence ouverte. Son développement se poursuit depuis grâce à une communauté de passionnés. Le langage est multi-plateforme, le compilateur existe pour Windows, Linux et MacOS (non X) sous des versions différentes.
Des outils sont créés et/ou maintenus afin d'aider les concepteurs dans leurs projets. Notamment, la création de sites internet en 3D est très facilitée grâce au logiciel SCS (Site Constructor Set, logiciel libre écrit en Scol) qui offre une création grâce à de simples manipulations à la souris.

## Particularités

Scol est essentiellement utilisé pour concevoir des applications réseau interactive, et plus particulièrement en 3D. Depuis 2009, le moteur 3d a été réécrit et s'appuie sur Ogre3D. L'ancien moteur, dit legacy, est toujours inclus pour garder la compatibilité avec des applications plus anciennes. Toutefois, le nouveau moteur, dit SO3Engine est plus puissant et apporte de grandes nouveautés (meilleur support OpenGL, shaders, multi-passe, nombreux effets). La société I-maginer participe majoritairement à ce moteur mais d'autres développeurs contribuent à mettre à jour et à étendre le langage$^,$.
Actuellement, l'application la plus en vue est OpenSpace3D : une plateforme de développement 3D temps réel.

### Ses points forts

* ses capacités réseaux totalement intégrées et transparentes pour l'utilisateur comme pour le développeur ;
* son fort potentiel interactif.

### Ses points faibles

* sa confidentialité ;
* la version Linux est disponible en version bêta uniquement et la version MacOS X est non à jour.