En tant que développeur, PHP est le langage que j’utilise le plus.
Au boulot, en dehors, c’est toujours PHP. PHP 5 avait apporté de nombreuses nouvelles choses pour une syntaxe pour la POO plus claire.
Mais maintenant que j’ai pu goûter à Python, à Ruby, des langages vraiment objets, puissants, à la syntaxe moins laxiste, j’ai de plus en plus de mal avec PHP qui, sans framework, reste fonctionnel quand bien même tout est mal codé ...
J’en avais déjà parlé, même si j’ai peu de temps pour m’y mettre, python me plait. Je ne le maitrise pas encore aussi bien que PHP, il faut dire que des notions comme les générateurs, les itérateurs, l’introspection … c’est pas facile à prendre en main tout ça. Et malgré toute cette puissance, python reste remarquablement concis, et la version 3 qui casse la compatibilité avec la version 2.x pour des raisons de nettoyage continue dans ce sens.
Python est un langage de plus très adéquat pour apprendre la programmation, complètement objet, qui permet de poser sans difficulté et sans bidouilles du code pour suivre certains design patterns, idéal pour programmer en suivant la programmation orientée par les tests (Test-Driven Development ou TDD), ou encore les méthodes agiles, l’eXtreme Programming (XP), de même que la programmation orientée aspect (POA) et que sais-je encore …
De plus, alors que PHP est limité au Web, Python n’est limité à rien, il tourne même sur de l’embarqué, car la debian en ARM (l’architecture de beaucoup de systèmes embarqués et plus récemments de la plupart des smartphones) contient python dans les dépôts…
Bref, même si je suis heureux de voir le développement de PHP continuer, le langage n’a pas une philosophie globale autre qu‘être accessible aux débutants comme aux développeurs chevronnés, ce qui empêche de pouvoir juger sur le court terme du niveau exact d’un nouveau développeur PHP qu’on vient d’engager, on peut avoir de grandes disparités entre différents modules d’une application car plusieurs manières de faire existent pour un même traitement…
J’attends un peu PHP 6, mais j’attends surtout de pouvoir utiliser Python dans un cadre professionnel. Je sais que certains geeks parisiens ont cette chance, j’espère que cela va s‘étendre…
J’en ai rêvé, google l’a fait.
Ca s’appelle Android Scripting Environment, ça a accès (selon leurs dires) à la plus grosse partie des API pour faire mumuse avec le système, et ça supporte Python, Lua, BeanShell, et en prévision Ruby et Javascript (sisi).
Et tout ça sous Apache Public Licence.
Je plonge là-dedans dès que possible !
Edit : On en parle sur Google Open Source Code Blog !
Et c’est par là.
Y a aussi une réorganisation du contenu, et c’est pas plus mal, parce que dans l’ancien, parfois, je me perdais un poil.
(via Alsacréations)
Après avoir été guidé dans l’apprentissage par quelques amis (apprentissage qui ne fut pas vraiment long, le plus long sera d’apprendre les petites spécificités et particularités du langage), avoir trouvé des gens sympathiques sur le salon de discussion #afpy sur le serveur irc.freenode.net, me voilà sur le planet de l’afpy !
Donc bonjour à tous ceux qui me liront par ce biais. Je me suis réellement mis à python y a peu de temps, donc ne vous attendez pas à une ribambelle de billets pour l’instant. Mais ça devrait venir un jour, n’ayez crainte.
En tout cas, bien à vous.
Et si aujourd’hui en ce vendredi ensoleillé, je vous racontais ma vie et pourquoi/comment je suis devenu développeur avec PHP ? J’ai pas d’enfant, mais un jour, il me posera quand même peut-être cette question, si on suppose qu’entre temps j’ai acheté les peluches des mascottes de mes langages préférés…
J’ai commencé donc mes premiers petits programmes en basic, le premier assez abouti était un morpion ! On est en 1999. Je suis content de moi, mais ça me semble un poil compliqué sur certains aspects, mais j’aime bien me creuser la tête, je poursuis, et je continue en commencant HTML chez moi dès la fin de l’année de première (Donc été 2001, le moment où j’ai eu mon premier pc sous windows ME !).
Donc, en 2002, je découvre le C, et surtout linux. Mandrake 7.2 sur les postes de l‘école. Avec le windows ME, j’envisage de tester ça à côté, parce que ça a l’air bizarre et que je suis curieux. Fin de la première année de BTS, je suis en dual-boot windows/debian.
La deuxième année de BTS, on enchaine sur le C++. J’adore comment c’est pensé, même si je trouve ça bien compliqué pour pas grand chose (les pointeurs … notion qui compris à un moment, se disperse dans votre cerveau après quelques années de non-utilisation…).
Été 2004, fin de la deuxième année de BTS, j’ai fait du C et du C++, sous windows et linux à chaque fois. Je me rends compte que linux a l’air d‘être vachement mieux doté en outil gratuits de développement, et je suis sous la noname, qui va bientot (je ne le sais pas encore à l‘époque) devenir ubuntu. Et j’abandonne windows à ce moment là. Cet été ça fera donc 5 ans sans windows.
Alors que je trouvais C et C++ trop bas niveau, et Java trop lourd, PHP me convenait très très bien pour le web. Un poil trop permissif, mais du coup très très souple…
S’ensuit l‘été 2005, où je commence à contribuer à la traduction d’ubuntu en français, et où je participe à l’aide sur un salon de discussion francophone (#ubuntu-fr :p). Je fais aussi du PHP5. Puis vint la soutenance de stage en septembre 2005 … Et là, le diplôme obtenu, coucou le chômage…
Jusqu’en avril 2006, où je suis embauché dans une petite boîte bossant sur un intranet pour avocats, où je me retrouve vite seul, l’autre développeur partant pour créer sa propre société. J’ai appris et peaufiné beaucoup et donc, en avril, cela fera trois ans que je vis de mes développements PHP.
J’adore dans Ruby sa syntaxe, sa manière d‘être pensé et de fonctionner. Mais les performances de RoR me semblent peu intéressantes, et les librairies sont finalement peu nombreuses comparé à un langage équivalent que je rejette pour l’instant à cause de sa syntaxe que j’aime pas du tout alors : Python.
Et pis y a peu, genre 2 semaines, motivé pour vraiment découvrir, je me lance.
Comment dire ? Python est un langage concis, efficace, et lisible, et lorsqu’on s’habitue à sa syntaxe (pas de ; comme en Ruby, mais aussi pas de marqueur de bloc autre que l’indentation), on se demande pourquoi les autres langages ont des syntaxes si compliquées…
Je ne connais pas encore bien tout, mais avec les nombreuses librairies, le nombre d’utilisateurs plus grand, et donc l’aide plus facile à trouver, la documentation plus importante, le fait que beaucoup de petites choses sous linux sont codées en python, tout ça me motive. Pire, je vois souvent des gens qui en font, qui peuvent me conseiller, je deviens accroc à plein de petites spécificités du langage…
Au final, sur tous les langages sur lesquels je suis passé, 3 retiennent mon attention :
Bref, même si je ne le maitrise pas du tout encore autant que PHP5, je ne désespère pas. Ce langage me plait, et une fois que je le connaitrai je passerai plus à autre chose …
... je demande “Les paramètres nommés“.
Moi, quand même, ça me bluffe comment il est bourré de petites choses sympa et puissantes, ce langage. Les paramètres optionnels, c’est courant dans plein de langages, mais les paramètres nommés nettement moins…
...
Tout est dans le titre.
Dans le temps j’aimais bien Ruby. Une syntaxe de rêve, des outils de rêve, un framework web de rêve. J‘étais même dans le CA de l’association RubyFrance, j’ai bu des coups avec l’ex prèz (salut fredix).
Et pis j’ai commencé à en avoir marre des perfs foireuses, des hash plus simples que les array mais pas ordonnés (un exemple parmi 1000 petits détails), des wrappers pour certaines choses inexistants ou incomplets… Ce qui me retenait sur Ruby était vraiment que la syntaxe était top, et que je blairais pas l’absence de mot de fin de bloc en python.
Et puis le temps est passé, et là où fredix se tente au C(++)/Gstreamer, je m’essaie au python, avec python/glade… Et j’aime ça. Je commence à m’habituer à l’absence qui me dérangeait tant auparavant, et je découvre un langage non pas naturel, mais diablement concis et efficace. Ca a des inconvénients, mais surtout de nombreux avantages. Et puis, la réactivité des applis en python est bien supérieure à celle des applications en Ruby équivalentes, les wrappers plus complets et plus nombreux, voir plus performants …
Du coup, sauf si Ruby 2 sort en avance, intègre des hash ordonnés, mais surtout si le nombre de wrappers potables augmente pas, que les performances s’améliorent pas, ben je resterai sous python pour quelques mois encore… Et peut-être, à ce moment, que je ne voudrai plus repasser à Ruby.
(Bye bye Ruby …)
Je m’attendais à un outil du genre sous Windows, sous Mac Os X, mais pas sous Gnu/Linux, voilà que Zend me surprend en annoncant la bêta publique de Zend Server !
En effet, le principe de Zend Server (encore en bêta pour l’instant) est d’avoir un serveur d’applications en PHP, facile à installer, afin de tester PHP ou d’avoir rapidement une petite machine de développement. L’installation sous windows se fait via un .exe, sous Mac Os X, c’est comme d’habitude, et sous linux, des dépôts existent pour les plus grandes distributions. Facile, quoi.
Mais ça ne s’arrête pas là. Le serveur web a une petite interface de monitoring, de gestion des applications et des règles de réécriture par application. Sous linux, l’installation des différents paquets d’extensions php les active dans le Zend Server (et il y en a beaucoup).
Pour l’instant, le produit étant en bêta, il est gratuit, à terme seul Zend Server Community Edition (CE) sera disponible gratuitement. Toujours à cause de la bêta, je ne recommanderai pas de l’utiliser en production. Cela dit, Zend promet des performances incroyables, et du support performant pour la version payante, et garantit aussi un php et des extensions à jour pour les deux versions (payantes et CE).
Les paquets sont en conflit (forcément) avec les paquets de votre distribution, donc n’hésitez pas à le tester dans une machine virtuelle !
Téléchargement de Zend Server par ici !
PS : Et voilà la liste des différences entre la version payante et la version CE de Zend Server.
Créez un fichier <nom court de l’utilisateur>.conf dans /etc/apache2/users/.
Mettez-y :
<Directory “/Users/<nom court de l’utilisateur>/Sites/”> Options de ce dossier.
</Directory>
C’est une question qui m’est venue suite à une discussion avec un ami, qui me demandait comment j’avais appris.
Au moment de lui répondre, et pendant que je le faisais, je me suis demandé si la manière dont j’avais appris la programmation était encore adéquate de nos jours, si elle n‘était pas devenue obsolète. En effet, de nos jours, tous les langages ou presque sont objets, et il s’agit dans la plupart des cas de prévoir (avec un peu de programmation procédurale il est vrai) des interactions entre objets.
Est-ce donc aussi important de continuer à faire accrocher l‘élève à l’algorithmie alors que les objets sont omniprésents dans quaisment tous les langages ?
Prenons l’exemple des langages les plus utilisés dans le logiciel libre.
Si l’on sépare l’apprentissage de ces deux choses, elles seront dans l’esprit de la personne des choses séparées. Il faut bien garder l’apprentissage de l’algorithmie, mais l’améliorer, ne pas l’axer que sur l’utilisation mais aussi sur les relations entre objets. Beaucoup de professeurs ont du le faire, ont du modifier leurs cours. Mais peut-être pas tous. Et vous ? Vous enseigneriez la programmation à quelqu’un de quelle manière ?
CC BY-NC-SA sauf les éléments non de moi, qui sont la propriété de leurs auteurs respectifs.