Quel langage pour l'avenir ?

Bonsoir à toutes et tous!

J’aimerais apprendre un langage qui répondrait à ces différents critères:

  1. Me permettant de réaliser rapidement de petites applications avec GUI
  2. Qui s’intègre bien au web
  3. Qui n’est pas trop ardu et/ou “exotique” (non, pas de Brainf*ck !)
  4. Possédant de belles années devant lui avant de sombrer dans l’oubli
  5. Qui ne casse pas tout à chaque évolution
  6. Qui ne serait pas qu’un effet de mode…

Je précise que j’ai commencé la programmation il y a longtemps avec du BASIC (je sais, c’est pas de bol!) puis j’ai fait de l’assembleur et du Turbo Pascal durant mes études.

Je suis actuellement une formation de webmaster (2e année), donc (X)HTML, CSS, JavaScript (PHP et Flash pour bientôt…).

D’après les infos glânées ça et là, je résume ici les impressions exprimées par différents intervenants:

Perl6: pas de compatibilité ascendante; par défaut dans Fedora 12 et remplacé par Python3 dans Fedora 13; tarde trop et est en recul
Python3: pas de compatibilité ascendante; trop rigide avec les TAB (il est vrai que c’est ch*ant!)
C: inadapté aux besoins actuels paraît-il
C#/VB/.NET: laisse tomber c’est Micro$oft (ça c’est moi qui le dit)
Java: trop lourd, trop de méthodes qu’à la fin on s’y perd
Lisp: trop de parenthèses; pas adapté au web
PHP: “langage inventé au fond d’un garage par des bidouilleurs”

Bref! Les principaux langages sont loin d’être parfaits. De plus, beaucoup pensent (tout comme Linus d’ailleurs) que C++ n’a fondamentalement rien apporté et que les langages orientés objet ne sont pas la panacée. Mais en existe-t-il seulement un ?

Que penser de Ruby? De Rebol? Du langage D? De Pascal-objet?

Dur dur de faire un choix d’autant plus que je n’ai pas très envie d’apprendre un nouveau langage tous les 5 ans pour cause de “péremption”.

C’est donc un peu las que je vous pose la question en espérant que l’un ou l’une d’entre vous arrivera à partager son enthousiasme pour un langage répondant aux critères plus haut et qui ne sera pas devenu obsolète une fois que je m’y serais habitué !

Je suis impatient de lire vos réponses :smiley:

COBOL et/ou Fortran

Je déplace dans la section appropriée.

Edit : Je sais pas où tu as glané tes informations mais j’aimerais bien savoir où que je n’y aille pas. Fedora remplacerais Perl6 (pas encore sortie) par Python3 ? Ça signifie qu’ils se coltinent tout les code existant en perl pour le passer en python et ça ce serais du troll de compétition.

Plus sérieusement c’est quoi ce que tu entends par « qui s’intègre au web » ? Tu veut qui s’exécute au niveau serveur (en CGI donc) ou au niveau client ?

Perl/PHP/Python/Ruby sont les langages les plus classiques du web. Ruby on Rail (ROR) est un framework qui a créé une petite révolution dans la programmation web avec la notion d’ORM et l’encapsulation du javascript (tu n’écris plus de javascript mais uniquement du ruby). Avec PHP c’est symphony qui est le grand framework actuel, mais zend est plus simple à utiliser. Avec python tu as django qui fait beaucoup parler de lui. Pour perl c’est le parent pauvre du web actuellement.

Mais (car il y a un mais) Java c’est pas mal non plus pour faire du web, il n’y a rien de compliqué avec Java, je trouve même que c’est plus simple qu’avec PHP ou Python grâce au typage statique. Il bénéficie d’une énorme panoplie d’outils pour faire tout et n’importe quoi. Quand on sort du web il a l’avantage d’être multiplateforme (plus que python par exemple) et multiusage.

C’est lourd oui, si tu as besoin de faire du temps réel ou que tu paie ton hébergeur en fonction des ressources que tu occupe oui c’est pas le bon choix. Si tu te prend énormément de requêtes aussi tu va avoir mal, mais ça conviens parfaitement pour 80% des usages. C’est un investissement important mais on peu faire de belles choses avec JSF ou GWT. Tu manipule ton interface web de manière très pratique.

Après moi je supporte pas Java qui pu l’industrialisation, mais chacun ses goûts.

Salut.

Difficile de trouver un langage qui réponde à tous ces critères, surtout quand on voit tes “impressions” sur eux…

