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 !

Kotlin 1.2 est disponible : cette nouvelle version permet de partager le code entre la JVM et JavaScript
Et améliore de 25 % les temps de compilation

Le , par Michael Guilloux

193PARTAGES

9  0 
L'équipe JetBrains vient de publier une nouvelle version majeure de son langage de programmation Kotlin : la version 1.2. Rappelons-le, Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage statique qui permet de compiler pour la Machine virtuelle Java (JVM) et JavaScript. Il est également un langage de choix pour le développement Android. Sa première version officielle, Kotlin 1.0, a été publiée en février 2016 et la version 1.1 en mars dernier.

Kotlin 1.2 est donc la deuxième version majeure pour cette année, et est présenté par l'équipe JetBrains comme une grande avancée vers son objectif de permettre l’utilisation de Kotlin dans tous les composants d’une application moderne. « Avec Kotlin 1.1, nous avons fourni le support officiel de JavaScript comme cible de déploiement, permettant ainsi de compiler Kotlin en JS pour une exécution dans le navigateur », expliquent les développeurs du langage. « Avec Kotlin 1.2, nous ajoutons la possibilité de partager le code entre la JVM et JavaScript. Vous pouvez désormais écrire une seule fois la logique métier de votre application et la réutiliser dans toutes les couches de votre application — le backend, un navigateur frontend et une application mobile Android. » L'équipe JetBrains dit également travailler sur des bibliothèques favorisant la réutilisation du code, comme une bibliothèque cross-platform de sérialisation.

La principale nouveauté dans Kotlin concerne donc les projets multiplateformes, mais il y a aussi des gains de performance pour la compilation, ainsi que d’autres améliorations du langage et de la bibliothèque standard.

Projets multiplateformes

Un projet multiplateforme vous permet de construire plusieurs couches de votre application — backend, frontend et App Android — depuis la même base de code. Ce type de projet contient à la fois des modules communs, qui contiennent du code indépendant de la plateforme, et des modules plateforme, qui contiennent le code spécifique à une plateforme (JVM ou JS) et qui peuvent utiliser des bibliothèques de cette plateforme. Kotlin 1.2 vous permet donc d'appeler du code plateforme depuis un module commun.


Comme cela a été également mentionné précédemment, JetBrains travaille sur une série de bibliothèques communes pour vous permettre de déplacer plus de code vers des modules communs. Il s’agit notamment de :

  • kotlin.test, qui est inclus par défaut dans Kotlin 1.2 et vous permet d’écrire vos tests une seule fois et de les exécuter à la fois dans la JVM et en JS ;
  • kotlinx.html, qui supporte un rendu isomorphique — le même code produit du HTML en backend et en frontend ;
  • kotlinx.serialization, qui permet de sérialiser facilement vos objets Kotlin entre les différentes couches de votre application, en utilisant JSON ou ProtoBuf comme format de sérialisation.

Il est important de préciser que les projets multiplateformes sont actuellement disponibles en tant que fonctionnalité expérimentale. Cela veut dire que la fonctionnalité peut être utilisée, mais il est possible que sa conception soit modifiée dans la prochaine version de Kotlin. Dans ce cas, JetBrains assure qu’il fournira aux développeurs des outils de migration.

Performances de compilation

Kotlin 1.2 vient avec des optimisations pour les performances du compilateur. JetBrains dit avoir amélioré les temps de compilation de 25 % par rapport à Kotlin 1.1, et prévoit d’autres améliorations significatives qui seront introduites dans les mises à jour Kotlin 1.2.x.

Autres améliorations du langage et de la bibliothèque standard

JetBrains a également réalisé des améliorations ciblées du langage et de la bibliothèque standard. Il s'agit entre autres de :

  • une syntaxe plus concise pour transmettre plusieurs paramètres à une annotation (array literals) ;
  • le support de lateinit sur les propriétés top-level et les variables locales, ainsi que la vérification de l’initialisation effective d’une variable lateinit ;
  • des smart casts plus évolués et une amélioration de l’inférence de type dans certains cas ;
  • la compatibilité de la bibliothèque standard avec les restrictions de séparation de package introduites par Java 9 ;
  • un nouveau package kotlin.math dans la bibliothèque standard ;
  • de nouvelles fonctions dans la bibliothèque standard pour travailler avec les séquences et les collections, comprenant notamment une série de fonctions pour séparer une collection ou une séquence en plusieurs groupes de taille définie.

