title:      ★ Pourquoi programmer en Python ?
slug:       pourquoi-programmer-en-python
date:       2006-05-05 19:38:37
type:       post
vignette:   images/logos/python_nouveau.png
contextual_title1:  Bonnes pratiques et astuces Python
contextual_url1:    20080511-bonnes-pratiques-et-astuces-python
contextual_title2:  Un projet Python : de l&#39;idée à la publication
contextual_url2:    20101203-un-projet-python-de-lidee-la-publication
contextual_title3:  ★ De l&#39;OpenData au LinkedData : exemple de nosdonnees.fr
contextual_url3:    20101130-de-lopendata-au-linkeddata-exemple-de-nosdonneesfr

<p>Guido le <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=150515">soulignait il y a quelques temps</a>, Python souffre un peu du manque de promotion. La nouvelle version du site est un premier pas, de <a href="http://pyfaq.infogami.com/">«&nbsp;nouvelles » initiatives</a> voient le jour (à quand une telle ressource en français ?!) mais peut-être que les blogs sont un des meilleurs moyen de promotion d'un produit actuellement. Voila donc ma participation, ce ne sont pas forcément les arguments que vous pourrez lire ailleurs, nous n'aimons pas forcément tous les mêmes choses pour les mêmes raisons mais ce sont ceux qui me font apprécier Python aujourd'hui.</p>

<h2>Apprendre les bases de la programmation</h2>


<p>Python offre vraiment un niveau d'apprentissage rapide. Grâce à la simplicité de sa syntaxe, je pense que c'est actuellement le langage de programmation à apprendre si l'on veut débuter la programmation. C'est déjà assez difficile à comprendre pour en plus buter sur la syntaxe (un débutant qui se trompe 20 fois dès le début de son apprentissage pour un point-virgule oublié ou une accolade mal placée c'est autant de temps perdu). Je trouve franchement repoussant l'apprentissage du C en premier langage par exemple.</p>


<p>De plus, Python dispose de très peu de mot-clés à retenir dans un premier temps ce qui permet de rester concentré sur l'algorithmique. Et c'est ce que doit permettre un langage de programmation, tout comme un OS doit permettre d'utiliser l'outil informatique mais bon là on sort du débat ;-).</p>


<p>Enfin le nombre de bibliothèques incluses ou à télécharger simplement permettent d'arriver très rapidement à un résultat concrêt. Et c'est vraiment motivant quand on débute, du coup il est possible encore une fois de se concentrer sur notre véritable objectif&nbsp;: faire une application spécifique qui n'a pas encore été codée.</p>



<h2>Progresser en python&nbsp;: une courbe d'apprentissage particulière</h2>


<p>Dans tous les apprentissages, on commence par progresser très vite puis la pente de la courbe diminue et on a clairement l'impression de ne plus progresser, qu'au prix d'efforts importants et sur certains sujets uniquement.</p>


<p>Ce qui me plait avec Python, c'est que l'apparente simplicité du langage cache des perspectives que je découvre encore aujourd'hui. Et l'évolution constante du langage permet de disposer de nouvelles fonctionnalités demandées par la communauté de façon rapide et réfléchie. Vous pouvez même donner votre avis dès maintenant sur la <a href="http://mail.python.org/mailman/listinfo/python-3000">mailing-list de Python 3000</a>.</p>



<h2>Développer une véritable application</h2>


<p>C'est bien beau tout ça mais il faut bien décider un jour de se lancer dans le grand bain et de coder sa propre application qui va roxxxer les mamans ours et vous permettre de conquérir le monde (zut c'était mon plan, bon contactez moi pour le partage).</p>


<p>À moins de faire une application très spécifique, toutes les briques de votre application existent déjà. Il n'y a plus qu'à les choisir et à les assembler de façon optimale. C'est l'une des raisons par exemple pour lesquelles on assiste aujourd'hui à une champignonière de frameworks web, <abbr title="Ruby on Rails">RoR</abbr> était un exemple intéressant et faire quelquechose qui y ressemble en Python était «&nbsp;simple ». Bon après c'est un peu paradoxal avec la philosophie Python qui est «&nbsp;il existe une seule bonne manière de faire les choses » (en oposition à PERL). Ce sera d'ailleurs l'objet d'un prochain billet.</p>



<h2>Convaincu(e)&nbsp;?</h2>


<p>Oui, non, peut-être&nbsp;? N'hésitez pas à plaider en commentaire, les débats non constructifs ne sont pas les bienvenus. Par contre vos premières expériences avec un langage oui :-).</p>


<p>J'ai déjà regroupé <a href="https://larlet.fr/david/biologeek/archives/20050218-cours-pour-apprendre-python/">quelques tutoriels</a> que je trouve intéressant si vous êtes déjà conquis(e)&nbsp;!</p>



<h2>Et pour quelques clics de plus...</h2>

<ul>
<li><a href="http://nic-nac-project.de/~bader/choisispython.pdf">Choisis Python</a>&nbsp;: une affiche en pdf que j'aime bien.</li>
</ul>

<p>PS&nbsp;: si vous n'aimez pas les blocs qui ne se terminent pas (comme certains - lien mort), point de salut :p</p>
