Journal Python et Java

Posté par .
Tags : aucun
0
23
déc.
2003
Voilà un message trouvé sur les forums de gnomedesktop.org, posté par un Anonymous George. Rien d'extraordinaire mais je trouve ses arguments pertinents.

« Why do you say that Python is much higher level than Java, btw?

i'm not the person who made that statement, but i would defend it. i'd say Python is higher level because it generally gets itself more out of the way of your problem; there is generally less syntactic overhead to it as compared with Java, less verbosity that needs to be spent on the language's own features and less concern that needs to be given to its peculiarities and limitations. usually, in Python, you can spend a greater amount of time thinking about your problem - as opposed to the language you're trying to use to solve it - than you can in Java.

this is partly because Python is dynamically typed, which always helps cut down not only on the verbiage (no declarations, no casts) but also on the distractions (no worrying about what kinds of values can be fit, squeezed or coerced into which variables; just write the code, the language will take care of typing).

partly, however, i think it's also because Python's object system is more "informal", more flexible than Java's. in the latter, you're forced to write everything as a class, you have to have the syntactic and structural overhead of organizing everything that way, all the time, and all of that organization has to be spelled out in painstaking detail. it is as if Java had some kind of "static typing" for its object system; it doesn't let you leave any part of it implicit.

Python, by contrast, has a much less strict system that mostly "just works" because it relies on the programmer voluntarily using social agreements for, e.g., overloading and namespace imports. there's less syntactic noise, and less worrying about it; yet at the same time, the system ends up feeling more powerful, whether it actually is or not, i think because it lets you just do your job - as opposed to the job of fiddling with the language.

