IMVU revient sur la supplantation partielle du langage PHP par Haskell
Une année après, léquipe semble satisfaite de ce choix
Depuis 2013, IMVU le célèbre chat/jeu 3D qui vous plonge dans un monde virtuel a entamé un processus pour supplanter partiellement le langage de programmation utilisé pour coder le backend de son application (le langage PHP), par un autre plus adapté en terme de performance et de passage à léchelle, vu le succès dIMVU. Cest ainsi que les développeurs ont étudié longuement la question pour conclure à lutilisation du langage fonctionnel Haskell.
Une année après, léquipe de développement revient sur ce passage du langage PHP vers le Haskell en livrant des détails basés sur cette expérience et sur la base de certains critères comme : le passage à léchelle, la fiabilité, lapprentissage, les tests, le déploiement et certains enseignements conclus suite à tout cela.
Passage à léchelle :
La première expérience au sein de léquipe dIMVU fut le remplacement dun service non critique brassant une quantité importante de données, par une implémentation en Haskell. Le résultat fut alors assez éloquent, en effet sans aucune optimisation du service, limplémentation Haskell a été en mesure de traiter 20 plus de requêtes, tout en tournant sur des serveurs moins performants (serveurs de secours en voie dêtre retirés) que ceux de limplémentation PHP.
Fiabilité :
Par la suite et dans la continuité de la première expérience, léquipe dIMVU a décidé de faire tourner limplémentation Haskell sans aucune intervention, jusquau plantage du service, résultat des courses : aucune intervention pendant plusieurs mois.
Apprentissage :
Lexpérience suivante fut le développement dun nouveau projet avec deux équipes, une pour la partie frontend en PHP et la seconde pour la partie backend en Haskell. Ainsi au cours des premiers temps ce fut laborieux pour cette dernière équipe de développer une implémentation équivalente à tant dautres réalisées par le passé dans un langage autre que le PHP. Toutefois, après avoir jeté les bases, le développement était devenu plus facile et lunique facteur limitant la livraison du projet fut la partie frontend.
Aujourdhui, pour les développeurs dIMVU, être productif avec le langage Haskell ne diffère pas vraiment dêtre productif en PHP, enfin les développeurs habitués aux concepts de la programmation fonctionnelle ont un certain avantage ce qui leur permet une prise en main rapide qui dure quelques jours seulement.
Tests :
Une des conséquences de lutilisation dun langage fonctionnel comme Haskell est la suppression des effets de bord, qui nuisent tant aux applications développés, de ce fait au sein de léditeur dIMVU les tests unitaires et le Test Driven Development (TDD) ont été facilités avec Haskell, dailleurs les développeurs ont conclu à ce qui suit : « Haskell est meilleur avec le TDD, mais aussi le TDD est meilleur avec Haskell. Cela ne prend que quelques tests pour atteindre le même degré de fiabilité avec Haskell. La vérification statique prend soin de vérifier lexistence derreur, ce qui doit être implémenté manuellement (ou oublié) en PHP. Loutil QuickCheck est dune grande aide pour les développeurs ».
Au final, le recours à Haskell a permis aux développeurs de supprimer des classes dédiées aux tests et décrire moins de code, de plus ce langage se veut plus rigoureux, ce qui ne laisse pas de place aux échecs intermittents des tests.
Déploiement :
En terme de déploiement, les développeurs nont pas rencontré de difficultés, en outre il a été nécessaire dutiliser un client Memchached pour le code Haskell, toutefois au lieu dutiliser un client écrit en C, ils ont développé leur propre client en Haskell, avec quelques effets secondaires insoupçonnés. Quant à la refactorisation, léquipe dIMVU estime que cette tâche est devenue un jeu denfant.
Quelques enseignements conclus :
Lun des plus gros soucis des développeurs dIMVU est le manque de ressources, de documentations vu que ce langage est rarement utilisé dans le monde professionnel, de ce fait certains bugs sont plus difficiles à résoudre, voilà donc lun des inconvénients majeurs.
Lautre inquiétude était le recrutement dun développeur en Haskell, néanmoins cela se révéla un faux débat, car lutilisation de ce langage a agi à double sens, les développeurs en Haskell ne sont pas nombreux, mais ces derniers souhaitent souvent développer avec (Pour rappel IMVU siège à Mountain View en Californie).
Mise à part cela, léquipe dIMVU semble être satisfaite de ce choix, qui offre de meilleures performances, améliore la productivité et facilite la refactorisation, ce qui permet de mesurer en toute objectivité le changement apporté.
Source : Blog dIMVU
Et vous ?
:fleche: Quen pensez-vous ?
:fleche: Est-ce que vous envisagez de remplacer certains codes par du code écrit en Haskell ? Pourquoi ?
Une année après, léquipe semble satisfaite de ce choix
Depuis 2013, IMVU le célèbre chat/jeu 3D qui vous plonge dans un monde virtuel a entamé un processus pour supplanter partiellement le langage de programmation utilisé pour coder le backend de son application (le langage PHP), par un autre plus adapté en terme de performance et de passage à léchelle, vu le succès dIMVU. Cest ainsi que les développeurs ont étudié longuement la question pour conclure à lutilisation du langage fonctionnel Haskell.
Une année après, léquipe de développement revient sur ce passage du langage PHP vers le Haskell en livrant des détails basés sur cette expérience et sur la base de certains critères comme : le passage à léchelle, la fiabilité, lapprentissage, les tests, le déploiement et certains enseignements conclus suite à tout cela.
Passage à léchelle :
La première expérience au sein de léquipe dIMVU fut le remplacement dun service non critique brassant une quantité importante de données, par une implémentation en Haskell. Le résultat fut alors assez éloquent, en effet sans aucune optimisation du service, limplémentation Haskell a été en mesure de traiter 20 plus de requêtes, tout en tournant sur des serveurs moins performants (serveurs de secours en voie dêtre retirés) que ceux de limplémentation PHP.
Fiabilité :
Par la suite et dans la continuité de la première expérience, léquipe dIMVU a décidé de faire tourner limplémentation Haskell sans aucune intervention, jusquau plantage du service, résultat des courses : aucune intervention pendant plusieurs mois.
Apprentissage :
Lexpérience suivante fut le développement dun nouveau projet avec deux équipes, une pour la partie frontend en PHP et la seconde pour la partie backend en Haskell. Ainsi au cours des premiers temps ce fut laborieux pour cette dernière équipe de développer une implémentation équivalente à tant dautres réalisées par le passé dans un langage autre que le PHP. Toutefois, après avoir jeté les bases, le développement était devenu plus facile et lunique facteur limitant la livraison du projet fut la partie frontend.
Aujourdhui, pour les développeurs dIMVU, être productif avec le langage Haskell ne diffère pas vraiment dêtre productif en PHP, enfin les développeurs habitués aux concepts de la programmation fonctionnelle ont un certain avantage ce qui leur permet une prise en main rapide qui dure quelques jours seulement.
Tests :
Une des conséquences de lutilisation dun langage fonctionnel comme Haskell est la suppression des effets de bord, qui nuisent tant aux applications développés, de ce fait au sein de léditeur dIMVU les tests unitaires et le Test Driven Development (TDD) ont été facilités avec Haskell, dailleurs les développeurs ont conclu à ce qui suit : « Haskell est meilleur avec le TDD, mais aussi le TDD est meilleur avec Haskell. Cela ne prend que quelques tests pour atteindre le même degré de fiabilité avec Haskell. La vérification statique prend soin de vérifier lexistence derreur, ce qui doit être implémenté manuellement (ou oublié) en PHP. Loutil QuickCheck est dune grande aide pour les développeurs ».
Au final, le recours à Haskell a permis aux développeurs de supprimer des classes dédiées aux tests et décrire moins de code, de plus ce langage se veut plus rigoureux, ce qui ne laisse pas de place aux échecs intermittents des tests.
Déploiement :
En terme de déploiement, les développeurs nont pas rencontré de difficultés, en outre il a été nécessaire dutiliser un client Memchached pour le code Haskell, toutefois au lieu dutiliser un client écrit en C, ils ont développé leur propre client en Haskell, avec quelques effets secondaires insoupçonnés. Quant à la refactorisation, léquipe dIMVU estime que cette tâche est devenue un jeu denfant.
Quelques enseignements conclus :
Lun des plus gros soucis des développeurs dIMVU est le manque de ressources, de documentations vu que ce langage est rarement utilisé dans le monde professionnel, de ce fait certains bugs sont plus difficiles à résoudre, voilà donc lun des inconvénients majeurs.
Lautre inquiétude était le recrutement dun développeur en Haskell, néanmoins cela se révéla un faux débat, car lutilisation de ce langage a agi à double sens, les développeurs en Haskell ne sont pas nombreux, mais ces derniers souhaitent souvent développer avec (Pour rappel IMVU siège à Mountain View en Californie).
Mise à part cela, léquipe dIMVU semble être satisfaite de ce choix, qui offre de meilleures performances, améliore la productivité et facilite la refactorisation, ce qui permet de mesurer en toute objectivité le changement apporté.
Source : Blog dIMVU
Et vous ?
:fleche: Quen pensez-vous ?
:fleche: Est-ce que vous envisagez de remplacer certains codes par du code écrit en Haskell ? Pourquoi ?
Aucun commentaire:
Enregistrer un commentaire