Encore un nouveau langage : FAN

En lisant un article d’introduction du langage FAN je trouve intéressant que ce dernier soit compatible .NET et Java.
En ce moment, .Net se voit enrichir de nombreux langages, aussi bien statiques (F# par exemple) que dynamiques (Iron Python). Les langages « standards » étant C#, VB.Net et C++/CLI.
Quand on développe sur la JVM, le langage « standard » reste Java. Mais cela ne veut pas dire qu’on a pas le choix : Scala, Jython, Groovy

aa496123net_logoen-usmsdn10java_logo = FAN ?

Mais le petit nouveau, FAN, cible aussi bien la JVM que la CLR.Net. Certes, les 2 mondes possèdent des concepts similaires, mais aussi très différents et qui risque de ne pas être possible d’exposé dans ce langage.
Ceci dit, la plupart des concepts sont haut-niveaux, et peuvent donc générer un bytecode en utilisant des concepts plus simples et bas niveau, comme un foreach peut être écrit sous la forme d’un for

En l’occurrence, FAN introduit un concept déjà existant en C# mais absent en Java : les Nullables.
C’est l’objet de cet article.

De nombreuses autres sucreries du langages C# sont introduites dans le JVM à l’aide de FAN comme les Closures. Je vous laisse découvrir tout ça sur la documentation officielle.
Je vous invites aussi à lire cet autre article d’introduction qui expose beaucoup d’avantages.

Pour ma part, j’adore :

  • gestion des nullable
  • valeur par défaut des arguments des méthodes (ce qui évite plein de surcharge inutile)
  • property implicite à la C#, pour toujours moins de code à écrire
  • closure en Java
  • pas de ; superflux en fin de ligne
  • l’équivalent du mot clé dynamic du C#4 avec object->variable !
  • mot clé once qui évite de gérer manuellement le caching du résultat (genre : if(truc == null) truc = new Truc(); return truc;")
  • l’écriture des listes/maps et l’écriture des instanciations « à la JSON »

A noter aussi une gestion de « package » propre au langage, et qui n’expose pas toute l’API Java (JDK). Je n’ai pas trouvé d’infos concernant .Net à ce sujet, mais ce langage se veut vraiment comme une union des 2 mondes.

En attendant un pluggin Eclipse ou un addin VisualStudio Shell, ils livrent un mini IDE fort sympathique.

flux

Et vous? Qu’en pensez-vous?

Publicités

Une réflexion sur “Encore un nouveau langage : FAN

  1. il m’a l’air marrant ce nouveau langage, merci pour l’info!

    Y’a des ressemblances du point de vue technique avec cobra (http://cobralanguage.com/): nil tracking + latebinding dynamic optionel, cobra souhaite supporter un backend jvm également…

    pour le mot clé once, ça marche l’utilisation du modificateur static à l’intérieur d’une fonction C?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s