Google dévoile Logica, un nouveau langage de programmation logique open source
Google a annoncé lundi un nouveau langage de programmation logique open source, baptisé Logica. C’est le successeur du langage logique existant de Google, Yedalog, et est un langage de programmation de type Datalog. Le nouveau langage de programmation compile SQL et peut fonctionner sur Google BigQuery. Il est réputé plus concis et prend en charge la fonction d'abstraction réutilisable qui fait défaut à SQL, d’après un billet de blog publié lundi par l’équipe open source de Google. Google est à l'origine de nombreux autres langages de programmation tels que Go et Dart.
Datalog est un langage de requête logique qui se situe quelque part entre Prolog et l'algèbre relationnelle formelle qui sous-tend SQL. Il peut être considéré soit comme un langage d'interrogation exceptionnellement puissant, soit comme un langage de programmation logique soigneusement limité. Datalog a été créé pour donner aux théoriciens des bases de données un moyen d'utiliser la programmation logique, notamment par le biais de requêtes récursives.
Yedalog a étendu Datalog pour être plus pratique, en ajoutant le support de concepts tels que les enregistrements imbriqués. Il permet aux programmeurs de combiner les pipelines de données parallèles et le calcul dans un seul langage. Logica est le successeur de Yedalog, qui était également l'un des langages de programmation proposés par Google.
Le nouveau langage compile le programme logique en une expression SQL, afin qu'il puisse être exécuté sur BigQuery, le moteur SQL avancé de Google. Logica inclut également un support expérimental pour PostgreSQL et SQLite. Selon l'équipe de Google, cette solution est plus concise et « prend en charge les mécanismes d'abstraction propres et réutilisables qui font défaut à SQL. Il prend en charge les modules et les importations, il peut être utilisé à partir d'un carnet de notes Python interactif et il rend même les tests de vos requêtes naturels et faciles ».
Selon l’annonce de Google publiée lundi, le nouveau langage de programmation résout les problèmes auxquels SQL est confronté en utilisant une syntaxe de nature mathématique en ce qui concerne la logique plutôt qu'un simple langage anglais. Le langage a été conçu par des mathématiciens talentueux, selon Google, principalement pour permettre aux développeurs d'exprimer plus facilement des déclarations complexes, car la nature mathématique convient mieux au cas d'utilisation plutôt que l'anglais simple. L'expression de déclarations complexes est plus facile et convient mieux à cet objectif que le langage naturel.
« Malgré son adoption généralisée, SQL n'est pas sans faille. La construction d'instructions à partir de longues chaînes de mots anglais (qui prennent souvent la majuscule pour conserver l'esprit COBOL des années 70 !) peut être très verbeuse – une seule requête de plusieurs centaines de lignes est courante. Le principal défaut de SQL, cependant, réside dans son support très limité de l'abstraction.
« Une bonne programmation consiste à créer de petits morceaux de logique compréhensibles et réutilisables qui peuvent être testés, nommés et organisés en paquets qui peuvent ensuite être utilisés pour construire des morceaux de logique plus utiles. SQL résiste à ce flux de travail. Bien que vous puissiez encapsuler certains calculs répétés dans des vues et des fonctions, la syntaxe et la prise en charge de celles-ci peuvent varier selon les implémentations, les notions de paquets et d'importations sont généralement inexistantes, et les constructions de plus haut niveau (par exemple, passer une fonction à une fonction) sont impossibles », a écrit l’équipe open source de Google.
Le grand avantage de Logica sur SQL, selon Google, est son support de l'abstraction. Si SQL prend en charge les vues et les fonctions permettant de sauvegarder et de réutiliser des sous-ensembles de logique, elles sont limitées et varient selon les implémentations SQL. L'équipe de Google a déclaré a ce sujet:
« Cette résistance inhérente à la décomposition de la logique en petits morceaux est à l'origine des longues requêtes artificielles, des morceaux de code copiés-collés et, finalement, des bases de code SQL non maintenues et non structurées (notez l'ironie). Pour aggraver les choses, le code SQL est rarement testé, car "tester les requêtes SQL" semble plutôt ésotérique pour la plupart des ingénieurs, au mieux. C'est pourquoi un certain nombre de langages de requête et de bibliothèques alternatifs ont été développés. Parmi ceux-ci, les systèmes basés sur la programmation logique sont peut-être ceux qui s'approchent le plus des limites de SQL ».
La programmation logique est un paradigme de programmation déclarative dans lequel le programme est écrit comme un ensemble d'instructions logiques. La programmation logique a été développée dans le milieu universitaire à partir de la fin des années 60. Prolog et Datalog sont les exemples les plus marquants de langages de programmation logique, et Logica étend la syntaxe de la programmation logique classique, plus particulièrement avec l'agrégation, d'où le nom, qui signifie :
Logica = Logique + Agrégation
Alors que SQL fonctionne avec des relations qui équivalent à des ensembles de lignes, l'équivalent en programmation logique est un prédicat. Celui-ci définit toujours un ensemble de lignes, mais il s'agit d'une condition logique qui décrit les lignes d'une relation.
Logica est un langage de programmation déclaratif qui convient mieux à la manipulation des données, d’après l’annonce. Il a notamment pour objectif d'apporter de la lisibilité et de bonnes pratiques d'ingénierie aux requêtes de bases de données, les rendant plus faciles à lire, dit l’équipe Google. Logica permet également de définir et de réutiliser des sous-requêtes et des fonctions. Le nouveau langage de programmation open source est sous une licence Apache 2.0.
Logica s'adresse aux ingénieurs, aux scientifiques des données et à d'autres spécialistes qui souhaitent utiliser la syntaxe de la programmation logique pour écrire des requêtes et des pipelines à exécuter sur BigQuery. Google encourage tout développeur qui utilise déjà la programmation logique et qui a besoin d'une plus grande puissance de calcul ; ou qui utilise SQL, mais qui n’est pas satisfait de sa lisibilité ; ou qui veut apprendre la programmation logique et l'appliquer au traitement des Big Data, de l’essayer.
Source : developpez.com