Journal En vrac : Python 3.1, Netbeans 6.7

Posté par .
Tags :
13
30
juin
2009
Bonjour à tous,

J'introduis ce premier journal en m'excusant par avance de la courtesse - gni ? - des propos et de la non-expertise dont je jouis. Ces deux raisons m'ont poussé à aller vers le journal et non vers la dépêche, d'autant plus que j'imagine qu'il y a peut-être déjà dans les tuyaux des informations analogues en cours de validation.

J'ai relevé ces derniers jours deux informations qui pourraient intéresser une partie d'entre vous :

Python arrive en version 3.1

Une fois n'est pas coutume, je commence directement par les sources de ce qui suit, avec une mention toute particulière à l'article publié sur le site du zéro sans lequel cette brève n'aurait pas pesé grand-chose.
  1. Python_(langage)#Histoire
  2. [https://linuxfr.org//2008/12/05/24764.html]
  3. [http://www.python.org/download/releases/3.1/]
  4. http://www.siteduzero.com/news-62-32467-python-3-1-une-nouve(...)

Le langage de programmation Python arrive dans une version 3.1 qui est dit-on un premier pas vers la maturité. La version 3.0 a en effet marqué la casse de la rétro-compatibilité et une nouvelle phase pour Python après une petite dizaine d'années¹ passées en compagnie de la branche 2.x (branche qui est toujours maintenue et continuera encore quelques temps à évoluer).

La version 3.0² a notamment apporté le support natif de l'Unicode et a permis un dépoussiérage du langage et l'élimination d'un peu de "magie". Si la migration de Python 2 vers Python 3 est facilitée par le script 2to3 - [http://docs.python.org/library/2to3.html] - et l'introduction d'une partie des apports de la 3.0 dans Python 2.6 (et bientôt 2.7), un certain nombre de logiciels majeurs restent attachés à la branche 2.x. Il faut dire que de nombreuses distributions ne proposent pas encore Python 3 et que la nouvelle version majeure a été critiquée en raisons de régressions de performances.

La 3.1 ³ ⁴ limite ces régressions grâce à diverses optimisations au niveau des entiers mais surtout grâce à la ré-écriture de la bibliothèque d'entrées/sorties - I/O - de Python vers C. L'interface reste cependant disponible en Python (module _pyio) de manière à ce que certains développeurs comprennent plus aisément son fonctionnement, puissent la tester et la faire évoluer.

Une nouvelle option de compilation du bytecode, --with-computed-gotos, fait également son apparition. Elle permettrait des gains de l'ordre de 20% mais n'a pas été activée par défaut car les gains observés seraient négatifs pour certains programmes.

Une nouveau type de données se montre : odict. En Python, il semble en effet qu'un dictionnaire soit une sorte de tableau associatif, où à chaque terme correspond une valeur ou un ensemble de valeurs. Par défaut, ces dictionnaires ne sont pas ordonnés et une même boucle n'assurerait donc pas que les éléments rencontrés le soient toujours dans le même ordre. Même si j'imagine qu'il existe de quoi palier à ce soucis - ? -, odict vient en tout cas nativement répondre à la problématique.


Netbeans 6.7

  1. NetBeans
  2. [http://www.netbeans.org/community/releases/67/]

NetBeans¹ est un projet qui consiste d'une part en une plate-forme de conception d'applications Java et d'autre part en un environnement de développement intégré - un IDE. NetBeans a été racheté par Sun en 1999 et est développé en Java. Il est distribué sous double-license CDDL et GPLv2. NetBeans est disponible dans de nombreuses langues - et en partie francisé - et prend en charge plusieurs langages de programmation parmi lesquels :
  • Java SE, Java EE, Java ME, JavaFX
  • C / C++
  • Javascript, AJAX...
  • XML
  • PHP
  • Ruby
  • Groovy
  • Python
  • ...

NetBeans dispose de fonctionnalités bien connues des utilisateurs d'IDE : coloration syntaxique, auto-complétion, gestion multi-projets, intégration des documents de référence, support de solutions de gestion de versions, intégration de [[débogueur]] s... Le logiciel a été conçu en prenant en compte le principe de la modularité. Il est ainsi proposé au téléchargement via des paquetages centrés sur les langages employés : PHP, C, JavaFX, Ruby etc mais rien n'empêche d'ajouter de nouvelles fonctionnalités via le système d'extensions.

Parmi les nouveautés de cette version 6.7, notons² :

Notons enfin qu'après le rachat de Sun par Oracle ([https://linuxfr.org//2009/04/20/25337.html]), certains craignent que NetBeans soit délaissé. Oracle dispose en effet déjà de son propre environnement de développement Java : jDeveloper et il est difficile de savoir si Oracle préfèrera continuer le développement de NetBeans tout en conservant la double-licence actuelle ou s'il misera davantage sur sa solution maison.
  • # Ça mérite deux dépêches

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

    Ces deux raisons m'ont poussé à aller vers le journal et non vers la dépêche, d'autant plus que j'imagine qu'il y a peut-être déjà dans les tuyaux des informations analogues en cours de validation.

    Perdu, il n'y avait aucune dépêche dans les tuyaux sur ces sujets (ni sur les autres sujets d'ailleurs).
    • [^] # Re: Ça mérite deux dépêches

      Posté par . Évalué à 4.

      Y a-t-il un moyen pour un simple visiteur de savoir ce qui a été proposé comme dépêche ?

      En tout cas si quelqu'un veut faire un copié-collé amélioré (Ctrl+Super?+V), qu'il n'hésite pas !
      • [^] # Re: Ça mérite deux dépêches

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

        NoNo (Bruno Michel) a déjà proposé ton journal en tant que double dépêche. L' une sur Netbean et l'autre sur Python 3.1.
        Je ne crois pas qu'il y ait un moyen pour un visiteur de voir le pipe des news. Cela a été discuté plusieurs fois et les inconvénients l'emportent sur les avantages.
        Par exemple si tu vois qu'une news a été proposée sur un sujet tu va t'abstenir d'en proposer une autre...alors que la première est peut être nulle (1 seule phrase et bourrée de fautes) alors que la tienne aurait été très bonne.

        La conclusion c'est que dans tous les cas il faut proposer une dépêche !
        • [^] # Re: Ça mérite deux dépêches

          Posté par . Évalué à 3.

          Ce n'est pas une attitude très opensource, çà ;)
          où chacun prends l'existant et apporte sa petite touche personnelle pour améliorer le tout....
          • [^] # Re: Ça mérite deux dépêches

            Posté par . Évalué à 1.

            Il y avait bien le projet Tribune Libre [1], lancé en 2003 par Fabien Penso, qui avait un système de modération ouvert (pas limité au domaine du libre, d'ailleurs, quand on postait sur linuxfr un truc un peu hors-sujet la suggestion était d'aller là-bas [2]), mais ça n'a pas très bien pris, par manque de soumission de contenu.

            Le gros intérêt à mon goût était qu'on pouvait éditer sa dépêche, et la soumettre à une aide éditoriale. On continuait à l'éditer en fonction des remarques obtenues quand la dépêche était dans l'aide éditoriale. De mémoire il fallait un certain nombre de votes "bon pour la publication" avant que la dépêche sorte de l'incubateur. L'incubateur permettait éventuellement de participer à la dépêche d'un autre en fournissant ajouts et critiques si la dépêche qu'on voulait poster était déjà présente. En fait tout le monde pouvait être admodérelecteur :-)


            Même que c'était avant que Wikipedia soit connu. Je suis sûr que le concept est bon mais il faut beaucoup de discipline, d'ailleurs pas tellement éloignée de ce qu'on rencontre maintenant sur wikipédia. Peut-être que maintenant ça prendrait mieux, les gens sont plus habitués à ce fonctionnement collégial collaboratif.

            [1] http://tribunelibre.org. Aucun rapport avec le rocher sur lequel s'accrochent les moules. Cela dit maintenant ça donne une erreur 403, il faut aller chercher sur archive.org pour se faire une idée. Le sous-titre était "c'est toi qui postes, c'est toi qui choisis".
            [2] où, si ça avait un rapport avec l'informatique, on était souvent redirigé sur linuxFR, mais bon... ;-)
            • [^] # Re: Ça mérite deux dépêches

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

              Wikipedia était déjà bien connue à l'époque.

              En termes de fonctionnalités, c'est surtout de http://www.kuro5hin.org/ que Tribune Libre était proche.
              • [^] # Re: Ça mérite deux dépêches

                Posté par . Évalué à 2.

                Pour Wikipedia, je pensais à un public large. Mais ma mémoire peut me trahir.

                En ce qui concerne kuro5hin je ne saurais dire, vu que je ne me suis jamais intéressé à son système de dépêche, j'en ai juste lu de temps en temps. Cela dit ça m'intéresse ce que tu dis je vais y faire un tour :-)
        • [^] # Re: Ça mérite deux dépêches

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

          Je voulais écrire une dépêche sur python 3.1 mais je n'en ai pas eu le temps (très pris ce week-end). Je vais compléter et corriger la dépêche proposée.
      • [^] # Re: Ça mérite deux dépêches

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

        Le nombre de dépêches en attente est affiché sur la tribune rédacteurs : http://linuxfr.org/redacteurs/ (par contre, on ne dit pas lesquelles).
        • [^] # Re: Ça mérite deux dépêches

          Posté par . Évalué à 1.

          Merci bien, je vois aussi que la petite tribune permet d'en savoir un peu plus sur les intentions (ou pas) des rédacteurs.

          Je ferai donc en sorte de proposer ce genre de choses en dépêches.

          Question subsidiaire, la revue de presse de l'APRIL passe fréquemment en dépêche et j'ai vu d'autres fois des "vrac" (pas mal de petites actualités en brèves avec sources etc); ces deux types de dépêches vous intéresseraient-elles de manière plus régulière ou il vaut mieux multiplier les journaux pour ces actualités rapides ?
          • [^] # Re: Ça mérite deux dépêches

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

            Les "vracs", s'ils concernent le libre, oui, on est preneur.
            Mais par paquets.

            Assez régulièrement, les "vracs" de Linuxfr sont en fait des propositions de news que l'on a jugé pas assez étoffée pour passer telle quelle, mais pas assez inintéressante pour ne pas être mentionnée.
            Alors quand plusieurs petites news comme cela se cumule, on en fait une dépêche "en vrac".

            SI une dépêche "en vrac" déjà complète arrivait, je pense que ça conviendrait à la grande majorité des AMR !
  • # Petite imprécision

    Posté par . Évalué à 10.

    Étant l'auteur de la news que tu cites comme source principale sur Python 3.1, je me permet de te faire remarquer une petite imprécision dans ton paragraphe sur --with-computed-gotos.

    Le gain ne dépend pas du programme mais du compilateur utilisé pour compiler l'interpréteur : en effet, certaines versions de GCC produisent du mauvais code (non performant) pour l'indirect threading comme il est mis en place dans Python 3.1, ralentissant l'exécution de tous les codes Python. L'accélération (ou le ralentissement) de l'inteprétation est globale et s'applique sur tout programme Python.
  • # En français...

    Posté par . Évalué à 5.

    en m'excusant par avance de la courtesse - gni ? - des propos

    brièveté, concision

    De rien.
  • # % !

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

    Rendez nous le % ! (chante Pomi d'abord !)
    • [^] # Re: % !

      Posté par . Évalué à 3.

      format c'est bien mieux dès que tu dois internationaliser. Avec % il fallait faire des %(machin)s et des {'machin': foobar} et ça devenait illisible.

      Enfin bon, ils ont introduit {} dans format maintenant /o\ .
      • [^] # Re: % !

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

        oui mais 99.9% de mes scripts n'ont pas besoin d'être internationalisés et pour 99.9% de mes cas usuels, le % me suffisait.

        Quand il sera définitivement évincé, ce sera pour moi une régression du langage, tout du moins du point de vue concision et aisance d'écriture. C'est tout :)

        pour rappel :

        print "salut %s"%(login) # 24 caractères
        print ("salut {0}".format(login)) # 33 caractères

        A ca il faut également tenir compte que pour faire %s il faut 3 touches (shift+%+s) alors que pour {0} il faut 6 touches (altgr + { + shift + 0 + altgr + })

        Bref, je decrease my productivity.
        • [^] # Re: % !

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

          Tu peux la decreaser un peu moins en tapant :

          print("salut {}".format(login))

          (Pas d'espace avant parenthèse ouvrante, et chiffre optionnel.)
        • [^] # Re: % !

          Posté par . Évalué à 3.

          Alors pourquoi ne pas simplement faire un:
          printf("salut", login)
          ?
          • [^] # Re: % !

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

            Parce que tu sembles faire exprès de prendre mon exemple à la lettre en me proposant un contre exemple certes plus court, mais pas généralisable efficacement ?

            et si je veux mettre un signe de ponctuation juste après le nom ? et si je veux ensuite affiche la date de dernière connexion en parenthèse ?

            Bref, une mise en forme correcte ne s'obtient pas en séparant les arguments du print par des virgules, même si pour les cas les plus simples c'est pratique (cf ton exemple)
        • [^] # Re: % !

          Posté par . Évalué à 1.

          En meme temps, pour la programmation je te recommande un clavier US ou UK. Les caracteres utilises dans la plupart des langages sont bien plus facilement accessibles que sur un clavier francais.

Suivre le flux des commentaires

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