Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Mint : un langage de programmation pour créer des applications monopages
Né de la frustration rencontrée avec JavaScript, Elm et l'écosystème NPM, selon ses développeurs

Le , par Bill Fassinou

57PARTAGES

15  0 
Les applications Web monopages (single-page applications) accueillent un autre langage de programmation, le langage Mint. Mint est un langage spécialement conçu pour créer ce genre d’application. Sa documentation indique qu’il s’agit de la combinaison d’un compilateur et d’un framework pour fournir une grande expérience aux développeurs tout en permettant d'écrire un code sûr, lisible et maintenable. Le langage Mint serait né de la frustration rencontrée avec le langage JavaScript, l’écosystème NPM, mais aussi avec le langage Elm et ses pratiques de développement non ouvertes.

Comme l’a fait Microsoft avec TypeScript, les développeurs de Mint ont aussi identifié le typage très faible de JavaScript comme étant l’une des principales lacunes du langage. Selon ces derniers, cela rend l’écriture de code source dans JavaScript sujette à de multiples erreurs, ce qui conduit à une mauvaise expérience de développement. De même, une autre de ses insuffisances est qu’il ne dispose pas d’outils nécessaires pour la création d’applications Web prêtes à l’emploi. Il faut donc ajouter des frameworks, des compilateurs et des outils qui augmentent la complexité.

Dans le cas du langage Elm, les créateurs de Mint estiment qu’il a une bonne cote auprès des développeurs, mais qu’il s'agit d'un langage purement fonctionnel. Ainsi donc, le code n'est pas très clair et il est plus difficile à apprendre. « De même, il n'est pas possible de contribuer ou d'influencer le langage de manière significative », expliquent-ils. Ce sont les principales raisons qui les ont conduits vers la création du langage. Mint combine l'expérience des développeurs d'Elm et l'expressivité de React pour créer le langage parfait pour la création d'applications monopage.


Mint disposerait de tous les outils dont vous pourrez avoir besoin pour créer des applications sans erreur, facilement lisibles et maintenables en un temps record. Par exemple, dans Mint, le stylisme est plus simple. Vous pouvez styliser les éléments directement avec le CSS en utilisant des blocs de style. À l'intérieur d'un bloc de style, vous pouvez emboîter autant de sous-sélecteurs et de requêtes de médias que vous le souhaitez. Vous pouvez même utiliser des expressions "if" et "case" à l'intérieur de n'importe quel bloc pour appliquer des styles de manière conditionnelle.

Les données sont gérées par un magasin de données. Ces magasins sont accessibles de partout dans le monde et peuvent être connectés à des composants. Lorsque les données d'un magasin changent, les composants connectés sont restitués. Avec Mint, le routage est un élément linguistique plutôt qu'une bibliothèque. Les routes peuvent être définies dans un bloc de routes, avec prise en charge des paramètres de chemin d'accès typés. Le runtime gère les clics sur les balises d'ancrage et navigue de manière intelligente pour que vous n'ayez pas à le faire.

Par ailleurs, vous pouvez facilement insérer n'importe quel code JavaScript en utilisant des backticks (`...`). Mint permet une interopérabilité avec JavaScript. L'interpolation du code source Mint dans le JavaScript intégré peut être effectuée avec la syntaxe d'interpolation : #{...}. Selon les créateurs de Mint, le développement du langage a déjà duré un an. Voici les caractéristiques de Mint les plus mises en avant :

  • un excellent système de typage ;
  • de beaux messages d'erreur ;
  • un formateur de code ;
  • des outils de construction ;
  • des magasins de stockage de données ;
  • un système de style intégré ;
  • un système de routage intégré ;
  • une grande interopérabilité avec JavaScript ;
  • des structures de données immuables ;
  • etc.

Source : Mint

Et vous ?

Que pensez-vous de Mint ?
L'avez-vous déjà testé ? Quelles sont les insuffisances constatées ?
Mint pourra-t-il s'imposer face à JavaScript ?

Voir aussi

Le langage JavaScript est-il responsable de la lenteur des sites Web de nos jours ? Oui, selon un expert

Samsung propose son framework open source IoT.js pour « fournir une plateforme interopérable de service dans le monde de l'IdO »

Le langage Scala s'ouvre au Web. Scala.js permet de compiler du code Scala en JavaScript

Mozilla, Fastly, Intel et Red Hat lancent l'Alliance Bytecode, une initiative construite autour de WebAssembly qui propose d'apporter plus de sécurité, d'ubiquité et d'interopérabilité sur le Web

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de grunk
Modérateur https://www.developpez.com
Le 06/02/2020 à 14:26
Perso je déteste ces framework qui mélange HTML et code js/ts/mint/placer ici le prochain dans leur composant. J'aime bien quand tout est séparé un peu comme on peut le faire en angular avec un fichier de code , un de vue et un de style.

