• [^] # Re: Block ou closure ?

    Posté par (site web personnel) . En réponse au journal Où l'on en apprend un peu plus sur Java 7. Évalué à 1.

    Tout à fait d'accord. Scala est un langage extrêmement intéressant.

    Les concepts fondateurs de Scala sont :
    - pouvoir mélanger de la programmation impérative avec de la programmation fonctionnelle en gardant le meilleur des deux "styles" et sans que l'un ne prévale sur l'autre
    - avoir une syntaxe suffisamment abstraite et puissante pour permettre "d'étendre le langage" à travers des bibliothèques

    Ce deuxième point évitera d'avoir un langage avec des ajouts mal intégrés (exemples : OpenMP pour le C, C++ tout court, etc.)

    Les gros points forts sont :
    - la compatibilité quasi-totale avec Java (à quelques problèmes d'annotations près). Donc réutilisation du code facile et mixage entre les deux langages possible.
    - le typage statique avec inférence de type qui permet d'avoir un code très épuré et lisible
    - la courbe d'apprentissage qui peut ne pas être trop violente. Il est possible de coder comme en java à quelques détails syntaxiques près
    - bon support dans les IDE (netbeans, eclipse...) et par maven

    Une des critiques que l'on retrouve souvent est que le langage est trop compliqué. En fait, ceux qui souhaitent ajouter une "fonctionnalité au langage" (donc sous forme de bibliothèque) peuvent avoir à écrire du code assez compliqué. Mais une fois ce code écrit, l'utilisation de la bibliothèque est généralement triviale (si elle est bien faite). Voir par exemple la bibliothèque des Actors inspirée d'Erlang ou le framework web Lift.

    Pour vous faire une idée, je vous recommande de lire la série d'articles ici :
    http://www.codecommit.com/blog/scala/roundup-scala-for-java-(...)