Kotlin : une adoption croissante dans la communauté des développeurs et éditeurs

Comme nous l’avons déjà mentionné, Kotlin est maintenant un langage officiel pour le développement Android, avec un support inclus dans Android Studio 3.0. Comme conséquence, JetBrains note que Kotlin est déjà utilisé dans plus de 17 % des projets sous Android Studio 3.0, y compris dans des applications des startups les plus actives et des entreprises du Fortune 500.

Du côté serveur, il faut également noter que Spring Framework 5.0 a été publié avec de nombreuses fonctionnalités de support de Kotlin, et le framework événementiel pour la JVM Vert.x supporte Kotlin depuis la publication de la version 3.4.0. Par ailleurs, Gradle est désormais fourni avec le support d’un DSL Kotlin, et le projet Gradle Kotlin DSL s’approche rapidement de la publication de sa version 1.0.

JetBrains explique que depuis la sortie de Kotlin 1.1 en mars de cette année, l’adoption du langage a connu une croissance très importante dans le monde. L'intérêt croissant pour Kotlin s'est confirmé récemment à la première conférence internationale KotlinConf qui a réuni environ 1200 participants à San Francisco les 2 et 3 novembre.

Kotlin 1.2 étant disponible, vous pouvez l'essayer en ligne à l'adresse try.kotlinlang.org ou directement dans vos IDE :
  • sous Maven, Gradle et npm : utilisez 1.2.0 comme numéro de version pour le compilateur et la bibliothèque standard ;
  • sous IntelliJ IDEA : utilisez la version 2017.3 qui contient Kotlin 1.2. Pour les versions précédentes, installez ou mettez à jour le plugin Kotlin plugin à la version 1.2 ;
  • sous Android Studio : installez ou mettez à jour le plugin depuis Plugin Manager ;
  • sous Eclipse : installez le plugin en utilisant Marketplace.

Il faut noter que le compilateur en ligne de commande peut être téléchargé depuis la page GitHub sur les notes de version. En ce qui concerne la compatibilité, avec Kotlin 1.2, le langage et la bibliothèque standard assurent la compatibilité ascendante. Cela veut dire que ce qui compilait et s’exécutait dans les versions 1.0 et 1.1 devrait continuer à fonctionner avec la version 1.2. Pour aider les équipes de grande taille à effectuer la mise à jour de leur code progressivement, l'équipe JetBrains fournit aussi des options de compilateur qui désactivent les nouvelles fonctionnalités.

Sources : Blog JetBrains, Nouveautés dans Kotlin 1.2

Et vous ?

Utilisez-vous Kotlin ? Si oui, avec quel IDE ?
Que pensez-vous des nouveautés de Kotlin 1.2 ?
Qu’attendez-vous encore du langage ?

Voir aussi :

Android Studio 3.0 est disponible avec le support de Kotlin, plus de fonctionnalités Java 8 et bien plus
Développement Android : Kotlin gagnerait du terrain au détriment de Java, et Realm prédit qu'il sera le plus utilisé fin 2018
Classement Tiobe : Kotlin, le langage pour JVM entre dans le top 50, et pourrait connaître la même ascension rapide que Swift, selon certains

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

Avatar de nhugodot
Membre régulier https://www.developpez.com
Le 08/12/2017 à 15:40
Citation Envoyé par SurferIX Voir le message
Merci beaucoup pour toutes ces informations, très utiles. Cela confirme que rester dans des langages bétons comme C / C++ est plutôt pérenne...
En plus C# est vraiment un langage excellent.
Côté Web, même chose pour la rentabilité : rien n'arrive à la cheville de Django / Python.
De rien!

C#, oui, si on aime l'héritage C, la syntaxe, etc. (j'aime pas... rien à faire...), mais chapeau à MS. Et ils font le même coup avec TypeScript: reprendre un langage vieux (voire pourri) et en faire un truc nettoyé, propre, puissant, agréable, ... (ils avaient déjà fait ça avec DOS... devenu Windows 95, puis NT, ils savent faire...)
Je préfère la lignée Lisp et Smalltalk: resp. Elixir (voire Clojure) et Pharo.