these factors, along with a few more, come together to make Python seem a much higher-level language - to me, at least - than Java. the interactive interpreter helps, too - it makes explorative coding and interactive debugging much easier than in your average compiled language. »
  • # Re: Python et Java

    Posté par . Évalué à 3.

    « Life is short, use Python »
    • [^] # Re: Python et Java

      Posté par . Évalué à 0.

      Je crois que Python est le langage de programmation le plus haut niveau que j'ai vu jusqu'à miantenant. Il me fait parfois penser à Visual Basic(tm). En Python, les idées passent avant la programmation. Dernièrement, j'ai commencé à apprendre le php et j'ai été surpris que ça ne soit pas plus haut niveau que ça. J'aimerais tellement pouvoir faire du Python comme si c'était du php.
      • [^] # Re: Python et Java

        Posté par (page perso) . Évalué à 0.

        heu... cherche un peu, ca doit etre possible...


        si si
      • [^] # Re: Python et Java

        Posté par (page perso) . Évalué à 5.

        tu connais CAML ?
        tu connais Prolog ?
        Ca c'est du haut niveau...
        Mais là faut un autre cerveau qui travaille en parallèle...
      • [^] # Re: Python et Java

        Posté par . Évalué à 1.

        allo les mecs il déconne !
        comparait python à VB et PHP, c'est énorme, je me lève à peine et même d'un oeil, je le le lis :o
        • [^] # Re: Python et Java

          Posté par . Évalué à 1.

          Je n'ai pas comparé Python à PHP. C'est deux langages n'ont rien à voir. Python est un langage que l'on peut utiliser dans bien plus de domaines que PHP.

          Le lien entre Python et VB est au niveau de la synthaxe et non des possibilités du langage. De toute façon, j'ai bien plus utilisé VB que Python alors, je me trompe peut-être.

          Je savais déjà qu'il y avait des outils pour faire du Python pour le Web. Le problème c'est qu'ils sont peu utilisés comparé à PHP ou CGI/Perl. J'ai déjà installé Zope mais, je n'ai pas tellement aimé.
      • [^] # Re: Python et Java

        Posté par . Évalué à 2.

        Y a toujours Zope http://www.zope.org(...) .
      • [^] # Re: Python et Java

        Posté par (page perso) . Évalué à 2.

      • [^] # Re: Python et Java

        Posté par . Évalué à 2.

        Tu n'as pas vu Ruby alors :)
        Tu devrais essayer...
  • # Re: Python et Java

    Posté par (page perso) . Évalué à 1.

    C'est dommage, le monsieur confonds le côté dynamique du typage avec le côté fort. AFAIK, Java est un langage à typage dynamique et réfléxif, mais un typage fort, ce qui nécessite la déclaration du type des variables et objets. On peut très bien n'utiliser que des objets de type java.lang.Object et s'amuser avec les classes de java.lang.reflect, mais c'est plus lourd à utiliser.

    D'un côté, c'est une contrainte, mais de l'autre, ça aide à attraper des erreurs à la compilation qui ne seront vues qu'à l'exécution avec Python.

    seb.
    • [^] # Re: Python et Java

      Posté par . Évalué à 2.

      "D'un côté, c'est une contrainte, mais de l'autre, ça aide à attraper des erreurs à la compilation qui ne seront vues qu'à l'exécution avec Python."

      Je suis tout à fait d'accord avec toi Seb. D'ailleurs si tu ne l'avais pas dit je l'aurais dit.
      Je trouve que Python est un langage de script et doit se cantonner à faire de petits programmes. De là à faire une application sérieuse, il faudrait être fou car le typage est automatique...Ca laisse quand meme flotter de nbx bugs. Pour faire maintenir un code python par qqn d'autre ca doit casse tete, surtout quand on commence à introduire les classes...Dans un programme moyen de 20.000 lignes, on est deja perdu entre les differents types...
      • [^] # Re: Python et Java

        Posté par . Évalué à 1.

        Python est un langage de script et doit se cantonner à faire de petits programmes.

        Ben je me demande de quoi je vis tous les mois alors...
        • [^] # Re: Python et Java

          Posté par . Évalué à 1.

          Python c'est sexy, depuis que je l'utilise quotidiennement pour mon boulot, je peux aller au lit beaucoup plus tôt ;-)

          Quand à la taille des programmes, Python est sexy aussi, c'est pas la taille qui compte mais l'efficacité ;-)

          A titre indicatif j'utilise python entre autres dans l'industrie, sur des applis qui tournent 24/24 7/7 365/365

          jonyeux joël
      • [^] # Re: Python et Java

        Posté par . Évalué à 3.

        http://sketch.sourceforge.net/(...)
        http://www.zope.org(...)

        Au passage, je bosse depuis un certain temps, avec un autre langage pas vraiment typé, les attributs des class sont typés, les variables, pas, dans un package de plus 1200 class,sans doc, et ca marche tres bien.

        Les méthodes de dev ne sont pas les même, mais avec un interpréteur, et un langage pas ou peu typé, on développe bcp plus vite.
      • [^] # Re: Python et Java

        Posté par (page perso) . Évalué à 3.

        > Je trouve que Python est un langage de script et doit se cantonner à faire de petits programmes.

        De toute façon n'importe quel programme devient petit en Python :-)
        Franchement je préfère maintenir 20.000 lignes non typées que 200.000 lignes typées (taille d'un programme équivalent en C/C++/java) !!!

        Et oui j'utilise Python pour de gros projets, comme des jeux 3D (Slune),...
    • [^] # Re: Python et Java

      Posté par . Évalué à 2.

      C'est l'éternel combat des langages typés forts et faibles. Smalltalk est très faiblement typé si je ne m'abuse, et ce n'est pas un langage de script. On peut faire de très longs programmes avec un tel langage aussi, mais effectivement, la compilation ne protège pas de grand chose.
    • [^] # Re: Python et Java

      Posté par . Évalué à 1.

      Tu peux très bien "compiler" python

      autre exemple : blender
      • [^] # Re: Python et Java

        Posté par . Évalué à 2.

        autre exemple : blender
        Autre exemple de quoi ?..
        Pour info, blender en lui-même est en C/C++, et fournit seulement des bindings pour des scripts python.
  • # Re: Python et Java

    Posté par . Évalué à 3.

    Qu'est ce qu'il souligne dans ce commentaire ?

    Que python est un langage de script a l'opposé de java.

    Et qu'en tant que langage de script il propose des facilités
    que java n'a pas. Pour scripter c'est bien pratique de ne
    pas définir rigourisement ce que tu vas manipuler.

    A l'inverse dans des applications plus grosses/complexes
    je prefere savoir exactement ce que manipule plutot
    que de dire que python/java va se demerder avec ce que
    lui passe pour faire ce qu'il pensera qu'il est bon de faire.

    Dans la même optique que l'auteur, on pourrait dire que
    perl est un langage plus haut niveau que python ... les programmes
    perl sont plus court que ceux en python, car perl facilite la
    rédaction de scripts de nombreuses manières. Idem cette force
    de perl peut être vue comme un inconvénient, puisque qu'une
    meme ligne de code, ou un simplement un opérateur, va se
    comporter de telle ou telle manière suivant le contexte.

    "i'm not the person who made that statement, but i would defend it. i'd say Python is higher level because it generally gets itself more out of the way of your problem; there is generally less syntactic overhead to it as compared with Java, less verbosity that needs to be spent on the language's own features and less concern that needs to be given to its peculiarities and limitations. usually, in Python, you can spend a greater amount of time thinking about your problem - as opposed to the language you're trying to use to solve it - than you can in Java."

    Remplacez python par perl et java par python .... et oui ca marche aussi ;)

    Ma conclusion c'est que j'aime perl , python et java :) que chacun a les avantages de ses inconvients ..

    Noyeux Joel !
    • [^] # Re: Python et Java

      Posté par . Évalué à 3.

      Euh, passer plus de temps a penser au probleme et moins au langage, avec perl vs python, ca marche pas.
      Peut-être pour toi, parce que t'es un uber perler, mais pour l'immense majorité des autres, c'est pas le cas.

      Ce qu'il dit, c'est que python est plus haut niveau que java parce qu'on a moins a se prendre la tête avec le langage et qu'on peut se concentrer sur le résultat.
      Dans la même optique, cobol est plus haut niveau que C. Mais ca reste une merde.

      Il dit ensuite, que d'apres lui, une des raison de cette facilité est le typage dynamique, et qu'une autre est la flexibilité de python.

      Mon avis personnel, c'est que typé un langage n'a plus de sens, il suffit d'intégrer des mécanismes propres de réflexion dans la VM et elle sait faire ca proprement.
      Le seul intéret du typage, c'est pour le mapping DB.
  • # Re: Python et Java

    Posté par . Évalué à 1.

    Du point de vu langage, je trouve Python bien supérieur à Java.
    Mais peut-on tout faire avec python ? Peut-on faire faire de la programmation distribuée digne de ce nom par exemple ?

Suivre le flux des commentaires

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