Programmation fonctionnelle

Archi & techno

Java 8 est réactif !

Parmi les nombreuses évolutions que nous propose Java8, l’une d’entre-elles attire particulièrement notre attention. Il s’agit de la présence de la classe CompletableFuture<>. Mine de rien, cette classe va bouleverser les applications Java. De nouvelles architectures seront proposées, de nouveaux frameworks vont apparaître pour remplacer les anciens, etc. C’est une classe majeure de Java 8.

Lire la suite
Archi & techno

La genèse du modèle réactif

Dans un précédent article, nous avons introduit un nouveau modèle de développement qui émerge de plus en plus : le modèle réactif. C’est un modèle fondé sur la réaction à des événements déclenchés par les périphériques hardware (disque ou réseau essentiellement). Pourquoi seulement maintenant ?

Lire la suite
Archi & techno

Jusqu’où peut aller un simple ordinateur de bureau avec une application web java réactive ?

La tendance actuelle : de plus en plus d’internautes connectés partout, tout le temps et souvent depuis plusieurs machines en même temps (ordinateur de bureau, tablette, mobile). Les promesses de la programmation réactive : permettre de gérer sur une même machine beaucoup plus de connexions en parallèle et de traiter plus de requêtes par seconde, ceci avec peu de threads donc beaucoup moins de mémoire et de CPU qu’avec les modes de programmation classiques. Nous avons réalisé

Lire la suite
Archi & techno

La révolution réactive

Nous sommes au matin, à l’aube, devant les fortifications. Les hommes sont prêts. Depuis quelque temps déjà, les choses évoluent par petite touche, d’ici de là. Des fissures remettent en cause les fondations. Ailleurs, certains ont déjà franchi le pas. D’autres hésitent. La question n’est plus de savoir si l’on y participe, si l’on résiste, mais à partir de quand on s’y met. Toutes ces évolutions convergent vers le même but : une nouvelle révolution des systèmes d’information.

Lire la suite
Archi & techno

Gérer les erreurs par le système de types

Un grand nombre de développeurs a pour habitude d’utiliser uniquement les exceptions pour     gérer les erreurs dans leurs programmes. Ce mode de fonctionnement ne correspond pas au paradigme fonctionnel. Nous allons dans cet article observer comment gérer les erreurs en adéquation au paradigme fonctionnel à travers des cas d’utilisation courant en utilisant le système de types. Nos exemples seront écrits en Scala.

Lire la suite
Archi & techno

Une base de données purement fonctionnelle

Le modèle relationnel est né à une époque où l'espace était rare, et fut donc conçu pour minimiser le niveau de redondance des données: il était plus économique de stocker une indirection vers une chaine de caractères que de stocker cette chaine deux fois. Aujourd'hui, cette contrainte d'espace ne tient plus. On achète un Teraoctet pour 100 dollars, la RAM est abondante, et les disques flash aux performances élevées vont bientôt rejoindre le prix des disques durs rotatifs. Deux limitations fondamentales du stockage ont donc…

Lire la suite
Archi & techno

La programmation haute performance n’est-elle réservée qu’à une élite de développeurs C++ ?

Récemment un papier d'étude de Google UK a été publié sur la performance des langages de programmation JAVA, Scala, C++ et Go (Loop Recognition in C++/Java/Go/Scala). Dans ce papier, les performances des langages sont comparées sur la base d'un algorithme de recherche de boucles dans un graphe (Algorithme de Tarjan). Principalement basé sur la performance d'exécution d'instructions séquentielles (boucles), la gestion de la mémoire, le temps de compilation et le nombre de lignes de code écrites cette étude montre que pour arriver à des hautes…

Lire la suite