Pour réaliser rapidement un programme en GUI un langage comme python est tout indiqué et facile à assimiler. Sinon ce n’est pas un, mais plusieurs langages qu’il te faudra apprendre. Aucun n’était parfait, tous ayant leurs particularités qui les rendent plus ou moins adapté à chaque usage.

[quote=“Cver1”]Salut.

Difficile de trouver un langage qui réponde à tous ces critères, surtout quand on voit tes “impressions” sur eux…

Pour réaliser rapidement un programme en GUI un langage comme python est tout indiqué et facile à assimiler. Sinon ce n’est pas un, mais plusieurs langages qu’il te faudra apprendre. Aucun n’était parfait, tous ayant leurs particularités qui les rendent plus ou moins adapté à chaque usage.[/quote]

Je m’attendais à ce genre de réponse qui en fait (et certainement de manière involontaire) me laisse dans l’interrogation la plus totale… :wink:

Je précise néanmoins que je parlais des “impressions” de différents intervenants ça et là et pas de mon point de vue personnel sur des langages que je ne connais pas (à part Python [un peu] qui m’embête avec ses indentations obligatoires).

Merci tout de même !

@MisterFreez: sérieux pour Cobol/Fortran?

[quote=“MisterFreez”]COBOL et/ou Fortran

Je déplace dans la section appropriée.

Edit : Je sais pas où tu as glané tes informations mais j’aimerais bien savoir où que je n’y aille pas. Fedora remplacerais Perl6 (pas encore sortie) par Python3 ? Ça signifie qu’ils se coltinent tout les code existant en perl pour le passer en python et ça ce serais du troll de compétition.

Dans différents topics de developpez.com… Pour ce qui est de Perl6, je pense que fedora fournissait Perl6 (dans sa “version” Rakudo) en plus de Perl5 mais je n’ai pas fait le constat moi même (je n’aime pas trop fedora). En tout cas, j’ai bien lu que Perl6 laissait sa place à Python3 dans fedora 13.

Plus sérieusement c’est quoi ce que tu entends par « qui s’intègre au web » ? Tu veut qui s’exécute au niveau serveur (en CGI donc) ou au niveau client ?

D’après mon prof, JavaScript aurait un regain de popularité côté client, donc ce serait plutôt côté serveur pour moi…

Perl/PHP/Python/Ruby sont les langages les plus classiques du web. Ruby on Rail (ROR) est un framework qui a créé une petite révolution dans la programmation web avec la notion d’ORM et l’encapsulation du javascript (tu n’écris plus de javascript mais uniquement du ruby). Avec PHP c’est symphony qui est le grand framework actuel, mais zend est plus simple à utiliser. Avec python tu as django qui fait beaucoup parler de lui. Pour perl c’est le parent pauvre du web actuellement.

Pour le PHP, l’avis de mon précédent post est celui de mon prof (qui est développeur Java au départ). Au sujet de Ruby, c’est un langage qui me titille. Aurais-tu plus de détails à me donner ? Une expérience à me livrer?

Mais (car il y a un mais) Java c’est pas mal non plus pour faire du web, il n’y a rien de compliqué avec Java, je trouve même que c’est plus simple qu’avec PHP ou Python grâce au typage statique. Il bénéficie d’une énorme panoplie d’outils pour faire tout et n’importe quoi. Quand on sort du web il a l’avantage d’être multiplateforme (plus que python par exemple) et multiusage.

C’est lourd oui, si tu as besoin de faire du temps réel ou que tu paie ton hébergeur en fonction des ressources que tu occupe oui c’est pas le bon choix. Si tu te prend énormément de requêtes aussi tu va avoir mal, mais ça conviens parfaitement pour 80% des usages. C’est un investissement important mais on peu faire de belles choses avec JSF ou GWT. Tu manipule ton interface web de manière très pratique.

Après moi je supporte pas Java qui pu l’industrialisation, mais chacun ses goûts.
Ce côté là ne m’attire pas trop non plus!
[/quote]

Si je résume mon parcours personnelle…

  • C pour un projet scientifique qui nécessitait un langage compilé puissant et rapide.
  • Python pour un petit programme scientifique qui nécessitait un GUI mais peu de puissance de calcul.
  • Java pour développer un plugin ImageJ toujours pour un projet de science.
  • Maintenant du PHP pour le développement d’un site web.

Bref… Autant de d’impératifs, pour autant de langage que j’ai du (en partie du moins) assimiler.

Tu peux faire des GUI en PHP, ya GTK-PHP(gtk.php.net/). Après, je sais pas ce que ça vaut …

Salut,

[quote]Dur dur de faire un choix d’autant plus que je n’ai pas très envie d’apprendre un nouveau langage tous les 5 ans pour cause de “péremption”.
[/quote]