De même, une autre de ses insuffisances est qu’il ne dispose pas d’outils nécessaires pour la création d’applications Web prêtes à l’emploi
Ça c'est complètement vrai. C'est juste pénible de pas pouvoir simple "nouveau projet" et avoir un truc prêt à l'emploi avec les lib reconnue comme le standard.

Aujourd'hui il faut faire le choix d'un task runner , d'un bundler , de css, scss, less avec à chaque fois le risque d'utiliser une lib qui va disparaître dans 6 mois ... Bref il manque un standard (avec toujours la possiblité de faire ce que l'on veux si nécessaire) facile à mettre en oeuvre.
Quand je lance un projet , j'ai pas toujours envie/besoin de devoir maîtriser toute la stack ! Ce qui m'intéresse c'est le résultat final
10  0 
Avatar de Markand
Membre éclairé https://www.developpez.com
Le 07/02/2020 à 13:29
Intéressant mais le nom du projet entre en conflit avec la distribution du même nom.
2  0 
Avatar de youtpout978
Membre expert https://www.developpez.com
Le 07/02/2020 à 10:48
C'est dommage que ça ne pond pas du Wasm
1  0 
Avatar de Frédéric Latour
Membre actif https://www.developpez.com
Le 15/02/2020 à 13:47
Non, mais au moins, le fait qu'il soit coder en Crystal inspire plus confiance qu'un autre transpileur basé sur Node.
Euh??? Je ne comprends pas cette remarque.
Node n'est pas un langage mais un environnement d'exécution de javascscript hors du navigateur. Il est très utilisé pour écrire des applications côté serveur (api, etc ... les frameworks sont légions) mais également très utilisé comme une plate-forme d'exécution/installation d'outils de développement.

Tous les languages qui permettent de développer des applications web "transpilent" (ou "compilent" - c'est la même chose si on considère javascript comme un byte code intermédiaire).
Que ce soient de nouveaux langages comme Mint, Elm, PureScript, etc... ou des langages existants comme F#, Kotlin, Python. Bref presque tous les langages ont maintenant un framework (outils + libs) permettant de transpiler/compiler en javascript pour le navigateur.

Pour les langages existants, cela n'a pas vraiment de sens de s'intéresser à Node comme possible plate forme de destination de la compilation vers javascript car ces langages offrent en général un écosystème complet et que l'objectif de la démarche est justement de pouvoir rester dans l'écosystème pour la partie front et back.
Pour les nouveaux langages spécifiquement développés pour le web, cela peut "éventuellement" avoir du sens de pouvoir également adresser node comme plate-forme d'exécution du langage côté serveur à conditions que le langage soit suffisamment générique. L'intérêt de node dans ce cas est d'offrir un environnement d'exécution portable. Cela dit, aussi bien Elm que Mint ne s'intéressent qu'au navigateur.

Je ne vois pas trop pourquoi un compilateur écrit en Crystal inspirerait plus confiant qu'un compilateur écrit en Haskell, C ou typescript.

Concernant Mint, je trouve le langage assez intéressant:
* une intégration pragmatique des bonnes pratiques de la prog fonctionnelles.
* le typage
* un langage framework offrant des constructions et outils permettant de simplifier un développement web qui étouffe parfois sous l'empilement de couches de frameworks, librairies et outils.

Ceci étant dit, les places sont très chères et je doute fort du succès de l'initiative surtout maintenant que Typescript s'impose un peu partout. Mais qui sait, il y a parfois des surprises ...
1  0 
Avatar de defZero
Membre extrêmement actif https://www.developpez.com
Le 06/02/2020 à 17:19
Que pensez-vous de Mint ?

Tout ce qui peut éloigner de JS est bon à prendre SI cela fonctionne comme promit.

L'avez-vous déjà testé ? Quelles sont les insuffisances constatées ?

Non, mais au moins, le fait qu'il soit coder en Crystal inspire plus confiance qu'un autre transpileur basé sur Node.

Mint pourra-t-il s'imposer face à JavaScript ?

Tant que WASM ne se sera pas généralisé, rien ne remplacera le JS.
A la fin de la journée, peut importe les outils, en prod c'est juste du HTML, CSS et JS qui tourne (avec du fallback pas toujours possible ou jolie ).
1  1 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 06/02/2020 à 19:37
Mint ressemble beaucoup à React
0  0