Le blog de la société Scub

Aller au contenu | Aller au menu | Aller à la recherche

lundi 23 juin 2008

Introduction à JUnit (tests unitaires)

Comme je l'ai indiqué il y a quelques jours, Scub a terminé son socle technique libre et nous attaquons désormais la partie documentation (qui est loin d'être la plus fun ;)), et on commence donc avec un article d'introduction à JUnit que vous trouverez à l'adresse : http://www.scub.net/foundation/doku.php?id=exemple_junit_simple. Vos commentaires sont bien sur les bienvenus !

vendredi 20 juin 2008

Un petit résumé de ce qu'est l'Open Source

Voici un document que j'ai écrit pour un client et qui fait un rapide tour de ce qu'est l'Open Source et de son histoire... en espérant que cela comble certaines lacunes :)

Les logiciels libres sont apparus en 1985 avec la fondation "Free Software" ( http://www.fsf.org/ et http://www.fsffrance.org/ ) créer par Richard Stallman.

Un logiciel libre est un logiciel qui a une licence qui offre quatre libertés fondamentales :

  • La liberté d'exécuter le programme pour tous les usages.
  • La liberté d'étudier le fonctionnement du programme.
  • La liberté de redistribuer des copies.
  • La liberté d'améliorer le programme et de publier ses améliorations.

note : les deux dernières libertés ne peuvent s'appliquer que si l'on à accès au code source qui est en quelque sorte la recette de fabrication du logiciel.

Les logiciels libres sont donc systématiquement distribués avec une licence d'utilisation, la plus connue étant la Licence publique générale GNU généralement appelée GPL ( http://www.rodage.org/gpl-3.0.fr.html ). Elle est utilisée par 70% des projets existants sur le site sourceforge.net qui est le plus gros hébergeur de projets libres du monde.

Un des reproches que l'on a fait à la GPL est le fait qu'elle interdit la redistribution sous une autre forme que GPL. Pour simplifier, vous ne pouvez pas prendre un logiciel au format GPL et le modifier pour en faire un logiciel propriétaire.

Ceci a été vu comme une limitation et on a donc vu se développer un certain nombres de licences dites "de type BSD" qui offraient une plus grande liberté. ces licences permettent de redistribuer un logiciel libre sous une autre forme qui peut être non libre. Ces licences permettent donc à n'importe qui de changer la licence sous laquelle le logiciel est distribué. Les plus connues sont les licencesBerkeley software distribution (licence BSD) et Apache Software Foundation (licence Apache).

En 1998, Todd Anderson, Chris Peterson, John maddog Hall, Larry Augustin, Sam Ockman et Eric Raymond ont fondés l'Open Source initiative ( http://www.opensource.org/ ) avec pour idée d'avoir une approche plus adaptée aux réalités économiques et techniques des entreprises. Le mouvement Open Source s'attache moins à l'aspect philosophique des choses, il voit la disponibilité des sources plus comme étant la meilleur façon de développer dulogiciel que comme un mouvement social.

Concrètement, on parle plus de Logiciels Libres lorsque l'on parle philosophie et en parle plus d'Open Source lorsque l'on parle économie/entreprise.

Pour finir cette introduction, il me reste à parler d'une troisième famille de licence. En effet, nous avons donc vu qu'il y avait des licences peu permissives (GPL...) et des licences très permissives (BSD...) mais il existe une troisième famille de licences, à laquelle appartient laLGPL, et qui est considérée comme moyennement permissive. Elle est généralement utilisée par les composants logiciels (librairies) car elle permet à des logiciels non libres d'appeler du code source libre sans avoir à changer la licence de la partie non libre.

mercredi 18 juin 2008

Présentation de SaaS sur Angoulême le 26 juin

Le jeudi 26 Juin 2008, de 17h15 à 19h00, à l'Hôtel Mercure Angoulême, j'animerai (avec quelques partenaires) une conférence sur le Software As A Service qui est la nouvelle tendance du monde de l'informatique. Voici l'introduction :

Le Software As A Service (SaaS) est la nouvelle tendance du monde de l'informatique. Le principe est simple :

  • Le client n'a rien à faire. Il accède à l’application par internet avec un simple navigateur et paye une location.
  • Le fournisseur de l’application est responsable de l'hébergement, de la maintenance et de la continuité du service.

Par rapport aux logiciels classiques du marché comme Word, Sage, Excel... les avantages sont nombreux :

  • Économie d'argent (pas de serveurs, pas d'installation, partage des coûts, payer suivant vos besoins...)
  • Gain de temps (Déploiement et mise en oeuvre instantanée)
  • Le budget est dépensé dans les avantages concurrentiels plutôt que dans les infrastructures (mieux vaut acheter une option style calendrier partagé que d'acheter un serveur)
  • Un accès immédiat aux innovations (Chaque nouvelle option est disponible, pas besoin d'attendre et d'acheter les mises à jour)

Alors qu'IDC prévoit que le SaaS génèrera des dépenses annuelles atteignant 11 milliards de dollars d’ici à 2009, nous verrons durant cette présentation les acteurs, les avantages, les inconvénients et les évolutions des applications SaaS.

Si ça vous tente, n'hésitez pas à m'envoyer un email pour recevoir une invitation !

lundi 16 juin 2008

Slides de présentation de notre socle technique

Le principal métier de Scub est la réalisation d'applications pour des entreprises et des administrations. Quand on est de ce genre de métier, on se rend vite compte qu'on peut gagner en qualité et en temps en mutualisant tout un tas de chose et c'est dans ces moments là qu'on crée un socle technique !

Celui de Scub s'appelle Scub Foundation et il offre : Des structures identiques pour tous les projets. Des tâches de base pour la compilation, les tests, le packaging... Des librairies (fichiers jar) gérées automatiquement. L'intégration des frameworks les plus populaires La gestion des différents configurations par environnement (test, dev, prod...)

Concrètement, un nouveau développeur arrivant à Scub se contente de double cliquer sur un .bat ou un .sh et tout va s'installer tout seul (eclipse, gwt, maven, workspace…) et quand il créera des projets, ceux-ci reprendront tous la même structure, les mêmes tâches et les mêmes librairies.

Pour le moment, notre socle comprend : - Les librairies les plus classiques (Hibernate, Spring, JUnit, DBUnit, GWT, Acegi...) - Des tâches Maven spécifiques à nos besoins (Lancer le module GWT, jouer du sql, tests de performances...) - Nos librairies, comme celle par exemple qui permet de faire des tests de perfs via l'AOP de Spring - Tout un tas d'autres choses que j'ai pas le temps de lister.

Tout détailler serait trop long, on va faire ça progressivement :) Aujourd'hui, je commence par mettre à disposition les slides de la présentation que nous avons faites pour un de nos clients : http://www.scub.net/foundation/presentations/Presentation%20Scub%20Foundation.pdf

