lundi 8 mars 2010

Strong typing in web application

Lorsque je s'écrire un programme, j'ai horreur d'avoir des surprises au moment de l'exécution du programme (at runtime). Pour palier à ces mauvaises surprises, il faut d'abord compiler le programme. Celui-ci va effectuer des vérifications et donc éviter d'avoir de mauvaises surprises à l'exécution du programme.
Cela dit, pour assurer une vérification optimale de la part du compilateur, il faut avoir recours à un typage fort.

Maintenant, imaginez que l'on puisse appliquer ces principes avec des  développements web. Car lorsque l'on développe une application web, c'est généralement tout l'inverse. En effet, le web est traditionnellement une technologie runtime (ex : PHP, JSP, ASP, javascript, ...). Qui n'a pas eu a faire à l'erreur HTTP 500 ? Ou bien à des mises en formes cassées suite à une réorganisation des fichiers CSS ?
Vous l'avez compris, les développements web sont souvent délicats à tester car nous manipulons plusieurs technologies runtime.

En plus, des bugs générés par cet état de fait, il y a une autre incidence à cela; J'ai nommé la productivité, c'est pourquoi le scaffolding a le vent en poupe ces derniers temps. Le code généré est fiable et vite obtenu. Mais cette technique n'est qu'un pisalé, car inévitablement il faudra retoucher le code généré un moment donné, et là on retrouve les problèmes que j'ai précédemment cité.

Alors, existe-t-il une solution qui permet de développer des applications web, avec une compilation préalable ? Et bien oui, il s'agit de Google Web Toolkit. Depuis la version 2.0 de GWT, il est possible de compiler l'HTML et le Javascript, mais aussi le CSS  et les ressources (images, textes, documents, ...).
Et même en utilisant le UI-binder, le compilateur garantie que toutes les vérifications nécessaires seront réalisées. Par exemple, si un style CSS est référencé dans un composant et qu'il n'existe pas, alors le compilateur signalera une erreur. Avec ce simple exemple, on comprend très vite que GWT permet non seulement de réaliser des applications fiables, mais aussi de manière rapide.


samedi 27 février 2010

MyColocation

Aujourd'hui est en grand jour (pour moi), je viens de mettre en ligne la première version de mon application "MyColocation". L'objectif de cette application est de permettre la gestion quotidienne d'une colocation. Dans cette version je me suis essentiellement attaché a gérer les tâches qui incombent aux colocataires. Cela signifie, identifier les tâches, mais aussi les répartir de manière collaborative, et les suivre.
Du côté de l'ergonomie, j'ai essayé de rendre l'application la plus simple. J'ai donc naturellement eu recours au Drag&Drop.

Cette application est entièrement écrite avec GWT 2.0.3 et les API de GAE 1.3.1. Je trouve que mes développements ont été relativement productifs.
Cela est dû à la productivité engendrée par GWT 2 (Uibinder et Dev mode), mais aussi à la grande facilité d'utilisation d'App Engine. En effet, il est possible de développer et tester localement son application, avant de la déployer sur le Cloud. La gestion des versions est plutôt bien pensée et la console d'administration est plutôt riche.
Le seul point négatif que j'ai pu noter, est les limitations imposés par Google au niveau du DataStore et en particulier le support limité de JPA. L'apparition récente des curseurs, me laisse espérer que ces limitations vont progressivement disparaitre.

Pour vous faire une idée de cette application, je vous invite à vous rendre à l'adresse suivante : mycolocation.
N'hésitez pas à me faire des suggestions d'améliorations, je ferais mon possible pour en tenir compte.

samedi 13 février 2010

GWT 2.0.2 est là : Google très réactif

Depuis la sortie de la version 2.0 de GWT, on assiste à une adoption de la plus en plus large de GWT en France et les migrations de GWT 1.x à 2.0 se succèdent. Dans le même temps, tout un écosystème s'est mis en place autour du toolkit : plugin eclipse, speedtracer, plugin browser for devmode, ...
D'autre part, la réactivité de l'équipe Google est de plus en plus visible : depuis la version 2.0 sortie en décembre 2009, deux versions correctives ont vues le jour (version actuelle 2.0.2). Et Google ne compte pas s'arrêter en chemin; Pour preuve, Bruce Johnson (le responsable du projet GWT), a fait des appels du pied récemment à la communauté, pour que des développeurs rejoignent l'équipe GWT  à Atlanta.
Tout ces éléments me font dire, que GWT est en train de monter en puissance et de s'industrialiser. Google vise clairement le marché des entreprises avec GWT, comme il est entrain de le faire avec sa suite Google Apps.
Cela promet, donc une année 2010 riche en nouveautés et en projets d'entreprise.


Pour ma part, je travaille actuellement sur un projet GWT App Engine dont je vous donnerais des nouvelles très bientôt.