Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #21
    Membre émérite
    A regarder les offres d'emploi, PYPL me paraît plus proche de la réalité.

    Après, de la à dire qu'un de ces classement est pertinent...
    Non.

    Mais mon argument est différent de la moyenne. Tout le monde dit, "un langage est plus efficace dans un domaine précis". Pour moi, c'est faux.

    Moi, je pense plutôt que "un paradigme est plus efficace dans un domaine précis".

    Après le paradigme, le point le plus important (selon moi) et presque toujours oublié, les gens citent d'autres arguments, que je trouve invalides, pour comparer les langages:

    1: la philosophie du langage: Java et C++ sont très différents, par exemple, l'un activant par défaut la virtualité des méthodes, par exemple, un autre exemple est l'usage de la RAII contre les GC.
    Mais un bon développeur C++ ou Java saura contourner les problèmes causés par ce point (les performances d'un code polymorphe sont moindres). Pour le coup, ça n'influence pas tant que ça l'efficacité du langage dans un domaine.
    Idem pour le garbage collector ou la RAII de C++: quand on sait s'en servir, on en fait ce qu'on veut (pour la RAII, je suis sûr, pour le GC, je suppose, je ne maîtrise pas assez Java pour l'affirmer catégoriquement).

    2: les bibliothèques standard: si on reprends l'exemple C++ vs Java, C++ à une lib standard très limitée, contrairement à Java. Sauf qu'il y a à disposition une quantité non négligeable de lib tierces qui font que l'on pourra faire la même chose.
    Il faut les choisir et les installer, c'est vrai, mais Java à le problème inverse: il y a des fonctionnalité de la librairie standard qui sont obsolète, notamment au niveau des framework graphiques (Je me souviens plus du nom... AWT? Ou pas, je sais plus)
    Bref, encore une fois, le point n'a pas grande importance pour des langages aussi répandus: la base de code disponible est suffisante.
    Pour des langages neufs, ou peu populaires, en revanche, c'est nettement plus problématique, mais dans ce cas, il ne s'agit que d'un investissement au tout début du projet, on code, et on conserve pour usage futur.


    Pour reprendre un exemple cité:

    Pour ma part je me vois mal programmer un microcontrôleur 8 bits en C#, et je me vois mal programmer un logiciel de gestion sous Windows en C. Si donc on me demande de choisir un "meilleur" langage, encore faut-il me donner le contexte exact et ensuite ne pas reprendre ma réponse dans un tableau "général" qui n'a aucune signification.
    J'ai noté un truc tout con: pour programmer un µcontroleur, je peux utiliser C++, C, ASM (l'un des, il n'y en a pas qu'un), et sûrement quelques autres langages.

    Pour programmer un logiciel de gestion, C++ me paraît toujours adapté, bien qu'il va alors y avoir besoin du renfort de SQL.

    Qu'est-ce qui fait la force de C++ dans cette histoire? Sans vouloir troller, c'est juste qu'il supporte nativement plusieurs paradigmes:
    _ pour le micro-contrôleur , on va utiliser le paradigme impératif (quoique, ça ne me gênerait pas d'utiliser quelques classes, rien que pour la RAII, donc je mixerai les deux)
    _ pour le logiciel de gestion, la programmation orientée objet sera un vrai plus, mais il manque le paradigme déclaratif, d'où l'intérêt du SQL.
    _ pour écrire une bibliothèque, je vais utiliser le paradigme générique, sûrement combiné à l'objet ou l'impératif, en fonction du rôle de cette lib.

    Dans les 3 situations, j'utilise plusieurs paradigmes, au final (dans le 1er cas, les développeurs C ont aussi une approche objet, avec les structures qui ont leurs jeux de fonctions spécialisées pour allouer, nettoyer, bouger, etc).

    Après, le multi-paradigme à les défauts de ses avantages: C++ à une courbe d'apprentissage importante pour le maîtriser à 100%, car il faut maîtriser 3 paradigmes (parce que la façon de penser change à chaque fois), au moins.
    C, PHP, Java, C#... n'ont pas ce problème, il ont moins de paradigmes à supporter (pas un seul, juste moins... le seul qui n'en a qu'un, c'est le C: PHP à la POO et l'impératif, Java et C# ont la POO et un peu de support du générique, mais moins poussé que mon favoris )

    Bon, cette courbe vient aussi du fait que le C++ est une évolution d'un langage pour y ajouter l'objet, puis le générique, plutôt qu'avoir créé un langage de 0, conçu les avoir tous les trois.

    Le pire, c'est qu'il manque encore plusieurs paradigmes à ce langage:
    _ fonctionnel *
    _ prog. par contrat *
    _ déclaratif
    _ ...

    *: support partiel en fait, grâce à l'attribut const pour le fonctionnel, et pour la prog par contrat, utiliser const, throw(), static et consort permet d'avoir une bonne indication des pré-conditions, post-conditions et invariants. Mais le langage ne favorise pas tant que ça un bon usage de ces façons de coder. Dommage, pour moi.


    HORS SUJET:

    Quant au troll classique de la lenteur de C++ contre C, avec des exemples bidon dans ce genre:
    write(1,"Hello World", 11); vs std::cout << "Hello World"; il faut se souvenir que les deux sont du code C++ valide. Raté, donc.
    A savoir d'ailleurs, que j'utilise toujours abondamment les printf/scanf, et que je n'aime pas du tout les flux, qui, je trouve, rendent le code peu esthétique (lignes super longues, entres autres).
    Mais il faut admettre qu'ils ont un grand intérêt quand on en vient à la manipulations de chaînes dont on ne connaît pas la longueur à l'avance. M'enfin, j'avoue, j'ai mon petit ensemble de classes pour gérer la situation, et elles ne sont pas basées sur les flux

    Pour les erreurs de compilations super longues de C++, c'est vrai, mais elles ne sont pas liées au langage lui-même, plutôt au fait que les lib standard de templates ne vérifient pas assez les assertions (voire pas du tout), ce qui engendre des expériences très pénibles.
    Bon, sur ce point, il faut aussi admettre que le dernier standard devrait améliorer les choses, au fur et à mesure.
    Toujours est-il qu'avec les 3 compilos (g++, clang++ et visual C++ 2008) que j'ai utilisés, la lisibilité de ces erreurs varie très fortement... Et parfois, compiler avec plusieurs compilos le même code permet de cadrer plus vite le problème réel.

  2. #22
    Expert éminent sénior
    Ce que tu dis est sans doute vrai pour les bons programmeurs, mais au vu de la demande, mieux vaut s'occuper des programmeurs "moyens"(les mauvais, on en tirera rien de toute façons). Et là, C++ a tout de suite moins de qualités. Clairement, dans les mains d'un Dieu, c'est un super-outil. Mais est-ce souvent le cas?
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  3. #23
    Expert éminent sénior
    Java redevient le langage qui génère le plus de recherches sur Internet
    Doit-il cette « popularité » à Android ou à ses failles ? Python progresse

    Mise à jour du 11/02/2013

    Comme d’habitude, il faut prendre l’index Tiobe avec des pincettes. Il n’en reste pas moins un des indicateurs de popularité les plus importants, notamment sur le long terme, pour voir des tendances.

    Dans son édition de février, Tiobe souligne les bonnes « performances » (en fait le nombre de requêtes effectuées sur Google, Wikipedia et autres Bing) de deux langages : Java et Python.

    Java continue donc son chassé-croisé avec le C. « Il est celui qui a le plus progressé sur ces six derniers mois avec + 2,03 %) », écrit Tiobe, qui l’explique par le succès grandissant d’Android.

    Quant à Python, il regagne des points dans l’index et « rivalise à nouveau avec le PHP pour devenir le langage interprété le plus populaire ».

    Tiobe souligne bien qu’il s’agit d’un concours de popularité et pas de déterminer si un langage est meilleur ou plus utilisé qu’un autre.

    Son Top 3 est complété par l’Objective-C. Dans le Top 20, les progressions les plus fortes concernent l’assembleur, MATLAB et Bash. On notera également un regain d’intérêt pour Visual Basic.


    Concernant Java, on peut aussi émettre l’hypothèse que la récente actualité – plus que chargée – autour de ses failles a contribué à soutenir le nombre de recherches faites sur le langage.

    Oracle vient d’ailleurs d’annoncer qu’un nouveau patch sera sorti mardi prochain, le 19 février, pour compléter celui sorti en début du mois.

    Source : Tiobe

    Et vous ?

    Java doit-il cette « popularité » à Android ou à ses failles ?

  4. #24
    Membre chevronné
    Je me demande si cette surveillance de la popularité des langages à 0,001% près est vraiment sérieuse...
    J'appelle "Point Traroth" le moment dans une discussion où quelqu'un parle des Bisounours. A partir de ce moment, toute discussion sérieuse devient impossible, puisque la légitimité d'une des parties pour exposer son point de vue est mise en cause. C'est juste un anathème, un moyen de décrédibiliser les autres sans avoir à discuter.

  5. #25
    Membre confirmé
    Java le langage Java la plateforme

  6. #26
    Membre émérite
    Citation Envoyé par Khaled.Noordin Voir le message
    Java le langage Java la plateforme
    Réponse , ou ici.


    Pour C# dans le classement on ne se préoccupe pas que ce soit Windows Phone, Windows, ASP.Net, MVC, de meme que Java et les autres languages...

  7. #27
    Membre averti
    Sympa comme classement. Mais bon, c'est vrai que je doute un peu de la pertinence quand même. Parce que si j'ai bien compris, ce classement est effectué selon les requêtes que l'on fait auprès de Google et consorts. Hors, et corrigez moi si je me trompe, de plus en plus de personnes utilisent des frameworks ou éventuellement des CMS.
    Donc moi il m'arrive bien plus souvent de taper "Django" dans Google, que Python. Et je pense que les adeptes du PHP doivent eux aussi taper des "Symphony, Wordpress, etc." Et pour Ruby, les personnes doivent pas mal taper "Ruby on rails".

  8. #28
    Modérateur

    Citation Envoyé par alex_vino Voir le message

    Pour C# dans le classement on ne se préoccupe pas que ce soit Windows Phone, Windows, ASP.Net, MVC, de meme que Java et les autres languages...
    Non, on parle bien de langages de programmation en francais, et de "languages" en anglais.

    Citation Envoyé par Atem18 Voir le message
    Sympa comme classement. Mais bon, c'est vrai que je doute un peu de la pertinence quand même.
    Comme tout classement, il a ses points faibles (et forts). Lorsque je cherche "man strcpy" dans un moteur de recherche, ou "demytifier scanf", est-ce que c'est comptabilise comme du C ? Il en sera de meme pour tous les langages qui ont des frameworks plus ou moins connus, ou des ensembles de normes s'y rapportant.

    Neanmoins, a supposer que la maniere de compter n'evolue pas au fur et a mesure du temps (*), l'evolution est interessante.

    (*) Je parle bien de la maniere de compter : par exemple, pour lister un framework, on cherche "framework mon_langage" dans X moteurs de recherche, et on prend la liste de toutes les Y premieres reponses distinctes, et ce quel que soit le langage.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  9. #29
    Modérateur

    La méthode est expliquée sur le site de Tiobe :
    The ratings are calculated by counting hits of the most popular search engines. The search query that is used is

    +"<language> programming"
    Il est sûr que ce n'est pas parfait, mais Tiobe ne prétend pas indiquer autre chose que le classement des langages par recherche avec le mot-clé "programming"
    Du coup, cela doit filtrer un peu l'effet "recherche concernant la faille de sécurité".

    Perso, j'ai déjà dis ici que j'aurais préféré que Tiobe ne mélange pas Java, C, C#
    avec d'autres outils comme TransaqSql, PL/SQL, etc. qui ne servent clairement pas à la même chose.
    Mais bon, c'est mieux que rien !
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cour...eloppons/java/

  10. #30
    Membre éprouvé
    +1 faut arrêter de publier ce torchon. de métiers à métiers , de pays à pays , la répartition de l'utilisation de tel ou tel langage est totalement différente. Ce classement ne veut rien dire.

  11. #31
    Futur Membre du Club
    Personnellement, dans mon entourage professionnel, sur les dernières années, j'ai vu l'explosion de JavaScript, la stagnation de Ruby, et la progression régulière de Python.

    Tiobe ne m’a pas permis d'anticiper cela...

  12. #32
    Membre émérite
    Citation Envoyé par raubarede Voir le message
    Tiobe ne m’a pas permis d'anticiper cela...
    Tu confond constat et anticipation concernant Tiobe.

    Contrairement a des statistiques de tendance comme Twitter le fait si bien ici on se base sur des fait concrets qui ne vont pas plus loin que le jour de création de la statistique.

    Quant on voit VB.Net etre l'un des languages avec la plus grande progression alors que son homologue C# est en chute on est en droit de se demander quel est la véracité de ces chiffres avec le concret, c'est a dire le nombre de développeur pour ce language. Personnellement ces chiifres ne sont pas en adéquation avec ce que je vois tous les jours.

    Le JavaScript qui baisse alors qu'en plus d'etre utilisé dans les application, serveur Web, smartphone (tous) et maintenant systemes d'exploitation (Windows 8) on le trouve en baisse, et meme si on y fait attention on pourrait dire que les sites Web (PHP notamment) n'utilisent pas JavaScript, ce qui est incohérent.

    Je vois plutot cette statistique comme le niveau des développeurs (due au langage qui est jeune ou bien son enseignement scolaire) pour chaque language, et non représentatif du monde professionel.

  13. #33
    Membre actif
    Les gens peuvent bien critiquer, le but de tiobe n'est pas de calculer les emplois offert dans un domaine mais bien le "web hype" autour des technos, et sa semble très bien fonctionner selon moi.

    Bien sur rien n'est parfait mais la pluspart du temp ce n'est pas si loin de realité selon moi.

  14. #34
    Modérateur

    Citation Envoyé par raubarede Voir le message
    Personnellement, dans mon entourage professionnel, sur les dernières années, j'ai vu l'explosion de JavaScript, la stagnation de Ruby, et la progression régulière de Python.

    Tiobe ne m’a pas permis d'anticiper cela...
    Ton entourrage professionnel n'est peut-etre pas representatif de ce que recherche la grande majorite des gens sur le net.

    Pour ma part, depuis 10 ans, mon entourrage professionnel tourne autour du C (pour le coeur de l'application) et de Java (pour les IHM). Pile poil les deux premiers langages du classement.
    Pour autant, mon entourrage professionnel n'est absolument pas representatif, puisque ce sont les deux seuls langages utilises.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  15. #35
    Membre expérimenté
    Citation Envoyé par gangsoleil Voir le message
    Ton entourrage professionnel n'est peut-etre pas representatif de ce que recherche la grande majorite des gens sur le net.
    Dans mon entourage professionnel, on est assez malins pour avoir la doc des outils qu'on utilise rapidement à disposition sans avoir besoin d'aller à la pêche à l'info qui va bien via une recherche foireuse google...

    Tiobe ne permet de tirer aucune conclusion. Donc ça sert à rien...

  16. #36
    Membre émérite
    Je pense que les failles dans Java on permit un meilleure référencement que le développement Android. Ne serait-ce que les longues discussions et troll sur les failles de sécurité ont bien fait augmenter la réputation du langage, bien que cela soit dans le négatif.

  17. #37
    Expert éminent sénior
    Citation Envoyé par alex_vino Voir le message
    (.../...)
    Quant on voit VB.Net etre l'un des languages avec la plus grande progression alors que son homologue C# est en chute on est en droit de se demander quel est la véracité de ces chiffres avec le concret, c'est a dire le nombre de développeur pour ce language. Personnellement ces chiffres ne sont pas en adéquation avec ce que je vois tous les jours.(.../...)
    Gangsoleil a toujours raison, et sa réponse générale est juste. Je vais juste entrer dans le détail du DOT.NET.

    VB.NET est plus verbeux que C#, et C# est plus proche de Java. C'est pourquoi les gens formés en école d'informatique, nourris au C/C++ ou au java, préfèrent C#. Si c'est eux que tu fréquentes, alors ton ressenti est inévitable. Pourtant, pour quelqu'un qui n'a pas ce genre de formation(genre moi), la syntaxe VB.NET est plus amicale. Et de nombreux non-professionels ont des besoins en programmation, et pour eux le VB.NET est un excellent choix : il offre les mêmes capacités que le C#, avec en plus un vocabulaire moins hostile.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  18. #38
    Membre émérite
    Citation Envoyé par el_slapper Voir le message
    Gangsoleil a toujours raison, et sa réponse générale est juste. Je vais juste entrer dans le détail du DOT.NET.

    VB.NET est plus verbeux que C#, et C# est plus proche de Java. C'est pourquoi les gens formés en école d'informatique, nourris au C/C++ ou au java, préfèrent C#. Si c'est eux que tu fréquentes, alors ton ressenti est inévitable. Pourtant, pour quelqu'un qui n'a pas ce genre de formation(genre moi), la syntaxe VB.NET est plus amicale. Et de nombreux non-professionels ont des besoins en programmation, et pour eux le VB.NET est un excellent choix : il offre les mêmes capacités que le C#, avec en plus un vocabulaire moins hostile.
    J'ai développé en VB.Net pendant 6 ans et me suis formé au C# pour aujourd'hui ne coder que en C#. J'ai arreté VB.Net parce les documentations/tutoriels/aides se raréfient contrairement a C#, et qu'aujourd'hui VB.Net représente moins de 1% des offres d'emplois par rapport a C#.
    Certes il offre les memes capacités mais pas la meme syntaxe (ce que tu peux faire en 1 ligne en VB.Net tu pourras etre amené a le faire en 20 en C# et vice-versa), et il y a un probleme de pérennité de VB.Net. Concernant la productivité entre les deux il n'y a pas photo, en tout cas on se lasse vite de répéter cette verbositer de VB.Net.
    Tu parles de vocabulaire hostile de C#, je ne sais pas qui de VB.Net ou C# est plus hostile, mais si tes développeurs ne sont pas capables d'apprendre le C# c'est que tu as frappé a la mauvaise porte.

  19. #39
    Membre du Club
    Je fais du VB.NET et du C# depuis 2004. Lorsque je fais une recherche sur internet, je commence toujours par "dotnet" et pas par un langage précis. traduire de l'un vers l'autre n'est pas vraiment un problème (bien qu'un jour, je me suis pris la tête avec un TypeOf, qui existe dans les deux langage, mais qui ne sont pas du tout pareil )

    AHMA, pour ce qui est de la verbosité de VB.NET, elle est bien moins problématique que beaucoup de gens le disent. L'intellisense est meilleur en VB, et j'apprécie la lisibilité des blocs de code. Ce qui, je pense ne nuit pas à ma productivité.

  20. #40
    Membre émérite
    Citation Envoyé par rvs75 Voir le message
    Je fais du VB.NET et du C# depuis 2004. Lorsque je fais une recherche sur internet, je commence toujours par "dotnet" et pas par un langage précis. traduire de l'un vers l'autre n'est pas vraiment un problème (bien qu'un jour, je me suis pris la tête avec un TypeOf, qui existe dans les deux langage, mais qui ne sont pas du tout pareil )

    AHMA, pour ce qui est de la verbosité de VB.NET, elle est bien moins problématique que beaucoup de gens le disent. L'intellisense est meilleur en VB, et j'apprécie la lisibilité des blocs de code. Ce qui, je pense ne nuit pas à ma productivité.
    Quand je recherche de l'aide je commence toujours par "c#", d'abord parce que c'est rapide a écrire, ensuite c# a beaucoup plus de ressources et enfin parce que j'utilise surtout C# (meme quand je développe en VB.Net je commence par C# et convertit par moi-meme ensuite si ce n'est pas déja affiché dans les 2 langages). Tu peux aussi juste taper le nom de ta classe ou namespace, je le fais souvent, mais Tiobe par exemple ne prend pas ca en compte.

    Je dirais que l'IntelliSense est kiff-kiff, juste que C# stocke la documentation en Cache et n'est donc pas toujours de suite affichée.
    Par contre VB.Nuit beaucoup a ma productivité comparé a C# car: Code plus long a écrire, davantage de code donc plus difficile a relire et maintenir, peu de ressource.