Annonce

Réduire
Aucune annonce.

Article : 10 langages de développement pour secouer la IT

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Article : 10 langages de développement pour secouer la IT

    Bonjour à tous,

    Voici 10 nouveaux langages pour secouer l'IT Qu'en pensez-vous ?

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Les développeurs ont à leur disposition un vaste choix de langages, de toute nature. Il continue malgré tout à s'en créer pour répondre à des situations particulières ou contourner les limites des outils existants. Parmi ces langages, dont certains sont encore expérimentaux, en voici dix, présentés en deux volets. Première partie : Dart, Ceylon, Go, F# et Opa.

    Avons-nous vraiment besoin d'un autre langage de programmation ? Ce n'est pas le choix qui manque déjà. Entre les impératifs, les fonctionnels, les dynamiques, les compilés, les interprétés, la programmation objet et les langages de script, aucun développeur ne pourraient apprendre toutes les options disponibles.

    Et pourtant, de nouveaux langages émergent à une fréquence surprenante. Certains sont conçus par des étudiants ou par des amateurs comme des projets personnels. D'autres viennent de grandes entreprises de la IT et on voit aussi des PME créer des langages pour répondre aux besoins de leurs secteurs d'activités. Pourquoi réinvente-t-on la roue ? La raison en est que, aussi solide et varié que soit le choix disponible, aucune syntaxe ne s'adapte de façon idéale à chaque objectif. De plus, la programmation est en constante évolution. Les processeurs multicoeurs, le cloud computing, la mobilité et les architectures distribuées ont créé de nouveaux défis pour les développeurs. Ajouter aux langages existants, notamment aux plus populaires, le support des fonctionnalités, paradigmes et modèles les plus récents peut s'avérer difficile et coûteux. Quelquefois, la meilleure réponse est encore de tout reprendre à zéro.

    Dix de ces langages avant-gardistes ont été passés en revue par notre confrère d'InfoWorld, Neil McAllister, certains appartenant au domaine de la programmation expérimentale. Chacun aborde d'une façon nouvelle le développement de logiciels, en s'attaquant à un problème spécifique ou à une lacune des langages les plus utilisés aujourd'hui. Certains sont le fruit de projets arrivés à maturité, tandis que d'autres n'en sont qu'à leurs débuts. Quelques-uns vont probablement rester dans l'ombre. Néanmoins, n'importe lequel d'entre eux peut faire une percée pour devenir l'outil qui transformera la programmation dans les années à venir. Au moins, jusqu'à l'arrivée du prochain lot.


    1 - Dart, créé par Google pour remplacer JavaScript


    JavaScript convient très bien quand on doit mettre de l'interactivité simple dans des pages web, mais quand les applications atteignent des milliers de lignes de code, ses faiblesses apparaissent. Voilà pourquoi Google a créé Dart, un langage qu'il aimerait voir utiliser couramment dans la programmation web.

    Comme JavaScript, Dart utilise une syntaxe de type C et des mots-clés. Avec une différence importante, toutefois. Alors que JavaScript est orienté prototype, dans Dart, les objets sont définis en utilisant des classes et des interfaces, comme on le fait en C++ ou en Java. Dart permet aussi aux programmeurs de déclarer de façon optionnelle des variables de type statique. L'idée est que Dart soit aussi familier, dynamique et fluide que JavaScript, tout en permettant aux développeurs d'écrire du code plus rapide, plus facile à maintenir et moins sensibles aux bugs. On peut faire beaucoup avec Dart aujourd'hui. Il est conçu pour fonctionner à la fois sur le client et sur le serveur (comme le fait Node.js), mais jusque-là, la seule façon d'exploiter la partie client du code Dart est de le compiler en JavaScript. Et même de cette façon, il ne fonctionne pas avec tous les navigateurs. Mais, parce que Dart est livré sous licence Open Source BSD, n'importe quel fournisseur intéressé peut l'intégrer dans ses produits. Il reste maintenant à Google à convaincre le monde des développeurs. Récemment, l'inventeur de JavaScript, Brendan Eich, s'est montré réservé sur la question en doutant que Dart soit un jour supporté en natif sur les différents navigateurs web.

    Pour en savoir plus sur Dart : http://www.dartlang.org



    2 - Ceylon, développé chez Red Hat par le créateur d'Hibernate


    Collaborateur de Red Hat, Gavin King récuse le fait que Ceylon, le langage qu'il développe chez l'éditeur Open Source, soit destiné à être un « Java killer ». Lui-même est connu comme étant le créateur d'Hibernate, framework pour Java gérant la persistance des objets en base de données relationnelle. Il aime Java mais il pense que le langage comporte de nombreuses marges d'amélioration. Il pointe notamment sa syntaxe verbeuse, son manque de fonctions « first-class », ainsi que son faible support de la metaprogrammation. En particulier, il regrette l'absence d'une syntaxe déclarative pour la définition des données structurées qui, dit-il, rend Java inséparable d'XML. Ceylon vise à résoudre tous ces problèmes.

    Gavin King et son équipe n'ont pas l'intention pas de réinventer complètement la roue. Il n'y aura pas de machine virtuelle Ceylon. Le compilateur Ceylon produira du code exécutable Java destiné à fonctionner sur la JVM (machine virtuelle Java). Mais le langage sera davantage qu'un simple compilateur. L'un des buts principaux du projet est de créer un SDK Ceylon pour remplacer le SDK Java que Gavin King trouve ampoulé et maladroit et qui, à son goût, n'a jamais été correctement modernisé.

    C'est une gageure, et Red Hat n'a pour l'instant livré aucun outil Ceylon pour l'instant. Gavin King estime qu'il devrait sortir un compilateur cette année. Mais n'attendez pas de logiciel écrit entièrement en Ceylon avant longtemps.

    Pour en savoir plus sur Ceylon: http://ceylon-lang.org



    3 - Go, d'usage général, se veut facile et agréable à coder


    Les interpréteurs, les machines virtuelles et le code managé font fureur en ce moment. Go est un langage d'usage général qui convient à peu près pour tout, du développement d'application à la programmation de systèmes. En ce sens, cela ressemble davantage à du C ou du C++ qu'à du Java ou du C#. Mais, comme ces derniers, Go inclut des fonctions considérées comme modernes (« garbage collector » pour le nettoyage de la mémoire, ou encore « runtime reflection », « support for concurrency »). Tout aussi important, Go est supposé être facile à programmer. Sa syntaxe de base ressemble au C, mais il élimine les redondances et simplifie certaines opérations telles que la définition d'objets. L'objectif de l'équipe derrière Go était de créer un langage plaisant à coder comme un langage de scripting dynamique tout en offrant la puissance d'un langage compilé.

    Go est toujours en cours de développement et ses spécifications peuvent être modifiées. Cela dit, il est possible de commencer à l'utiliser dès maintenant. Google a conçu des outils et des compilateurs, ainsi qu'une documentation importante. Le tutorial proposé est notamment une bonne façon de voir dans quelles mesures Go diffère des langages plus anciens.

    Pour en savoir plus sur Go: http://golang.org


    N°4 : F#, un langage Microsoft qui ressemble à OCalm


    La programmation fonctionnelle a longtemps été populaire parmi les ingénieurs informatiques et dans le monde universitaire, mais les purs langages fonctionnels tels que Lisp et Haskell sont souvent considérés comme inexploitables en situation réelle de développement. L'une des critiques les plus courantes est que ce type de code peut être difficile à intégrer avec du code et des bibliothèques écrites dans des langages impératifs tels que C++ et Java.

    Enter F# (F-sharp) est un langage développé par Microsoft, conçu pour être à la fois fonctionnel et pratique. Il peut accéder à toutes les bibliothèques et fonctionnalités des autres langages pris en charge par le CLR (Common Language Runtime, composant de machine virtuelle du framework .Net), tels que C# et Visual Basic.

    Le code F# ressemble un peu au langage OCaml, mais il apporte une syntaxe propre qui est intéressante. Par exemple, il est possible d'assigner des unités de mesure aux données de type numérique pour les traitements scientifiques. F# apporte aussi des constructions pour faciliter les entrées/sorties asynchrones, la parallélisation des traitements ou leur report vers le processeur graphique.

    Après une longue période de gestation au sein de Microsoft Research, F# est désormais livré avec Visual Studio 2010. Mieux encore, de façon inhabituelle, Microsoft a mis le compilateur de F# et la bibliothèque principale sous licence Open Source Apache. Vous pouvez commencer à travailler gratuitement avec et même l'utiliser sur Macintosh ou sur les systèmes Linux (via le runtime Mono).

    Pour en savoir plus sur F#: http://research.microsoft.com/en-us/...p/default.aspx



    N°5 : Opa, un nouveau paradigme pour les application web


    Le développement web est parfois compliqué. Même la plus simple application nécessite d'innombrables lignes de code dans de multiples langages : HMTL et JavaScript sur le client, Java et PHP sur le serveur, SQL pour la base de données, etc. Le langage Opa ne remplace aucun de ces langages individuellement. Il cherche plutôt à proposer un paradigme totalement différent pour la programmation web. Dans une application Opa, l'interface utilisateur, la logique côté serveur et les entrées/sorties de la base de données sont tous mises en oeuvre dans ce seul langage. Opa le réalise à travers une combinaison de frameworks pour les versants client et serveur. Le compilateur Opa décide si une routine donnée doit s'exécuter sur le client, le serveur ou les deux, et produit le code en conséquence. Pour les routines côté client, il traduit Opa dans le code JavaScript approprié, en incluant les appels AJAX.

    Naturellement, un système intégré de cette façon recourt à ses mécaniques particulières en arrière-plan. L'environnement runtime d'Opa réunit son propre serveur web et son système de gestion de données, qui ne peuvent pas être remplacés par des produits séparés. C'est peut-être le prix à payer, cela dit, pour avoir la capacité de prototyper des applications web sophistiquées, orientées vers les données, avec seulement quelques dizaines de lignes de code. Open est un langage Open Source, disponible pour les plateformes Linux 64 bit et Mac OS X. D'autres portages sont en cours. ?

    Pour en savoir plus sur Opa: http://opalang.org



    Info : Publication de la seconde partie de cet article très bientôt.

    cred:mondeinfo
    10
    "Dart" de Google
    20,00%
    2
    "Ceylon" de Red Hat
    10,00%
    1
    "Go" Open Source
    30,00%
    3
    "F#" de Microsoft
    0,00%
    0
    "OPA" de ML State
    40,00%
    4
    Dernière modification par Mac, 19 mars 2012, 11h56. Motif: Ajout des sites web relatifs à chaque langage
    Linux est à Windows ce qu'une jolie fille est à une prostituée : La jolie fille, il faut la séduire pour obtenir ce que l'on désire alors que la prostituée , il suffit de la payer, et surtout bien se protéger.

    sigpic

  • #2
    Merci ProgMac pour cet excellent article, avec les petits liens qui vont avec

    Pour ma part, Opa a l'air d'être le plus intéressant, je ne me suis pas plus renseigné que cela sur le sujet mais l'idée simple de faire un langage unique pour le web (remplacer html/css/php/sql/js/etc) me paraît être une excellente idée. C'est vrai que c'est un peu désagréable de voir que chaque langage soit très limité à sa propre fonction primaire. Après, avant de changer tout ça... "on verra dans dix ans"^^

    Dart semble intéressant, Ceylon a pas l'air mal non plus. Cependant, ils demeurent des "substituts" ou des "améliorations" de, voilà pourquoi je trouve que l'idée d'Opa est la plus créative.

    Puisque tu as mis un système de vote, je vote pour Opa. Cependant, il est difficile de les "juger" car ils n'ont pas tous la même finalité et surtout n'en sont pas tous au même stade d'évolution. Mais bon : Opa

    Après, je dirai juste une chose, honnêtement, tant qu'ils ne sont pas pris en charge par tous les supports (web browsers pour la plupart), je ne m'aventurerai pas dans l'étude de l'un d'eux, qui a une chance sur dix de ne pas tomber en désuétude d'ici dix ans. En effet, comme il est mentionné dans l'article, énormément de nouveaux langages voient le jour en permanence... faut choisir.
    sigpic

    Cyprium Download Link

    Plus j'étudie plus j'me rends compte que je n'sais rien.

    †|

    Commentaire


    • #3
      Je ne peux pas voter car je fausserais le vote (car je ne les connais pas) mais OPA semble une bonne alternative pour une harmonisation des langages web
      Il faut toujours viser la lune car même en cas d'échec on atterit toujours au milieu des étoiles...

      Commentaire


      • #4
        Je vote pour l'open source bien sur
        WITHOUT DEVIATION FROM THE NORM, PROGRESS IS NOT POSSIBLE
        -Frank Zappa

        Commentaire


        • #5
          Envoyé par artexiso Voir le message
          Je ne peux pas voter car je fausserais le vote (car je ne les connais pas) mais OPA semble une bonne alternative pour une harmonisation des langages web
          Mais justement personne n'est censé les connaitre pluisqu'ils sont nouveaux ! ^^
          Le but est de savoir le(s)quel(s) te semble(nt) intéressant, le(s)quel(s) tu apprendrais(ent) tout simplement.

          Perso l'Opa me semble bien et le Dart aussi même si il est moins innovant.
          Après, étant donné que je n'y connais pas grand chose en programmation (I'm a Noooooooooob ! =) ) je vous ai posé ce sondage pour que vous me disiez, vous qui y connaissez quelque chose, ce que vous en pensiez, si c'était nul, intéressant etc et donc le(s)quel(s) l'est/le sont. Voilà tout =)

          Car moi j'en suis toujours au point de ne pas savoir par quel type de code commencer, sachant que je ne hacke pas (enfin j'utilise des crack mais coté utilisateur ), moi j'utilise mon Mac comme un outil commercial ou de création infographie et musique mais donc plus "Graphique" que "Ligne de code". Moi je chercherai à développer un logiciel un peu proche d'un CRM ou d'un ERP mais d'un genre un peu nouveau avec une souplesse d'utilisation sur plusieurs plate-forme etc bref je suis pas de la revue à mon avis....
          Sans parler du fait que ça puisse se faire via un Cloud et donc un système internet par exemple (donc programmation web :'( ) bref un vrai casse-tête quand t'y connais rien en prog
          Linux est à Windows ce qu'une jolie fille est à une prostituée : La jolie fille, il faut la séduire pour obtenir ce que l'on désire alors que la prostituée , il suffit de la payer, et surtout bien se protéger.

          sigpic

          Commentaire


          • #6
            Perso, moi je m'y connais un tout petit peu en programmation, beaucoup de langages différents, mais pas de "niveau" respectable sur chacun d'eux. En effet, je discute souvent avec des dévs car je travaille avec (professionnellement) et tout le monde s'accorde à dire qu'il faut un minimum de 5 ans d'expérience pour pouvoir dire qu'on "maîtrise" un langage, et qu'il faut 10 ans pour affirmer qu'on à LE "niveau". Là par exemple, je sors d'un rdv chez une SS2I parisienne et le directeur (environ 55 ans) m'a vachement étonné ! Il y a tout un monde entre "je développe quelques apps sympa" et "je suis professionnel". Une galaxie même^^

            Enfin bon, je ne veux pas "casser" la motivation des futurs développeurs (de métier) de demain hein Juste préciser qu'un langage ne se maîtrise pas aussi facilement qu'il n'y paraît

            Moi qui connait beaucoup de dév PHP, j'en ai vu des lamentables (dont c'était le métier) et j'en ai vu qui étaient limite flippants (question robustesse du code, efficacité du code, rapidité de développement, adaptation à tout type de projet...).

            C'est un métier hein

            Bref, pour en revenir au topic initial, il est intéressant que de nouveaux langages se créent (cela démontre tout simplement l'engouement qu'il y a pour cette filière et ça ne présage que du positif pour les futurs dévs ) mais le problème reste encore et toujours ces foutus soucis de portabilité... Entre multinationales, ça se chiffonne pour avoir le monopole et au finale ça chie dans la colle, ça ralentit la chaîne, etc. Voilà pourquoi j'émets de grosses réserves quant à l'utilité d'apprendre un de ces langages maintenant. Il faut d'abord qu'il y ait un réel engouement pour celui-ci. Regardez, prenez l'exemple du Python (peu utilisé en entreprise, mais c'est pour l'exemple). Python a fait une percée monumentale dans le monde du dév applicatif. Mais d'autres langages sympas, comme RoR, suscitent un certain engouement mais restent encore très peu utilisés par la majorité de la communauté...

            Voilà pourquoi j'ai longtemps dit : Commencez par le C. Car l'avantage de commencer par le C, c'est qu'après, tout ce qui suit paraît "simple" ; j'entends par là que votre faculté de compréhension sera très élevé. Maintenant, je conseille de débuter par le Python, car il est simple d'approche et assez puissant ! Cependant, si derrière python vous devez apprendre le C, ça va être plus coton que l'inverse.

            Enfin bref, dans tous les cas, ceux qui souhaitent être dév de métier, les langages les plus recherchés sont très clairement le Java et le PHP, puis le .NET (C# principalement). Pour tout vous dire, je n'ai encore jamais vu d'appel d'offre pour un poste dév Python (mais... jamais) ; après je critique pas Python hein Je "constate"
            sigpic

            Cyprium Download Link

            Plus j'étudie plus j'me rends compte que je n'sais rien.

            †|

            Commentaire

            Chargement...
            X