Nous allons maintenant nous concentrer sur la rédaction de la documentation qui sera publiée par étape sur un site spécifique dont je donnerai bientôt l'adresse.

mardi 3 juin 2008

Comment améliorer le développement d'UI ?

Suite à la sortie de GWT 1.5RC, un grand nombre de blogs se sont fait le relais de cette annonce. C'est ainsi que je suis tombé sur le billet de DNG Consulting (alias l'ami Sami), sur lequel il met en avant la rapidité de développement des interfaces grâce à GWT et Ext-GWT (GXT). Il présente d'ailleurs un aperçu écran d'un type d'application qu'il est possible de bâtir en 30min... même si je me doute qu'il indique un temps aussi court dans le but de donner un temps réel, je m'étonne un peu sur cette notion d'extrême rapidité. Surtout au regard de la qualité graphique de son aperçu...

Certes, maintenant, des frameworks comme Ext-GWT ou GWT-Ext permettent de concevoir de jolies interfaces plus facilement grâce à des composants poussés. Mais la conception d'une interface est quand même une grande source de bugs (bouton qui ne se réactive pas, ...), d'oublis (réinitialiser un champ, ...) et de réglages pointilleux (différences IE/Firefox, ...). Il faut aussi connaitre suffisamment ces frameworks pour pouvoir les utiliser rapidement. Notre première approche de GWT-Ext est pour l'instant mitigée face à la lourdeur de certains codes nécessaires pour intégrer un simple champ ou une barre d'onglets.