Mon expérience personnelle (1951 -2010) : Tu devrais changer de métier :laughing:

[quote=“VonRobot”][quote=“MisterFreez”]COBOL et/ou Fortran

Je déplace dans la section appropriée.

Edit : Je sais pas où tu as glané tes informations mais j’aimerais bien savoir où que je n’y aille pas. Fedora remplacerais Perl6 (pas encore sortie) par Python3 ? Ça signifie qu’ils se coltinent tout les code existant en perl pour le passer en python et ça ce serais du troll de compétition.

Dans différents topics de developpez.com… Pour ce qui est de Perl6, je pense que fedora fournissait Perl6 (dans sa “version” Rakudo) en plus de Perl5 mais je n’ai pas fait le constat moi même (je n’aime pas trop fedora). En tout cas, j’ai bien lu que Perl6 laissait sa place à Python3 dans fedora 13.[/quote][/quote]
Ce sont des foutaises. Fedora 13 intègre python3 (en plus de python 2.6), mais ça n’impacte en rien perl6. C’est comme si on affirmait que Fedora intègre maintenant le langage D et vire donc le C/C++ de la distribution :
linuxfr.org//2010/05/25/26889.html

[quote=“VonRobot”][quote=“MisterFreez”]Plus sérieusement c’est quoi ce que tu entends par « qui s’intègre au web » ? Tu veut qui s’exécute au niveau serveur (en CGI donc) ou au niveau client ?

D’après mon prof, JavaScript aurait un regain de popularité côté client, donc ce serait plutôt côté serveur pour moi…[/quote][/quote]
Le javascript c’est juste affreux à programmer. Mais les alternatives sont moins répandue (Flash, Silverlight et Java). Mais avec l’aide de bonnes technologies tu peut ne plus avoir à toucher au javascript (JSF, RoR, GWT, …) ou te simplifier la vie (JQuery).

[quote=“VonRobot”][quote=“MisterFreez”]Perl/PHP/Python/Ruby sont les langages les plus classiques du web. Ruby on Rail (ROR) est un framework qui a créé une petite révolution dans la programmation web avec la notion d’ORM et l’encapsulation du javascript (tu n’écris plus de javascript mais uniquement du ruby). Avec PHP c’est symphony qui est le grand framework actuel, mais zend est plus simple à utiliser. Avec python tu as django qui fait beaucoup parler de lui. Pour perl c’est le parent pauvre du web actuellement.

Pour le PHP, l’avis de mon précédent post est celui de mon prof (qui est développeur Java au départ). Au sujet de Ruby, c’est un langage qui me titille. Aurais-tu plus de détails à me donner ? Une expérience à me livrer?[/quote][/quote]
C’est un vrai langage objet qui a le bénéfice d’avoir un ou deux framework très bien fait. Il parait qu’il est plus lent que les autres mais faut pas trop t’arrêter à ça (disons que ce serais dommage de chercher de la performance là où tu n’en a pas besoin).

[quote=“VonRobot”][quote=“MisterFreez”]Mais (car il y a un mais) Java c’est pas mal non plus pour faire du web, il n’y a rien de compliqué avec Java, je trouve même que c’est plus simple qu’avec PHP ou Python grâce au typage statique. Il bénéficie d’une énorme panoplie d’outils pour faire tout et n’importe quoi. Quand on sort du web il a l’avantage d’être multiplateforme (plus que python par exemple) et multiusage.

C’est lourd oui, si tu as besoin de faire du temps réel ou que tu paie ton hébergeur en fonction des ressources que tu occupe oui c’est pas le bon choix. Si tu te prend énormément de requêtes aussi tu va avoir mal, mais ça conviens parfaitement pour 80% des usages. C’est un investissement important mais on peu faire de belles choses avec JSF ou GWT. Tu manipule ton interface web de manière très pratique.

Après moi je supporte pas Java qui pu l’industrialisation, mais chacun ses goûts.
Ce côté là ne m’attire pas trop non plus!
[/quote][/quote]
C’est plus un problème de technologies autour que de langage.

bin alors regarde lazarus qui est un clone de delphi qui utilise fpc (freepascal).
Je dois être un peu plus agé que toi car je n’ai vu que la pascal (en turbo ca doit aller plus vite)

Le problème est pour le web.

Tu comptes héberger un site? php est facile à apprendre.

sinon il y a un module free pascal pour apache wiki.freepascal.org/FPC_and_Apache_Modules
Je n’ai pas testé.

edit;le lien n’était pas bon