Python/Django, vraiment le plus productif?
J'ai essayé l'an dernier...
Et puis devant faire des apps mobiles, rien à faire, on doit se taper swift/java, ou ES (React Native, ou NativeScript, ou Ionic 3 que je vais tester... Au moins c'est sur Angular donc TypeScript... dommage, Google utilise ce dernier en Dart que j'aurais préféré, ils disent avoir eu +20% de productivité, alors pourquoi passer à TypeScript? Parce qu'encore une fois les dev corporate venant de C, C++, Java, C# veulent un truc qui les dépayse pas, normal... Donc va pour TS... Google ne s'embarrasse pas de cet héritage, lui qui avait démarré en Python ainsi que Youtube d'ailleurs, ils ont remplacé C++ par Go et JS par Dart...). Bref, on s'est tapé React Native, pas pour les enfants... (le bazar React vs la cathédrale Angular).
A priori, le plus productif est Pharo, pas Python, Seaside, pas Django, et en plus y'a un smalltalk client JS: Amber, plus avancé que le Python transpilé en JS, Transcript par exemple (y'en a 3 au moins...):
https://medium.com/smalltalk-talk/a-...9ab#.pfbyjfuq5
https://medium.com/@richardeng/i-gue...t-2e166eff88bf
Elm et Clojure ont aussi un expérience de dev "wow"...

Mais je suis tout ouïe pour découvrir enfin du vrai dev productif! (fatigué de réinventer des roues... ), web et apps (webapps mobiles ou natives stp)? Grand merci!
ps: je cherche un CTO pour ma start-up, projet excitant, un bon, si intéressé... https://fr.linkedin.com/in/nicolashugodot/fr !
2  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 13/12/2017 à 9:59
Euh, ça parle plus beaucoup de Kotlin là

Citation Envoyé par nhugodot Voir le message

A part des bricolos qui ne sont pas des vrais hackers niveau ingénieurs, y'a plus personne de sérieux qui fasse du PHP... En France c'est Java, aux USA c'était Ruby, JS/ES/TS maintenant, et on passe aux langages fonctionnels svp, merci...!
C'est bien trop réducteur...

Je voulais pas trop intervenir dans le débat mais tu oublies que PHP est très présent dans le eCommerce, et c'est un secteur en très grande expansion où il a de l'argent et beaucoup à faire. En 10 ans que je suis dans une PME qui édite justement des solutions de pilotage de merchandising, on a vu défiler énormément de PHP, et sinon du .Net et du Java (ces 2 derniers sont souvent pour les gros comptes) mais par exemple dans ce secteur : quasi jamais de Python.

Et je dirai que les développeurs PHP de qualité, ça ne court pas les rues, peut être parce que c'est une techno très accessible, donc il y a largement la place pour sortir du lot, faire du travail sérieux et bien gagner sa vie. Pour les indices TIOBE et tout ça, tout a déjà été dit sur les topics dédiés à ces classements, on peut quasiment rien en tirer. Pour ça je suis d'accord avec dukoid que les offres d'emplois c'est "presque" un meilleur indicateur, resterait bien sûr à savoir maintenant si c'est des emplois d'esclaves sous payés qui doivent modifier un plugin wordpress ou des vrais postes où il y a de la valeur, mais c'est indéniablement un plus grand nombre d'opportunités.

Pour finir, si SurferIX juge qu'il est plus productif avec django qu'avec symfony parce que les templates se débuggent plus facilement, ben il a raison d'utiliser ça. Ca veut dire moins de travail pour lui et plus de satisfaction client, et c'est juste la seule chose qui compte. Je dirai la même chose d'un type qui pense l'inverse. A côté de ça, les graphiques de performance, le fait que ça fasse ou pas du mobile, du big data, ou du shell scripting, c'est complètement hors sujet.

