Greg's blog

To content | To menu | To search

Keyword - 2008

Entries feed - Comments feed

Thursday, January 17 2008

Ce que j'attends en 2008

Ca ressemble à des prédictions sans en être :). Je ne suis pas voyant et les tendances que je perçois ou que j'attends sont liées aux domaines qui m'intéressent. Je ne vais donc pas m'essayer à prédire les grands évèments de 2008, mais plutôt énoncer ce que j'attends.

  • Les langages fonctionnels vont réellement commencer à être utilisés. Par réellement, j'entends de manière moins confidentielle. L'exemple le plus frappant est l'utilisation d'Erlang pour le service SimpleDB d'Amazon AWS[1]. Les capacités fontionnelles de certains langages[2] très appréciés pour le développement agile comme Ruby et Python (pour ne citer qu'eux) sont indéniablement très pratiques et rendent plus productif (et plus succinct, exemple : les list comprehension en Python). Le style fonctionnel dans ces langages est partiel, on trouve en effet des effets de bord. Avec la vogue des architectures multicore et la nécessité de faire du calcul parallèle (distribué ou multithread local), les langages fonctionnels sont très adaptés. Une raison simple à cela, ils sont fondés (pour les langages fonctionnels purs c'est même imposé) sur l'absence d'effet de bord. Par conséquent la concurrence est implémentée avec des processus qui ne partagent pas de mémoire et communique de manière asynchrone par passage de messages. C'est le style fonctionnel qui amène à cela. On trouve une bonne illustration de ce principe dans une description d'Erlang et de la raison de son succès récent What's all this fuss about Erlang? par Joe Amstrong.


C'est toujours difficile de choisir un langage de programmation quand on se lance dans un projet. Plusieurs approche se présentent : choisir celui qu'on maîtrise le mieux d'où la proéminence du C/C++, .Net, PHP et Java; choisir celui pour lequel on aura le plus de contributeurs ou développeurs à embaucher (qui a parlé de Java ?? ;) ); choisir les langages les plus appropriés pour traiter chaque composant du projet. hmmm oui vous avez bien lu LES langages. Alors bien sûr en pratique ça finit souvent par un langage, mais il n'est pas proscrit d'envisager l'utilisation de plusieurs langages. C'est d'ailleurs ce que pas mal de projets font déjà depuis longtemps en ajoutant la possibilité d'utiliser des langages de scripts[3] dans les applications. Paul Graham mets en avant ce choix dans son essai Beating the Averages. Certains y voit l'apologie de Lisp, j'y vois surtout la mise en exergue de ce qui constitue un des avantages majeurs d'une startup sur ces concurrents : le socle technologique. Il faut batir sur de bonnes fondations, celles qui permettront de ne pas perdre de temps et de répondre à la demande. "Faut qu'ça scale!!!". Les gens qui créés des entreprises sont souvent intelligents et l'équipe technique compétente. Ce qui va faire la différence, outre les choix stratégiques, sont les choix qui vont permettre d'aller plus vite et de faire mieux. Ca n'empêche pas d'avoir des startups qui marchent en utilisant du Java, mais certains, comme Frank Sommers, se posent des questions sur l'utilisation du langage dans l'efficacité d'un framework How Does Language Impact Framework Design?. Le seul élément qui n'est pas extensible c'est le temps. Ensuite la grosse question est qu'est-ce qu'un bon langage ? Qu'est-ce qu'une bonne technologie ? Et la chacun a sa réponse en fonction de ses besoins, de son expérience et de son humeur. The Hundred-Year Language de Paul Graham[4] est une réflexion parmi d'autres sur ce point.

  • Le logiciel libre sur l'embarqué grand public et les téléphones mobiles va se généraliser : Google Android, OpenMoko, The BUG (qui a été gratifié d'un CNET Award au CES et massivement couvert par la presse spécialisée récemment). Je me demande comment va réagir Archos au projet OpenPMA. Soit ils le font ala Apple en essayant de tout vérouiller - ce serait vraiment moche -, soit ils décident de créer une communauté autour de leur produit et de leur plateforme logiciel. C'est un modèle économique différent car actuellement ils vendent des plugins et ouvrir la plateforme logicielle permettrait d'avoir des alternatives à leurs plugins propriétaires et donc ne pas les acheter. Cela peut constituer un pari intéressant sur l'innovation et permettre de rattraper le retard d'Archos sur Apple notamment sur la partie interface utilisateur -- pour le reste difficile de parler de retard. J'aimerais bien un PMP qui sache lire le MKV !

Notes

[1] Pourquoi Amazon a choisit erlang pour SimpleDB. J'ai une piste ici -- bien que je ne connaisse pas les détails d'implémentations de SimpleDB notamment le moteur de base de données : "Mnesia - Base de donnée temps réel distribuée pour Erlang. Mnesia supporte la réplication en mémoire vive (RAM) aussi bien que le stockage sur disque, permet la modification dynamique des schémas et permet de stocker des structures de données d'une complexité arbitraire. Mnesia est très rapide car fonctionne dans le même espace d'adressage que les applications qui l'utilise: cette caractéristique est possible, car Mnesia et les programmes qui l'utilise sont écrits en Erlang. Mnesia est un bon exemple de la puissance d'Erlang: Dans combien de langage pourriez-vous écrire un SGBD distribué, complet et de qualité industrielle en moins de 20 000 lignes de code." (extrait de Livre blanc: Le langage Erlang.

[2] Can Your Programming Language Do This?

[3] lua, perl, python, clisp me viennent en tête

[4] Deux essais cités de lui, vous allez croire que je suis fan ! Et bien pas spécialement, c'est juste que je lis Hackers and Painters en ce moment, et que son expérience est intéressante.

Monday, December 24 2007

Bonnes fêtes ! Et un peu de teasing pour 2008 ;)

Nous sommes en pleine période de fêtes de fin d'années. Entre la course aux cadeaux et les expéditions pour voir tout le monde, le temps passe vite ! Pour ceux qui lisent ce blog et que je n'aurais pas l'occasion de voir, je vous souhaite de passer de très bonnes fêtes de fin d'années. Beaucoup de courage pour ceux qui doivent travailler le soir du réveillon et/ou le jour de Noël et qui n'ont pas pris de congés.

Nous ne sommes pas encore en 2008, mais je vais décrire un peu ce qui attend ce blog au début de l'année.

  • Un redesign complet : ce blog en a bien besoin ! J'avais repris le thème deep_green, de Carnegie. Et au final j'ai complètement changé les couleurs (le thème était au départ vert sur noir...). Donc oui ça ne servait à rien de prendre ce thème :p. Je vais donc reprendre ça from scratch et apprendre à utiliser Inkscape.
  • La suite, enfin la ré-écriture plutôt, de la réflexion sur l'avenir des applications web libres. J'ai une ébauche bien avancée de la structure et des notes de côté. Après avoir relu le billet que j'avais écrit je ne suis pas satisfait : c'est pas très clair et j'ai du mal à poursuivre la réflexion à partir de ça. Je vais donc prendre le temps - car je trouve que le sujet le mérite - et mettre l'essai en ligne courant janvier.
  • Une présentation d'une application web écrite avec Django. Je n'en dis pas plus pour le moment :).
  • + de billets et surtout plus régulièrement. C'est probablement la résolution que l'on trouve le plus souvent chez bloggeurs, je vais essayer de m'y tenir !