Nous utilisons actuellement un socle technique, que nous avons développé, qui nous permet d'améliorer significativement notre productivité pour la conception des noyaux. Néanmoins, le développement d'UI en GWT nous pose encore quelques problèmes de délais malgré ce socle qui nous facilite déjà beaucoup de choses. Nous sommes donc toujours à la recherche de solutions qui nous aideraient à développer plus vite nos applications clientes (interfaces). Lors de notre dernière réunion, nous avons remonté plusieurs points à mettre en place :

  • Passage en GWT 1.5 : plus rapide au niveau du développement car fortement typé et plus rapide à la compilation. Il apporte aussi son lot de nouveaux composants, sa gestion de thème....
  • GWT-Ext et GWT-Ext UX : une batterie de supers composants directement disponibles dans notre socle
  • Ajout du mode debug sur le hosted mode : là aussi on devrait gagner du temps sur le développement et le débugage.
  • Centralisation des composants dans le socle : remontée de nos différents composants génériques que l'on utilise dans plusieurs projets
  • Mise en place plus stricte des méthodologies : pattern observateur, gestion des pages,...
  • Création d'un projet exemple "Showcase Best Practice" : pour centraliser les méthodes d'utilisation des composants et les bonnes marches à suivre. Très à la mode en ce moment...


Ces derniers points devraient donc être mis prochainement en place, avec l'arrivée d'une nouvelle version de notre socle. Cependant, nous sommes toujours ouvert à vos suggestions, avis et expériences pour nous aider à nous améliorer et augmenter notre productivité sur la partie client/interface. N'hésitez donc pas à nous faire part de vos méthodes et des outils que vous utilisez (comme par exemple Selenium pour les tests unitaires, ...)

lundi 26 mai 2008

Une très bonne présentation sur les business models de l'Open Source

Voici une très bonne présentation "économique" de l'Open Source : http://stephesblog.blogs.com/presentations/BrentWilliamsEclipseConV02.pdf. Il y a dans le slide un fait très intéressant : "Red hat estime qu'il y a un milliard de dollars de R&D dépensé tous les dans dans le monde pour Linux. Red hat en tire tous les bénéfices en y investissant que 60 millions par an". C'est un aspect très intéressant de l'Open Source pour les PME comme la notre, nos moyens sont très faible en R&D (comparé aux autres) et pourtant, nous bénéficions des investissements de tous les autres dans ces mêmes produits !!!

lundi 19 mai 2008

Un moteur de recherche dans vos applications avec Hibernate Search.

Lorsque l'on développe une application pour un client, on se retrouve souvent avec des écrans de recherche à réaliser comme par exemple une recherche de clients par Raison Sociale / Métier / Code Postal. Techniquement, les développeurs utilisent le langage SQL pour réaliser ce genre de chose (like %%). Le problème c'est que ces recherches ont besoin de correspondances "exactes", c'est à dire qu'elles ne gèrent pas les approximations, les synonymes, la proximité, le classement par pertinence... Et aujourd'hui, les utilisateurs se sont tellement habitués à Google qu'ils ne comprennent plus que les écrans de recherche qu'on leur propose ne soient pas plus "intelligents".

Pour résoudre ce soucis, Hibernate a lancé un projet très intéressant : Hibernate Search qui permet d'utiliser le moteur de recherche Lucene directement sur le modèle des données ! Pratique ! Vous avez à disposition une API qui va vous permettre de faire des recherches avancées et en plis, la gestion de l'index peut se faire en synchrone ou asynchrose grâce à JMS !

Xebia a réalisé un excellent article d'introduction que vous trouverez à l'adresse : http://blog.xebia.fr/2008/03/06/introduction-a-hibernate-search-googling-your-persistent-domain-model/. Ils ont même réalise un projet pour montrer la mise en oeuvre : http://blog.xebia.fr/2008/03/28/hands-on-hibernate-search-recherche-full-text/.

lundi 5 mai 2008

La fin des infrastructures informatiques ?

Bien que je constate que de plus en plus de partenaires investissent dans les infrastructures (salles blanches, serveurs, ingénieurs, monitoring, licences, clims...), je suis de plus en plus perplexe ! Je continue de croire que la valeur ajoutée n'est pas dans les infrastructures. Les clients ne sont pas prêt à payer plus cher pour avoir une salle blanche plus proche, plus grande, avec plus d'extincteurs, des serveurs avec plus de ram... les clients veulent des applications qui fonctionnent un point c'est tout et ils sont prêt à mettre la main au portefeuille pour s'offrir des fonctionnalités qui vont les aider à être plus éfficace. Une société voudra bien mettre quelques euros de plus pour que sa CRM puisse envoyer des emailings avec images et avec avoir une statistique sur le taux de lecture des emails MAIS je ne vois pas cette société mettre de l'argent sur la table pour que sa salle blanche soit plus "prêt" de chez lui ou pour qu'elle ait plus d'extincteurs. Les gens veulent mettre de l'argent dans ce qu'il leur rapporte !