Avant que quelqu'un se la ramène pour me dire que je défends PHP alors que c'est un langage de merde (et là dessus il y a beaucoup à redire), sachez que je n'ai jamais eu le loisir de choisir un langage selon mes propres critères d'appréciation, ça a toujours été selon l'écosystème, les libs/API disponibles ou les cibles de déploiement. Si vous pouvez vous permettre de vous limiter à un langage que vous adorez par dessus tout en fonction de vos seules opinions, je vous envie.
2  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 12/12/2017 à 14:54
Citation Envoyé par nhugodot Voir le message
Au moins c'est sur Angular donc TypeScript... dommage, Google utilise ce dernier en Dart que j'aurais préféré, ils disent avoir eu +20% de productivité, alors pourquoi passer à TypeScript? Parce qu'encore une fois les dev corporate venant de C, C++, Java, C# veulent un truc qui les dépayse pas, normal... Donc va pour TS... Google ne s'embarrasse pas de cet héritage, lui qui avait démarré en Python ainsi que Youtube d'ailleurs, ils ont remplacé C++ par Go et JS par Dart...). Bref, on s'est tapé React Native, pas pour les enfants... (le bazar React vs la cathédrale Angular).
Ce n'est pas qu'une question d'habitude ou de dépaysement. Le succès (si on peut dire) de typescript vient aussi de son interopérabilité avec javascript qui est complète. Si tu choisis de coder en TS tu ne te prives aucunement de l'écosystème javascript. Tu ne fais que rendre ton code plus typé, et plus facile à maintenir. Dans un monde où on se sert beaucoup de libs existantes, ça compte énormément de pas passer par des couches interops foireuses et de finir le derrière entre deux chaises.

C'est aussi ce qui, je pense pourrait faire fonctionner kotlin. C'est un meilleur java avec une très bonne interop.
1  0 
Avatar de nhugodot
Membre régulier https://www.developpez.com
Le 12/12/2017 à 15:51
Citation Envoyé par _skip Voir le message
Ce n'est pas qu'une question d'habitude ou de dépaysement. Le succès (si on peut dire) de typescript vient aussi de son interopérabilité avec javascript qui est complète. Si tu choisis de coder en TS tu ne te prives aucunement de l'écosystème javascript. Tu ne fais que rendre ton code plus typé, et plus facile à maintenir. Dans un monde où on se sert beaucoup de libs existantes, ça compte énormément de pas passer par des couches interops foireuses et de finir le derrière entre deux chaises.

C'est aussi ce qui, je pense pourrait faire fonctionner kotlin. C'est un meilleur java avec une très bonne interop.
Merci Skip, commentaire autrement plus intéressant que l'humanoïde dissocié et son PHP...

Oui, TS est génial car garde toute la compatibilité avec l'existant: codes JS, codeurs JS et C++/Java/C#... , .. Google a été très pragmatique sur ce coup là, en faisant une évolution et pas une révolution. Et on peut utiliser TS avec Angular (donc Ionic et NativeScript) mais AUSSI avec React et VueJS etc.

