Scol est un langage de script, fonctionnel, typé, asynchrone et de haut niveau initié par Sylvain Huet en 1996, libéré en mars 2003 (licence de type BSD modifiée) et désormais maintenu par la communauté Scol représentée par le Scolring.
Comparatif Scol / C :
Scol n'a pas la prétention d'avoir la même célébrité que le C, cependant au vu de cette popularité, il est plus facilement comparable.
Scol est plus facile à apprendre / à maîtriser que le C : il est de haut niveau et le plus gros du travail est réalisé par la VM, là où le programmeur C doit tout écrire.
Mais Scol permet au novice de se motiver plus facilement. En effet, il visualise très rapidement le résultat de son code : d'une part la compilation est automatique, il n'a pas à connaître au préalable les innombrables options d'un compilateur tel que "gcc" et la compilation stoppe à la première erreur rencontrée (un peu similaire en cela à Python par exemple), le novice n'est pas noyé sous un flot d'erreurs et de warnings dont même les experts du C ont parfois du mal à suivre. D'autre part le débutant n'a pas à fournir à chaque nouvel essai des efforts sur la compilation, il voit le résultat immédiatement.
Scol, en tant que langage fonctionnel et de haut niveau, donne un code lisible facilement. Le développeur Scol se concentre sur l'algorithme et l'essence de son programme. De plus, il n'est pas occupé à gérer les éventuelles erreurs retournées de bas niveau ou les allocations mémoire. C'est particulièrement net dans l'aspect fonctionnel du langage : Scol incite à coder une fonction pour une tâche sans se soucier de tout ce qui est sous-jacent.
Cette facilité se retrouve en terme de productivité : essayer un code est très simple et très rapide, sans outil extérieur (pas d'appel à un compilateur externe et lancer l'exécutable résultant).On se concentre très vite sur l'amélioration et la correction du code et moins sur le "comment je vais coder telle tâche".
De plus, le code Scol en lui-même est multi-plateforme.
Inversement, le haut niveau empêche un programme Scol d'atteindre un réglage fin et/ou une optimisation fine avec le système, le développeur doit s'en remettre aux capacités de la VM. De même, le développeur doit avoir confiance en la fiabilité de la VM puisque tout le travail sous-jacent est effectué par cette dernière ; cette confiance étant à double tranchant, le programmeur peut omettre de tester suffisamment les retours de fonction ou les divers input, pouvant provoquer par là une faille dans la sécurité de l'application (au sens de fiabilité). Mais ceci n'est pas exclusif à Scol !
Le développeur ne peut pas ajouter facilement une interface qui lui manquerait avec le système. A minima, il ne peut utiliser que l'environnement dit minimal c'est-à-dire issu directement de la VM. Heureusement, Scol est déjà bien rempli !
Enfin, la phase de compilation avant toute exécution ralentit le lancement d'une application, comme c'est le cas de tous les langages de script et nécessite donc l'installation et l'usage d'un "plugin" (ou "distribution").
Comparatif Scol / Python :
Voici deux langages de script, Python étant un langage impératif, à l'instar du C. Python est extraordinairement modulaire, là où Scol est essentiellement compact : pour exécuter un code Python, la VMP ne charge que les modules définis alors que la VM Scol se chargera en entier quel que soit le script lancé.
Cela donne un langage Python très flexible mais en contre partie il est difficile de tous les connaître et de choisir les plus fiables / optimisés selon la tâche à accomplir. En Scol, il y a rarement deux fonctions qui font la même chose ! On se mémorise le langage plus rapidement.
Comme Python, lorsque le programme bugue, Scol affiche la pile des fonctions déjà compilées (crash à la compilation) ou déjà exécutées (crash à l'exécution) avec un message spécifique indiquant la ligne et le fichier incriminés.
Si Python autorise l'inclusion d'items de programmation fonctionnels, Scol a lui aussi quelques passerelles impératives, comme on l'a vu plus haut.
Tous les deux sont des langages fortement multi-plateforme, polyvalent, gratuit et open source.
Contrairement à Python où elle est fondamentale, Scol n'est pas sensible à l'indentation du code : celle-ci n'a aucune importance. Scol utilise tout un ensemble de mot-clés, à mi-chemin entre le C et le Pascal par exemple.
Scol n'intègre pas non plus des fonctions intégrées et automatiser de gestion de documentation directe du code source.
Python est généralement polymorphique que Scol, emploie un typage fortement dynamique et gère de façon parfaitement générique les exceptions.
Enfin, Python est considérablement plus riche et variés dans ses utilisations mais Scol permet d'arriver simplement et rapidement à concevoir des applications spécifiques !