Pour moi, il faut se concentrer sur les applications et leurs fonctionnalités et tout ce qui permet de s'affranchir des infrastructures est un plus ! Les infrastructures doivent être des commodités comme l'est Internet. Aujourd'hui, qui payerait plus pour avoir un fournisseur local ? tout les FAI offrent Internet, ce qui compte, ce sont les options qu'on rajoute et ce qui fait que les clients vont vers un FAI ou un autre (si on occulte l'historique et les peurs des migrations). Si Free est une si belle boite, c'est bien grâce à ça !

Dans de domaine de la transformation en commodité des infrastructures, Google a fait un pas important avec Google App Engine (ok c'est sorti il y a un petit moment mais j'ai pas eu le temps de blogger le mois dernier). L'idée est simple, vous développez avec le kit de dev fourni et vous déployez en production directement sur l'infrastructure de Google. En utilisant leurs technologies, votre application peut ainsi passer de un utilisateur à un million sans les coûts énormes que cela engendrerait en temps normal. Concrètement, vous externalisez complètement l'infrastructure chez Google ! Rien à gérer, vous payez juste à l'utilisation, c'est pas formidable ça ?

Bon, mauvais point maitenant, le développement, pour le moment, doit être réalisé en Python et on est encore un peu limité :( Mais bon, gardons espoir, un jour viendra où nous n'aurons qu'à nous concentrer sur une seule chose : développer des fonctionnalités

mercredi 26 mars 2008

Mais pourquoi si peu de gens connaissent les ETL ???

L'année dernière, afin de répondre aux besoins de nos clients en "Business Intelligence", nous avons suivi une formation sur le décisionnel Open Source (auprès de la société http://www.bpm-conseil.com/). A la base, j'étais surtout intéressé par OLAP et la mise à disposition des cube via JPivot. Mais je dois bien dire que le produit qui m'a le plus impressionné a été Kettle, l'ETL libre de la suite Pentaho et c'est l'outil qui m'a fait le plus gagné de temps depuis un an (bien devant maven...). Alors, pour ceux qui ne savent pas ce qu'est un ETL, le principe est de graphiquement manipuler les données, les prendre dans des endroits très variés et de les mettre dans d'autres endroits tout aussi variés. Par exemple, si je devais faire une jointure entre deux bases de données différentes, enlever les doublons, rajouter un champs calculé, traduire des champs grâce à une table de correspondance dans un fichier excel, insérer le tout dans une base, puis dans un fichier et mettre celui-ci sur un ftp... je compte trois jours de dev en Java, avec un ETL, trois heures :) Malgré cela, je croise encore des dizaines de gens qui réalisent des applications dès qu'ils doivent manipuler des données.. Résultat temps perdu et maintenances complexe. Bref, pour ceux qui ne connaissent pas, jeter vous sur Kettle (ou talend qui est aussi open source mais français ;)). La très très bonne nouvelle, c'est que ce genre d'outil se prend en main en moins d'une heure.

vendredi 21 mars 2008

Règles à suivre pour une entreprise durable

Nos amis de Techcrunch ont fait un petit article intéressant qui rappelle les principes de base d'une société "durable" tels qu'ils ont été listés par les fameux investisseurs Sequoia Capital. Ce point de vue est très intéressant et je me suis amusé à faire un petit parallèle avec Scub.

Clarté de l'objectif

Le métier d'une entreprise doit pouvoir s'écrire sur le dos d'une carte de visite. Pour Scub : "Conception, réalisation et mise en oeuvre du système d'information des entreprises". Bien sûr, dans la réalité, on fait beaucoup de choses : SOA, Open Source, SaaS, architecture... Mais je trouve que cette phrase résume bien les choses.

Gros marchés

Lorsque l'on vise un marché très important, le nombre de clients potentiels existants permet de faire quelques erreurs et laisse un peu de temps pour faire des corrections. Nous visons les grandes entreprises et les grandes administrations du département, cela nous laisse pas mal de clients potentiels. __ Des clients riches__

Ces clients là seront prêts à payer plus cher pour un très bon produit. C'est pour cela que nous visons les grands comptes en priorité :) La course aux prix n'est pas notre objectif et depuis mon retour du Vietnam, j'ai bien compris que c'était une course perdue d'avance.

Focus

Les clients achèteront des produits simple offrant une valeur singulière. Dans notre cas, Architecture orientée service en Java.

Résoudre un problème

Choisissez un problème que vos clients ont et résolvez ce problème de manière simple et élégante. Pour nous, le problème : des systèmes d'information lourd et qui ne répondent pas aux défis de l'entreprise. Notre solution : une architecture orientée service en Java avec un maximum de composants libres.

Penser différemment

Il faut constamment essayer de trouver de nouvelles voies. C'est bien pour cela que nous nous lançons dans les applications SaaS.

L'équipe

Chaque membre de l'équipe doit être le meilleur dans le domaine qu'il exerce. Nous sommes aujourd'hui 9 et nous essayons toujours de permettre aux gens de faire ce qu'ils aiment et ce pour quoi ils sont bons. Nous avons 5 ans cette année et je suis fier d'annoncer que nous n'avons jamais eu de départs dans l'équipe !

Agilité

L'agilité et la rapidité permettent de battre les grosses sociétés. Tous les trois mois, nous réévaluons notre Business Plan et nous voyons quelles nouvelles technologies nous pouvons intégrer à notre socle technique. Nous évoluons constamment et nous changeons très souvent d'outils. Grâce à cela, je n'ai pas peur de me retrouver face à des SQLi et des Cap Gemini.

Frugalité

Concentrez vos dépenses sur l'essentiel. A Scub, de grandes tables, de bonnes chaises, de très bons PC portables sous Linux et d'excellentes conditions de travail (salaires importants, mutuelle, plan d'épargne entreprise, intéressement aux bénéfices...). A part ça, pas vraiment de dépenses !

Inferno

Commencer avec peu d'argent, cela force la discipline et la concentration. Exactement ce que je fais depuis le début :) Mais d'un autre côté, j'ai pas trop eu le choix !

lundi 17 mars 2008

Avec l'arrivée du SaaS, voici venir le HaaS !

Avec l'arrivée en force du Software as a Service, on voit tranquillement arriver le Hardware as a Service avec notamment les fameux service Amazon :

Le principe est simple, Amazon met à votre disposition une architecture extensible que vous utilisez selon vos besoins. Concrètement, pour EC2, vous pouvez démarrer/arrêter autant de serveurs que vous voulez. Imaginez, vous déployez votre application sur un serveur pour commencer et vous avez un succès fou, pas besoin de commander d'autres serveurs et d'attendre qu'ils soient prêt, vous utilisez tous simplement les webservices d'EC2 pour démarrer les 20 autres serveurs dont vous avez besoin.

Vous avez le choix entre trois types d'instance de serveurs :

  • 1.7 GB memory, 1 EC2 Compute Unit, 160 GB de stockage et archiecture 32-bits.
  • 7.5 GB memory, 4 EC2 Compute Units, 850 GB de stockage et archiecture 64-bits.
  • 15 GB memory, 8 EC2 Compute Units, 1690 GB GB de stockage et archiecture 64-bits.

Les tests réalisés par RightScale ont l'air plutôt concluant.

Amazon fournit des Amazon Machine Images (AMIs) qui fonctionne sur le même principe que les virtual appliances de VMWare (que nous utilisons ici à Scub). Ceci évite de se faire ses propres images from scratch et permet ainsi de gagner un peu de temps, il y en a même une AMI pré configurée avec Tomcat.

En ce moment, nous sommes en train de bâtir une application SaaS dont le nombre d'utilisateurs final n'est bien sûr pas connu. Nous avions pensé à migrer de Spring vers EJB3 pour éviter les limitations des singletons Spring et donc supporter plus d'utilisateurs. Mais du coup, nous nous posons la question de garder notre architecture telle quelle et juste ajouter des serveurs au cluster quand nous arriverons à la limite d'un serveur. Il y a justement un article très intéressant sur la mise en place d'un cluster J2EE avec AWS. A noter qu'il y a aussi un ensemble de plugin maven pour gérer la plateforme AWS.

vendredi 14 mars 2008

GWT 1.5 Milestone 1 disponible... en attendant la version finale

Joli cadeau que nous fait là Google en nous offrant (enfin) un avant gout de la version 1.5 de son très bon framework Google Web Toolkit.

Parmi les nouveautés / améliorations qui nous tardent le plus, citons :

  • le support de Java 5 qui va nous apporter :
    • les génériques : fini les @gwt.typeArgs dans la javadoc (des alertes encourageront d'ailleurs à utiliser les génériques)
    • les annotations (même si @SuppressWarning qui aurait été utile avant, ne servira pas tellement maintenant avec le support des listes typées)
    • l'autoboxing qui permet la conversion automatique entre un type primitif et l'objet qui s'y rapporte (ex : int <-> Integer) [même si ça peut inciter à un manque de rigueur et entrainer quelques erreurs (pour des cas précis) dans des tests d'égalité]
  • l'ajout d'une méthode setDebugId() qui permet de donner un id à un element sans passer par le DOM. Voila une alternative bien pratique pour que l'on puisse se tourner à nouveau vers Selenium pour tester nos interfaces graphiques, l'utilisation excessive du DOM pour affecter un id à chaque élément testable ne nous convenant pas tellement. De plus, cette fonction sera ensuite ignoré dans le code final pour ne pas le surcharger inutilement, à la façon de GWT.log().

Cette nouvelle version s'est vraiment fait attendre mais je pense qu'elle va vraiment valoir le coup ! Je vais essayer de trouver le temps de tester cette preview mais on attendra la release finale avant d'envisager migrer notre socle vers la version 1.5.

En attendant, on va pouvoir commencer à imaginer les futurs évolutions que Google nous apportera dans la prochaine version (génération automatique des services asynchrones à partir des interfaces, ...).

mercredi 12 mars 2008

Article d'introduction à OSGi

Voici un bon article d'introduction à OSGi ! J'ai un peu honte mais j'avais pas encore eu le temps de me renseigner là dessus alors que j'en entends parler très souvent. Voilà, c'est fait, je sais ce qu'est OSGi est c'est franchement pas mal même si ce n'est pas non plus une grosse révolution. A Scub nous utilisons déjà pas mal l'injection de dépendance pour éviter les couplages trop fort. Nous n'en sommes pas encore à utiliser OSGi, pour le moment, nous nous concentrons sur la nouvelle version de notre socle technique qui commence vraiment à être très efficace ! Pour info tout de même, le fameux serveur d'applications JOnAS a une architecture basée sur OSGi.

lundi 10 mars 2008

Mes applications préférées

Voici une liste de mes applications préférées (elles sont toutes en ligne bien sur ;))

  • Gmail : Ma boite email professionnelle et personnelle.
  • Google Calendar : Mon agenda. Partagé avec mes employés, synchronisé avec mon palm grâce à GooSync.
  • Google Docs : Tous les documents de la société sont là dessus.
  • Google Reader : Pour lire les actualités et les blogs.
  • Google Notes : Toute les notes que je prends et que j'ai la flemme de pas entrer comme document classique dans Google Docs.
  • Dotclear : Notre blog :)
  • Rememberthemilk : Outil fantastique pour traquer toutes les tâches que j'ai à réaliser (vraiment génial comme outil).
  • SugarCRM : Ma gestion de clientèle. Elle sert essentiellement de carnet d'adresses et d'outil de tracking d'opportunités.
  • Google sites : Notre intranet !
  • Mantis : Outil de gestion des bugs. Utilisé pour tracer les incidents clients et leur gestion.

Finalement, à part les outils Java et firefox, j'ai tout en ligne ! Si vous avez des suggestions, n'hésitez pas à laisser vos commentaires, je suis preneur :)

vendredi 7 mars 2008

Application Ajax impressionnante !

Et voilà une des applications Ajax les plus impressionnantes que j'ai jamais vu : http://www.editgrid.com/untitled ! Qu'on ne vienne pas me dire que les applications web sont loin d'être aussi ergonomique que les applications bureaux classiques. Quand je vois des tableurs comme ça, je me dis que Microsoft est face à un terrible dilemme :

  • Ne pas faire de tableur web mais risquer de voir les gens se tourner vers des produits comme editgrid.
  • Faire un tableur web et perdre la vache à lait extraordinaire qu'est Office.

Bref, dans les deux cas, ils perdent et les utilisateurs gagnent :) Enfin une bonne nouvelle !