Kotlin tournant sur VM JS et Java, je me demande quelle killer stratégie on peut bien y trouver pour faire quelque chose de génial que Java ou JS ne saurait pas faire... : tourner sur backend java et sur front end (JS, forcément... tant que WebAssembly n'est pas partout), profiter des deux écosystèmes et richesses de librairies?
1  0 
Avatar de nhugodot
Membre régulier https://www.developpez.com
Le 12/12/2017 à 16:32
  • Symfony est d'origine française, pas Django. "NIH"? (syndrome Not Invented Here?)
  • Et personne n'a parlé de chercher du travail avec Django. Entre un poste de CEO et un job de plombier, y'a aussi plus d'offres d'emploi pour plombier...
  • 1er résultat de ma recherche "Symfony vs Django": boum, enfoncé Symfony...


Rapidité? ah ben flûte: http://blog.websitesframeworks.com/w...03/davis11.png
Ah ben vraiment flûte même: perdre 3% de clients et être lent à ce point...: http://static.alrond.com/siege.gif

La messe est dite: quand on fait sa pub sur PHP, on sait à qui on a affaire... (pas un ingénieur... un vrai)
1  0 
Avatar de nhugodot
Membre régulier https://www.developpez.com
Le 12/12/2017 à 17:03
Salut SurferIX et merci pour ton appréciation... je ne suis plus codeur mais me passionne néanmoins pour les belles choses, simples et efficaces, les architectures, et déçu par le "reinvent the wheel" pour la 100000 fois pour faire un bouton ou un bout de chat dans une app, cherche constamment "quel est le plus productif des outils de dev.. désespérant, quand même... on revient à ... Smalltalk. Tout ça pour ça.

Tout est là: https://medium.com/@richardeng , le mossieur est encore plus désillusionné que moi mais encore plus compétent néanmoins. Pharo, bébé d'un directeur de recherche de l'INRIA de Lille, est le futur, le SmallTalk du 21e siècle. Quelques trucs top dedans: tout est dans un seul fichier, même l'état, rechargeable après un reboot donc on retrouve l'endroit ou on était (une app iOS ou Android me fait pleurer: en pause hop elle dégage et en rallumant son phone... faut tout recharger... ). Syntaxe hyper claire, une autre façon de travailler. Etc.

Mais Pharo ne fait pas Android et iOS, Dart/Flutter si et est le futur de Android: FuschiaOS:
et surtout https://hackernoon.com/why-native-ap...r-e97361a1c073
Dart>TS>ES>JS... J'ai pas encore trouvé mieux, je vais sans doute m'y mettre... Comme Pharo, le fait qu'on se passe parfaitement d'outil à la Gulp Grunt et autres acronymes vulgaires veut tout simplement dire que c'est propre, dès le départ. Le bazar JS React etc. c'est du bricolage, de génie mais du bricolage. "AMHA"...

(Ah, Elm, aussi, mais non pas OO mais fonctionnel, est à essayer absolument aussi; idem, pas besoin de pléthore d'outils compliqués, expérience de dev géniale. Clojure aussi avec son IDE interactif "REPL" que les amateurs louent aux nues... Go est un C++ facile aussi. Tout est là, je compile mes lectures ici: https://docs.google.com/document/d/1...h.te2c3nnwu1w7
à toi d'y participer!
1  0 
Avatar de SurferIX
Membre chevronné https://www.developpez.com
Le 13/12/2017 à 17:01
Citation Envoyé par dukoid Voir le message
ce n'est pas parceque surferIX pense cela que c'est une vérité !
Mais arrête de tout mal interpréter, relis bien ce qu'il a dit bordel, t'as un problème d'ego toi !
Il a dit : "si SurferIX juge qu'il est plus productif avec django qu'avec symfony parce que les templates se débuggent plus facilement, ben il a raison d'utiliser ça."
C'est tout ! Il a dit : si son idée le rend plus productif, alors qu'il suive son idée, t'as un vrai souci d'interprétation !
Je t'ai même dit que j'ai énormément fait de Php et que j'ai apprécié ça pendant longtemps !
Arrête de tout déformer !
Ici le sujet c'est Kotlin, ça a dérivé sur d'autre choses constructives, d'autre langages, d'autres frameworks, merci @nhugodot, et une excellente analyse de @_skip pour ce qui est monde professionnel. T'es le seul à tout mal interpréter et limite insulter, relis bien les messages et essaie de mieux les comprendre avant de répondre !
La réalité c'est qu'il y a plein de demande Php pour du boulot, la réalité c'est que plein de gens se tournent vers Python parce que ça rend plus productif, y'a rien de compliqué à ça, et ça contredit pas ce que tu dis !
Relis bien ce que j'ai dit avant de répondre je suis pas le seul à te l'avoir expliqué ici !
1  0 
Avatar de nhugodot
Membre régulier https://www.developpez.com
Le 08/12/2017 à 8:26
Kotlin, sans e, merci.

Qu'un langage puisse tourner sur 2 VM différentes, Java et ES (arrêtons de parler de JS svp...), wow! On a aujourd'hui 3 "terminaux" cibles, le web, Android et iOS, et on aimerait effectivement n'avoir qu'un code...: ES pour les SPA utilisant WebView mais plus lent que du natif, PWA (Ionic 3...) bientôt si Apple enfin ne fait pas d'abus de quasi monopole, WebAssembly (WASM) idem si Apple veut bien, ES avec React Native ou NativeScript ou mieux, C# avec MS Xamarin, hybrides quasi natifs, ou ce nouveau Kotlin pour Web et Android. (Quid de Dart sur framework Flutter pour Android et iOS?). Ca commence à faire beaucoup de solution et de types d'hybridations, un tableau serait utile pour éclaircir le présent et futur proches...
Et le futur d'Android, c'est FuschiaOS avec les langages C, C++, Rust, Go, Python et Swift supportés, mais pas ES ni Java, soit justement... pas Kotlin, pourtant désormais supporté officiellement par Google pour son Android actuel!!! Allez comprendre...

On sera in fine drivé par le chaînon faible, comme JS/ES a fini sur les serveurs (Node) à défaut des langages sérieux serveurs sur le navigateur: Apple iOS et son "Swift et rien que Swift" (et un peu de ES mais juste pour vous faire plaisir et surtout pas d'ombre à ma vache à lait Ap'Store et sa com° de 30% + 99€/an...). C'est d'ailleurs bien pour ça que Google a annoncé le support de Swift pour Fuschia... mais pas de Kotlin. Et puisque Swift est désormais open-source, pourquoi pas l'enrichir (le forker?) pour qu'il sache faire du web (sur WebAssembly) et sur Android? On peut rêver...

En 2000, on s'était pris à rêver à ne plus coder en windows et peut-être mac mais tout en web, maintenant on doit coder en web, android, ios, et peut-être en windows et en macos... un rêve s'est perdu en route...
0  0 
Avatar de SurferIX
Membre chevronné https://www.developpez.com
Le 08/12/2017 à 15:01
Citation Envoyé par nhugodot Voir le message
Kotlin, sans e, merci. (...)
En 2000, on s'était pris à rêver à ne plus coder en windows et peut-être mac mais tout en web, maintenant on doit coder en web, android, ios, et peut-être en windows et en macos... un rêve s'est perdu en route...
Merci beaucoup pour toutes ces informations, très utiles. Cela confirme que rester dans des langages bétons comme C / C++ est plutôt pérenne...

De mon côté, je reste sur Unity / C# pour Linux, Windows, Android, iOS et même PS4, pour des applis professionnelles avec un bon UI. Oui je sais c'est lourd, une appli Unity plein de RAM juste pour afficher 4 combobox et 6 checkboxes + 2 boutons, mais en termes de cross-compilation + fonctionnement 100% identique sur tous les supports, c'est simple : il n'y a rien de mieux, tout court. En plus C# est vraiment un langage excellent.
Côté Web, même chose pour la rentabilité : rien n'arrive à la cheville de Django / Python.

Mais je supporte Kotlin à ma façon : je paie une souscription PyCharm à Jetbrains depuis trois ans déjà !
0  0 
Avatar de SurferIX
Membre chevronné https://www.developpez.com
Le 12/12/2017 à 12:39
Je te remercie pour ce commentaire très constructif (et surtout très à la pointe ), et je te laisse dans ton cercle Php, tant mieux, reste-y !
T'es super bien en France on dirait, car ici on est un ratio extrêmement opposé, mais c'est vrai que la Silicon Valley n'est remplie que de crétins ! Au fait tu viens quand avec moi en amphi ? Je t'attends toujours pour ta présentation et tes réponses Symfony
Au moins je serai comme tous les développeurs Django en France : mieux payé que ceux en Php (donc que toi (67K€ contre 51K€)) .
(Ecris aussi à geekpress pour l'insulter, c'est encore un de ceux que tu dois considérer comme extrémiste )

Oh j'oubliais ! Stackoverflow aussi n'est rempli que d'extrémistes, regarde ici il y a 3 mois, contacte les et insulte les s'il te plaît, car regarde où ils voient Python et où ils voient Php fin 2018 :



Pour le reste, relis ce que tu écris, car les fautes d'orthographes sont comme Php : on n'a que des warnings, ça brûle les yeux, mais on continue quand même

Il n'empêche que j'attends une réponse de @nhugodot car, (lui), il paraît ouvert, et a amené des choses vraiment constructives... des propositions très intéressantes.
1  1