Regarde du coté de Ruby et son framework online (Ruby on rails)

Je vous réponds enfin!

Merci pour tous vos conseils et expériences !

@ggoodluck: oui, je sais, dans ce (futur) métier, va falloir se tenir au courant en permanence. Tu as raison de le souligner.

@limax: mon pascal est loin derrière moi et tant qu’à faire, autant apprendre un langage plus “actuel” mais ton idée était bonne!

@misterfreez: je pense que le meilleur moyen et d’essayer et de voir avec lequel je me sens plus à l’aise. Je suis donc en train de m’initier à Ruby et je recommence Python (version 3) avec le bouquin de Gérard Swinnen (heureusement mis à jour pour la version 3).

A ce propos, je suis un peu étonné des résultats obtenus après de simples opérations avec modulo.

[code]Python 3.1.2 (release31-maint, Sep 26 2010, 13:51:01)
[GCC 4.4.5] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

5.1%2
1.0999999999999996
[/code]

et pour Ruby:

[code]vonrobot@squeeze:~$ irb --simple-prompt

5.1 % 2
=> 1.0999999999999996

5.1 % 2.0
=> 1.0999999999999996

exit[/code]

Le reste de la division ne devrait-il pas être 1.1 ??

Bonjour,

[quote=“VonRobot”]
Le reste de la division ne devrait-il pas être 1.1 ??[/quote]

On travaille ici sur des nombres binaires, or 5.1 ne peut pas s’écrire en binaire avec un nombre fini de chiffres après la virgule.

>>> 5.1 5.0999999999999996

En fait, il calcule 5.0999999999999996 modulo 2.

Tiens, c’est marrant dans le support que j’utilise, c’est 1.1

http://ruby.developpez.com/cours/apprenez-ruby/?page=page_1

Est-ce par souci de simplification que le “prof” aurait modifié la valeur dans son terminal ?

Allons tous ensemble vers le langage de l’avenir:

http://fr.wikipedia.org/wiki/Paradigme_(programmation) :118

[quote]Un Langage pour les gouverner tous, un langage pour les trouver
Un Langage pour les amener tous et dans les ténèbres les lier
[/quote]
Ça n’existe que dans le seigneur des anneaux ça … (ça marche aussi avec paradigme et framework)

Il n’y a que moi qui ne trouve aucun sens au modulo sur des nombres décimaux ?

nan ya pas que toi misterfreeze

sinon tu peux prendre n’importe quel langage dans 5ans il sera dépassé
donc essayer de perdre son temps a dire je vais apprendre tel langage parce que c’est le langage qui tue tout qui va durer 50 ans c’est :laughing:

moi ce que je peux te conseiller c’est de regarder ce que tu as besoin de faire principalement (le langage universel il est pas trop au point on dira :smiley: )
ensuite dans ce que tu veux faire tu regarde ce qui existe comme solution et la tu choisie celle qui te plait

il te faut apprendre un langage parceque ça te plait et non parcequ’il le faut.
dans ton les cas il faudra que tu te mette à jour donc en apprenant d’autre langage et/ou en suivant bien les évolutions des langages

ps: si c’est purement professionnel regarde les langage qui sont recherché, qui ont la cote

Foutaise ! :smiley:
Le C, le C++, le Pascal et le fortran par exemple ont une nouvelle version tout les 10 à 20 ans minimum.

De plus les langages n’évoluent pas tant que ça perl garde une compatibilité complète avec l’existant (on verras pour perl 6). Python 2 est resté plus bien plus de 5 ans si je ne m’abus. Java est toujours en version 1.x.

La question n’est pas de réapprendre où non un langage mais de sa pérennité. Si j’avais vraiment peur d’avoir à réapprendre un nouveau langage (réapprendre ce que c’est qu’un objet, qu’une fonction et une boucle :open_mouth: ), je ne choisirais pas Java. Pour le reste des langages un peu connu (et sus-cité) il n’y a pas de problème de pérennité.

c’est pour ça que j’ai également dis ça

mais il reste vrai quand meme que les langage que tu cite sont moins utilisé qu’avant, je dis pas que cela soit bien et ou qu’ils sont obsolètes mais
ça change le C et C++ et surtout utilisé dans le monde linux aujourd’hui en entreprise … plus trop pour ne pas dire plus du tout
enfin je sais qu’il est encore beaucoup utlisé (nokia, intel etc) mais ce que je veux dire c’est que la majorité des entreprise actuelle qui développe des nouveaux projet commerciaux (non open source) ne sont pas en C ou C++ ou autre vieux langage qui sont très bien mais moins productif que du java ou objective-C ou C#