Introduction
À cette étape de sa lecture, le lecteur ne doit plus douter de la
richesse d'Objective CAML. Ce langage repose sur un noyau fonctionnel et
impératif et il intègre les deux grands modèles d'organisation
d'applications que sont les modules et les objets. Bien que
présentés comme des bibliothèques, les processus légers sont partie
prenante du langage. Les primitives système, en majeure partie
portables, complètent le langage avec toutes les possibilités offertes
par la programmation répartie. Ces différents paradigmes de
programmation se moulent dans le cadre général du typage statique avec
inférence. Pour autant, ces éléments ne tranchent pas, à eux seuls, la
question de sa pertinence pour le développement d'applications, ou
plus prosaïquement : << est-ce un bon langage ? >>.
On ne peut à son propos utiliser l'un des arguments classiques
suivants :
-
(tendance marketing) << c'est un bon langage car les clients l'achètent >> ;
- (tendance historique) << c'est un bon langage car il existe des
milliers de lignes déjà écrites avec >>;
- (tendance système) << c'est un bon langage car les systèmes Unix ou
Windows sont écrits avec >> ;
- (tendance application phare) << c'est un bon langage car telle
ou telle application a été écrite avec >> ;
- (tendance normalisation) << c'est un bon langage car il possède une
spécification ISO >>.
Nous allons passer en revue une dernière fois les divers traits du
langage mais cette fois sous l'angle de la pertinence de la réponse
qu'il peut apporter aux besoins d'une équipe de développement. Les
critères retenus pour formuler nos éléments d'évaluation
prennent en compte les qualités intrinsèques du langage, son
environnement de développement, les contributions de la communauté
et les applications significatives réalisées. Nous confrontons enfin
Objective CAML avec plusieurs langages fonctionnels proches ainsi que le
langage à objets Java pour en souligner les principales
différences.