Forum Programmation.autre Quelle langage de programmation me conviendrais ?

Posté par  .
Étiquettes :
0
25
juil.
2006
Salut !
je cherche a connaitre un second langage de programmation , je connais deja le python , voila ce que je cherche :

Du Natif (possibiliter de compiler en natif sur Windows,Unix,Mac , et utilisation des libs (dll,so))
De la Vitesse (plus rapide que python)
De la Legereté (pas 3mo pour un Hello world en console)
De la Productivié (plus productif que java :))
Orienté Objet (parceque j'ai toujour fait comme ca)
Pas de pointeur (ca fait peur :/)

J'ai pensé a l'ocaml qui est sympa , mais je comprend pas grand chose a la programmation fonctionnel meme si ca a l'air puissant

merci :)
  • # Idée

    Posté par  (site web personnel) . Évalué à 3.

    A part l'histoire du compiler le php pourait être adapté...

    C'est rapide, léger, productif, orienté objet(php5) et y a aucun pointeur...

    Après perl peux être adapté également (lui on peux le compiler si mes souvenirs sont bons)

    (php et perl sont plus rapide que python, surtout si tu utilise php-apc pour précompiler les fichiers en chunk mémoire partagée apache...)

    Après sinon va voir du côté du QT4.2 (bon y a des pointeurs, mais c'est surement beaucoup plus rapide qu'un langage interprété)

    Pas taper, c'est seulement des idées ;)

    ps : php s'apprend relativement vite, mais est très long a maîtriser (a cause de la palanquée de fonctions disponibles), mais a une très très bonne doc :
    http://fr.php.net/readdir
    (http://fr.php.net/nom_fonction et zou direct la doc et des exemples utiles, enfin souvent ;)
    • [^] # Re: Idée

      Posté par  . Évalué à 2.

      ca m'interesse pas de faire du web :)
      c'est juste pour des applications
      j'ai deja fait du php , j'ai detesté , j'utilise python pour faire du web
      • [^] # Re: Idée

        Posté par  . Évalué à 4.


        ca m'interesse pas de faire du web :)

        Euh ... t'es au courant que PHP est un langage interprété comme un autre qui peut très bien être utilisé en dehors de l'aspect "web".


        c'est juste pour des applications

        Comme à peu près tout les langages de programmation en dehors de XML, HTML et LaTeX(...) (si toutefois on les considère comme langage de programmation).


        j'ai deja fait du php , j'ai detesté , j'utilise python pour faire du web

        Cool, mais on pouvait pas savoir.

        Bon, sinon, je t'invite à regarder le C++. Les pointeurs, ça met pas bien longtemps à apprendre, et ça peut s'avèrer très puissant.
        De plus, tu trouveras difficilement plus rapide que le C++ (le C? l'asm ?).
        • [^] # Re: Idée

          Posté par  . Évalué à 0.

          l'ocaml est plus rapide que le C++ mais moin rapide que le C :) (le code est transformer en ASM pour se compiler)

          le C++ , j'ai deja essayer plein de fois de comprendre les pointeurs , mais rien :(

          je vient de voir l'erlang , ca a l'air pas mal du tout !
          mais je sait pas si ca peut se compiler en natif , ni si c'est objet (pas l'impression) ?

          merci

          pour le php , non non non :p
          j'ai bien dit du natif , je veut que le client n'ai RIEN a installer en plus de l'application
          • [^] # Re: Idée

            Posté par  . Évalué à 4.

            l'ai bien dit du natif , je veut que le client n'ai RIEN a installer en plus de l'application


            Si tu n'a pas de contrainte particulière en ce qui concerne la licence, rien ne t'empêche de filer au client un installateur qui installe l'interpréteur (php, python, perl ou autre) et l'application.

            Sinon... le C tout simple permet de faire de l'orienté objet ( cf. http://developer.gnome.org/arch/gtk/object.html ).
            • [^] # Re: Idée

              Posté par  . Évalué à 1.

              le probleme c'est que mes programmes sont fait pour etre legé et utilisable par nimporte qui ....

              si non je vois pas pourquoi avec la programmation je devrais utiliser les pointeurs .. :/
              • [^] # Re: Idée

                Posté par  . Évalué à 2.

                Si l'utilisateur utilise un système réellement user-friendly et prêt pour le desktop comme GNU/Linux, il y a de forte chance pour que les interpréteurs php, python et perl soient présents par défau, donc aucun problème ! Après, si l'utilisateur préfère utiliser un autre système... :)
        • [^] # pointeurs...

          Posté par  . Évalué à 4.

          Surtout qu'à partir du moment où tu fais de l'orienté objet tu as des pointeurs, même s'ils portent un autre nom pour éviter de faire peur (d'ailleurs il faudrait dire à Sun que dans Java ils ont laissé « pointer » dans NullPointerException).
  • # Pourquoi changer?

    Posté par  . Évalué à 2.

    Salut,
    Pourquoi changer alors, python peut remplir toutes tes exigences, seul la vitesse peut rester un problème et encore, avec le module psyco ça accélère pas mal l'éxécution.
    • [^] # Re: Pourquoi changer?

      Posté par  . Évalué à 1.

      c'est pas la vitesse le plus gros probleme pour python
      c'est la distribution , sur linux , tu doit avoir toute les libs dont tu a besoin d'installer
      sur windows , tu doit demander l'interpreteur + toutes les lignes dont tu a besoin :/
      c'est beaucoup trop !
      et Py2Exe genere un .exe ENOOOOOOORME (12Mo pour afficher une fenetre wx Hello World ..)
      • [^] # Re: Pourquoi changer?

        Posté par  (site web personnel) . Évalué à 2.

        En même temps, faudra m'expliquer dans quel langage tu n'as pas besoin des libs que tu utilise !! Je ne connais pas de langage qui inclut de base WxWidget par exemple. Vu que Wx est en C/C++, il te faudra des bindings si tu n'utilise pas de C/C++ de toutes les façons (en plus de Wx bien sûr).

        Sous win : où est le problème ? Si tu utilises du logiciel libre, et bien tu peux distribuer Python + les libs supplémentaires libres dans ton installeur, qui créé aussi les bons raccourcis qui vont bien et voilà, l'utilisateur n'y voit que du feu.

        Quant à py2exe, si 12 Mo pour un 'hello world' c'est plutôt gros, il faut voir qu'il y a la vm et cie dedans. Donc un programme 3 fois plus gros qu'un 'hello world' (ce qui n'est pas dur !) ne prendra pas 36 Mo du tout, mais sûrement 12 Mo aussi.
  • # plop

    Posté par  (site web personnel) . Évalué à 2.

    natif, productif, rapide, léger, objet et pas de pointeur : \o/ Eiffel \o/ ou ADA
    • [^] # Re: plop

      Posté par  (site web personnel) . Évalué à 2.

      SmartEifel on précise, parce que l'implémentation de Meyer est assez lente.
      http://smarteiffel.loria.fr/

      Sinon tu as Lisaac, conçu dans le même labo qui est 30 % plus rapide qu'Eiffel et objet à prototype lui ("plus objet" donc) .

      Mais pour le moment la lib Eiffel est beaucoup plus complète.

      « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

      • [^] # Re: plop

        Posté par  (site web personnel) . Évalué à 1.

        lissac ca pue c'est pas libre (tm)
        • [^] # Re: plop

          Posté par  . Évalué à 0.

          ça pue parce que ce n'est pas libre ?

          Ou bien ça pue tout court, ET en plus ce n'est pas libre ?
  • # Ada \o/

    Posté par  . Évalué à 5.

    - Du Natif : y'en a, gnat produit des binaires pour la plateforme cible, à partir d'un source commun

    - De la Vitesse : la norme du langage est tellement rigourteuse que l'optimiseur du compilateur est considéré comme un des plus efficace.

    - De la Legereté : je sais plus, il me semble que les binaires sont pas optimaux en taille, mais ça reste

    - De la Productivié :oui, et en plus, si on code bien avec une bonne utilisation des types, quand ça compile, ça marche tellement le langage est sévère au niveau des types.

    - Orienté Objet : Ada 95 quand même

    - Pas de pointeur : ils existent en Ada, mais j'ai travaillé dans un contexte indus en Ada, et l'utilisation des pointeurs était interdit, on se démerde très bien sans.
  • # mono/C#

    Posté par  (site web personnel) . Évalué à -1.

    Ben mono/C#.
    Répond à tous les critères à priori.
    • [^] # Re: mono/C#

      Posté par  (site web personnel) . Évalué à 3.

      Quel intérêt de me moinsser ? C'est si inutile que ca de citer une solution parmis d'autre surtout quand elle semble répondre à tous les besoins ?
      Alors ok, je vais reprendre les points 1 par 1 :
      Du Natif : mono utilise un modèle d'environnement d'exécution basé sur une compilation native à la volée ou même à l'avance.
      De la Vitesse : C'est plus rapide que Python, mais c'est pas aussi rapide que du C.
      De la Legereté : le Hello world fait environ 3Ko.
      De la Productivié : c'est subjectif, mais c'est à mon goût plus productif que Java. (je parle du langage et de son framework, pas des outils/IDE associés)
      Orienté Objet : c'est purement objet (modèle classique classe/instance)
      Pas de pointeur : existe, mais juste pour des cas particulier d'optimisation, bref on peut très bien s'en passer, et j'ai encore vu personne les utiliser. C'est plus un "bonus" qu'un truc qui fait peur.
      • [^] # Re: mono/C#

        Posté par  . Évalué à 0.

        pas mal pas mal !
        mais il me semble que le C# se compile en CLI et pas en natif , non ?
        je compte bientot avoir un mac , ca fonctionnera dessus ?
        c'est pas aussi chiant sur certains points? (j'aimais pas swing , j'aimais pas la gestions des fichiers , j'aimais pas les listener pour les UI)
        • [^] # Re: mono/C#

          Posté par  (site web personnel) . Évalué à 2.

          mais il me semble que le C# se compile en CLI et pas en natif , non ?
          Oui, le compilateur C# compile en visant la CLI, mais l'environnement d'exécution mono se charge ensuite de compiler ce nouveau code en code natif, soit au dernier moment juste avant l'exécution, soit à la demande.
          Oui, ca fonctionne sur Mac.
          c'est pas aussi chiant sur certains points? (j'aimais pas swing , j'aimais pas la gestions des fichiers , j'aimais pas les listener pour les UI)
          Ben y'a plusieurs toolkit graphiques, après tu utilises celui qui te plaît le mieux : GTK, Cocoa (pour mac), WinForms, wxWidget, Qt, etc.
          j'aimais pas les listener pour les UI
          En C# y'a la notion d'événement, qui revient à faire des listeners mais à mon sens en plus efficace et sans la lourdeur de la mise en place d'interface pour les listeners.
          • [^] # Re: mono/C#

            Posté par  . Évalué à 0.

            bon j'ai testé .. mais il faut obligatoirement avoir l'environnement MONO installer sur l'OS pour pouvoir lancer l'application , donc c'est pas super super , surtout que sur windows , impossible de lancer un application GTk# en double-clic , obliger de faire un fichier bat avec "mono monapp.exe"
            bref ca a le meme probleme que python ...
            • [^] # Re: mono/C#

              Posté par  (site web personnel) . Évalué à 2.

              Sous linux tu peux créer un exécutable qui "embarque" mono et les dépendances dans un même binaire.
              Sous Windows, tu peux lancer avec un double click les exécutables créé avec GTK#, mais il faut pour cela installer le GTK# installer for windows disponible sur le site de novell. Sinon c'est un exécutable windows normal. De plus généralement on aime bien faire sous Windows une GUI à base de WinForms qui tournent nativement sous Windows (avec le framework .NET)
  • # D...?

    Posté par  (site web personnel) . Évalué à 2.

    A peu près la même problématique, lis mon commentaire:
    http://linuxfr.org/comments/722917.html#722917

    Tu peux aussi envoyer un message à l'tilisateur pour avoir un retour d'expérience, ça peut valoir le coup...
  • # Quelques remarques....

    Posté par  (site web personnel) . Évalué à 8.

    1) Sauf ton respect, les 'programmeurs' de ma connaissance qui avaient peur des pointeurs n'étaient pas des bons programmeurs, et avaient tendance à faire de pieds et des mains pour ne pas en utiliser... Ça donnait bien souvent des solutions simplistes, mais pas simples (comprendre : mauvaises) ! Conclusion : utilise des pointeurs jusqu'à ne plus en avoir peur !! (ce qui ne t'empêche pas d'utiliser en plus un langage sans pointeurs)

    2) Puisque tu fais déjà du Python, pourquoi pas continuer ainsi, mais recoder les parties critiques en C (ce qui rejoint le 1)), et les binder à ton code Python, avec ctype ou swig. Tu peux aussi utiliser Pyrex.

    3) Sous Unix, Python est souvent là, ou pas difficile à installer (et puis un mec sous Unix n'est pas un utilisateur lambda...). Sous win, il existe Py2exe pour faire un exécutable standalone.

    4) C'est une bonne chose d'essayer d'autre langage, rien pour s'ouvrir l'esprit (pas besoin de devenir un gourou dans chacun d'eux). Le libre dispose de plein de langages de qualité : C, Python, Ada, erlang, C#, Ocaml.....

    Bon courage ! :)
  • # re

    Posté par  (site web personnel) . Évalué à 1.

    xharbour repond a tout tes criteres etant donné que tu a pas precisé le fait d'avoir besoin d'un gui :)

    http://www.xharbour.org/

    Langage a la pascal, compilation native pour chaque plateforme, acces a xbase etc ...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.