Qu’est -ce que le J ?

J est un langage de programmation apparu en 1990. Développé par Kenneth Iverson et Roger Hui, c’est un dérivé du langage APL (Array Programming Language) lui même développé par Iverson. Son but principal est de simplifier l’APL notamment en utilisant des caractères ASCII à la place de caractères spéciaux. Pour mieux comprendre les raisons de son apparition, nous allons brièvement revenir sur le langage APL et le contexte d’utilisation de l’époque.

Initialement utilisé pour la description de traitement de l’information, l’APL est ensuite devenu un langage de programmation. Il était principalement exécuté sur des terminaux électromécaniques et utilisait des symboles proches des mathématiques. Son intérêt majeur était de décrire des opérations globales en réalisant du traitement de tableaux.

Le J s’inscrit dans la continuité de ce langage, permettant également du traitement de tableau mais adapté aux terminaux écran et donc proposant uniquement des caractères ASCII. C’est un langage de programmation fonctionnel qui utilise une notation infixée se voulant très compacte puisque chaque caractère contient une fonction différente. Une de ses particularités est que ses expressions sont évaluées de la droite vers la gauche, contrairement à la plupart des langages de programmation classiques.

Exemple:- Calculer les carrés d’une liste:
square =: *:
//Ici, "*" représente la fonction carré,":" symbolise la liste passée en paramètre. "*:" signifie donc que l'on applique la fonction carré à chaque élément de la liste. "square =:" est une assignation pour donner un nom à la fonction (ex : square 1 2 3 renverra 1 4 9).

J possède un vocabulaire original également hérité du APL. Toute sa syntaxe est liée à des éléments de grammaire. On ne parlera donc pas de fonctions mais de verbes , de noms pour faire référence aux constantes ou encore d’adverbes et de conjonctions pour les actions apportées par les verbes sur les noms.

L’avantage fondamental du J est son efficacité pour travailler sur de grandes collections de données. Il évite effectivement l’écriture de boucles en offrant la possibilité d’effectuer de nombreuses opérations sur des tableaux multidimensionnels. Contrairement aux langages dérivés du Fortran comme le C ou le Java, qui fonctionnent de manière linéaire en essayant d’être proche de la machine ; le J propose une vision plus mathématique. De ce fait, ce langage de haut niveau est également utilisé pour réaliser de l’analyse mathématique, statistique et logique de données.

Le langage J est depuis 2011 en open-source, il peut s’exécuter depuis une console ou grâce à des environnements de développement comme Qt IDE. Il peut également être utilisé pour les applications web, pour le font-end avec les interfaces JHS (J Http Server) et JFE (J Front End), ou pour la gestion des bases de données grâce à Jd (J database).

Aujourd’hui, ce langage est peu courant mais peut s’avérer très performant dans les quelques domaines d’application précis cités ci-dessus. La concision du code pour certains problèmes (ex : problèmes d’Euler) en font sa force. Sa pertinence dans la modélisation de problèmes mathématiques à notamment inspiré la création du langage NumPy en 1995.

--

--