Oracle Application Express (APEX) : Un outil intéressant pour certains types d’applications Web ?

J’ai dernièrement expérimenté avec un outil fourni avec la version gratuite de la base de données Oracle. J’ai même fait une petite application pour le groupe DBA chez mon employeur. APEX est un outil de développement rapide d’application Web basée sur la base de données Oracle, et ce avec un minimum de code. J’étais pourtant extrêmement sceptique par rapport à cet outil de au départ, et ce, pour plusieurs bonnes raisons. Premièrement, il va à mon avis à l’encontre des courants actuels de développement Web, (par exemple dans Rails, Grails et autres MVC) où la base de données est dérivée du modèle d’affaire et non l’inverse. Ce n’est pas non plus le genre d’outil que nous pouvons voir sur le « cloud » non plus. On pourrait même dire que la façon de développer va à l’encontre des courants de développement passés (au moins depuis 2000 / 2001) puisque le tout génère du PL-SQL, le langage de procédures stockés de Oracle. Non, il n’y a pas de middleware. On retourne loin dans le passé avec cela. Je me rappelle bien avoir développé des applications Web directement en PL-SQL au début de ma carrière, et je sais bien que ce n’est pas parce qu’on utilise un langage dans la base de données qu’on ne peut pas utiliser certains des principes du modèle vue contrôleur. Par contre, quand on parle de développement Web en PL-SQL, ça fait rire un peu, parce que ça fait longtemps qu’on ne fait plus cela.

Malgré mon énorme (euphémisme) scepticisme, j’ai regardé une présentation organisée par OraGec (lien) le groupe d’intérêt Oracle à Montréal. J’ai pu y remarqué deux choses : APEX n’est pas vraiment dans le radar des gros sous chez Oracle. Il y a aussi une communauté tissée serrée qui fait des applications à haute disponibilité avec. On pourrait dire qu’APEX est capable de créer des applications internes rapidement, très fonctionnelles, sans avoir dix couches de redirections de middleware. Lorsque l’objectif est de mettre une base de données existante sur l’intranet (ou le Web aussi), seulement quelques requête SQL sont nécessaires pour générer le tout. Cela peut aller assez loin aussi, ça supporte les Web Services, des contrôles peuvent être créés, on peut évidemment faire du transactionnel avec, etc… Ce type d’application prendrait beaucoup plus de temps à créer avec des serveurs d’applications et des framework Java (ou autre), même avec Grails. Dans ma tête, le clique s’est fait et je me suis dit que dans certaines situations (et peut-être dans d’autres) APEX pourrait bien être une recette secrète qui diminue le coup de développement. J’ai posé les questions habituelles du trippeux de standards Web : est-ce que tout cela génère du code conforme et accessible ? Évidemment non, les contrôles ne respectent pas encore la section 508 (loi aux États Unis), en tout cas pas dans la version actuelle (4), mais peut-être dans la prochaine version. APEX est donc DOA pour des sites Web traditionnels (le SEO n’est pas évident à faire non plus). Toutefois, on peut peut-être y faire qqch. Il est possible de modifier les templates HTML que l’outil génère. Ce serait certainement possible d’améliorer les choses de ce côté. Je me suis dit que ce serait intéressant d’organiser une présentation en collaboration avec le W3Québec pour parler du templating de ce type d’application. (ergonomie, etc). J’ai donc proposé la chose au groupe OraGec et au W3Québec et le résultat de cela sera présenté lundi prochain, le 29 mars 2010.

Ceci dit, j’ai développé un petit qqch avec l’outil, et malgré le fait que le SQL n’est pas ma majeure, et que l’outil génère ce que je fais à la main habituellement, le temps de développement fût très court, probablement aussi court que si je l’avais fait avec du Grails. Quand on travaille avec une BD déjà montée, ça va très bien. Si vous travaillez dans une équipe de DBA et de développeurs de base de données, ça utilise très bien leurs connaissances et cela donne qqch de somme toutes très bien.

Je me dis qu’il faut être ouvert dans le type d’applications Web que l’ont construit. Autant que j’aimerais que ce soit le cas, mon expérience me dit qu’il n’y a pas de « one size fits all » dans les frameworks d’application (particulièrement les rapides). Vous avez beaucoup d’investissement dans les BD Oracle, ça vous tente de faire du développement d’applications Web rapides qui n’ont pas nécessairement besoin d’être accessible ? Prenez la peine d’évaluer Oracle Apex, à mon avis, ça vaut le coup ! Qui sait, les contrôles seront peut-être accessible pour la prochaine version. (Anyway, les contrôles ne sont pas nécessairement accessibles avec les frameworks 6 fois plus lourds alors…)

Vous êtes dans le monde des bases de données Oracle et vous aimeriez en savoir plus sur les interfaces Web (accessibles et conformes), venez faire un tour au W3Québec. Vous êtes spécialistes de front end, mais voudriez travailler dans des projets plus près de la BD, faites au tour à la prochaine réunion du W3Québec, (et devenez membres tant qu’à y être) ! Une des choses que je considère importante dans les groupes d’intérêt comme le W3Québec, c’est qu’il ne faut pas rester dans des silos et rester ouvert. Travailler avec des applications du type de APEX nous amène à avoir des points de vues différents et faire des rencontres que nous ne ferions pas nécessairement. Augmentons la discussion et les échanges !

Quelques liens :

Tiens, je viens de découvrir qu’il y avait un groupe d’intérêt spécifique à APEX au Québec : ApexQuébec. Faudrait bien que je les contacte!

Retour sur Confoo.ca

Premièrement, j’aimerais remercier la gang de confoo.ca (PHP Québec, Python Montréal, Ruby Montréal, OWASP et bien sûr le W3Québec) pour cette très bonne conférence. Ce fût vraiment intéressant. Les présentations étaient de très bonne qualité et le tout était, il faut l’admettre, ridiculement pas cher pour la qualité. C’est sûr, il y avait moins de bébelles dans les sacs de conférence (et pas tant de commanditaires que cela), mais si vous allez à une conférence pour cela, je pense que vous avez des problèmes avec vos priorités 😉 !

J’ai bien aimé le keynote de Mark Pilgrim sur HTML5. Je ne m’attendais pas à grand chose je dois l’admettre, car je n’ai pas vraiment confiance en la gang du WHATWG. Avec tout le FUD que les membres du WHATWG sortent (ex : faire croire que Adobe sont contre le HTML5 et veulent le bloquer), j’avais peur qu’il nous sorte des niaiseries du genre. Mais non, son keynote parlait de grandes lignes du HTML5, et c’était très bien. En fait, il parlait aussi que le HTML5 dans le fond, c’était l’ensemble des nouvelles technologies et spécifications entourant ce qui roule dans un navigateur (HTML5, CSS3, Javascript, Géolocalisation, etc). Il n’a pas tort. Enfin, il a très tort, mais comme le WHATWG (et Google, et Apple, etc) possède le leadership dans tout ce qui est nouvelles spécifications Web, ce qui pourrait être vu comme mensonge va devenir réalité (avec la pub et les conférences et etc), un peu comme dans 1984 de Georges Orwell. Faut admettre que c’est de la bonne manipulation pour faire entrer dans le HTML5 les choses que le W3C ne veut pas inclure dans celui-ci (comme Microdata et la géolocalisation, par exemple). Dans sa présentation, on pouvait y voir une slide qui donnait les dates où Netscape découvrait le Web (et le ruinait), et où Microsoft découvrait le Web (et le ruinait). Il a oublié la date où le WHATWG découvrait le Web (et la ruiné), car je commence à croire que qqpart qu’il faut ruiner le Web pour le faire avancer.

Sa présentation m’a aussi fait réaliser que nous changeons de paradigme. Au lieu de penser à un ou des standards avec une version spécifique et sur lequel nous nous basons pour construire un site Web, nous choisissons à partir d’un « melting pot » un « set » de technologies qui sont compatibles avec les agents utilisateurs que nous visons. En effet, nous pouvons bien faire une application HTML(5) qui est faite spécifiquement pour un iPhone ou encore qui sert de widget sur un système d’exploitation et qui ne roule pas nécessairement sur le Web. Cela fait contraste avec XHTML 1.1, qui définissait des modules qui eux même pouvaient ou pas être supporté par des agents utilisateurs. La façon de faire de HTML ongoing est plus free for all, mais plus flexible. Au départ, je n’aimais pas l’approche trop n’importe quoi de HTML5, mais finalement, ce sera peut-être pour le meilleur, et cela n’empêche pas chacun des morceaux d’être très bien spécifié, même s’ils n’ont pas leur namespace à proprement dit. On va voir ce que cela va donner. Si on veut absolument suivre un standard plus strict, on pourra toujours choisir un style de codage comme on le fait dans les langages de programmation.

Cela m’a quand même ennuyé que M. Pilgrim ignore dans sa slide sur l’historique du Web les contributions des Zeldman, Meyer et autres WASP dans l’évolution des standards Web dans le marché. Mais bon, c’est probablement moi qui cherche des conspirations là où il y en a pas.

J’ai parlé à M. Pilgrim suite à sa présentation, je n’ai pas pu lui poser beaucoup de questions, sauf une : « Pourquoi tant de haine envers les balises « summary » et « longdesc ». » Il m’a répondu que c’était puisqu’elles ne fonctionnaient pas. Je ne peux pas vraiment m’obstiner avec ce point, je ne suis pas un spécialiste en accessibilité après tout. Supposément que les lecteurs de texte supportent ou supporteront les éléments qui remplacent ces deux attributs comme « aria-described-by ». Je me suis aussi involtairement proposé pour traduire son livre sur le HTML5 en lui posant la question si une traduction française serait disponible. Pas sûr que je vais avoir le temps, mais ce serait super cool si je pouvais le faire. Dernier point : M. Pilgrim a parlé de l’achat de ON2 par Google, et a spécifié qu’il ne pouvait rien dire de plus. Pensons que Google aimerait bien régler l’impasse des codecs pour l’utilisation de la balise video. Ce serait une très bonne chose. Sans contredit, Google est le leader à suivre en ce moment.

J’ai aussi discuté avec Joey Devila, un évangélisateur open source chez Microsoft : un gars bien sympatique qui joue de la musique industrielle avec son accordéon. Il m’a dit qu’Internet Explorer 9 aurait des choses pas mal intéressantes au niveau des standards Web. Je serais surpris qu’Internet explorer 9 supporte la balise « canvas », mais on a déjà vu plus bizarre. Après tout, la meilleure façon d’aider Silverlight est peut-être en premier lieu de faire mal à Flash. Les balises canvas et video seraient un bon moyen … Et puis, peut-être que Microsoft se rend compte que le marché de Silverlight est bien plus dans les intranets que sur le Web… ou encore qu’il y a une équipe chez Microsoft qui travaille vraiment sur les standards Web et les vends à l’interne. Ça ne me suprendrait pas du tout. C’est drôle de voir comment Microsoft essaie d’attirer les développeurs « open source ». Je ne suis pas certain que cela marche à tout coup, mais cela ouvre sûrement des opportunités intéressantes pour tous. (mise à jour : IE9 va supporter XHTML et SVG : Les poules ont des dents!)

Les autres points forts de cette conférence ont été pour moi la présentation de Elie Sloïm sur la qualité du Web et celle de Vincent François (AccessibilitéWeb) sur l’accessibilité au gouvernement du Québec.

J’ai aussi présenté à la “unconference” un petit qqch sur le HTML5, mais malheureusement, le tout ne fût pas assez publicisé pour que beaucoup de personnes y soient présentes. Par contre, le tout m’a inspiré le billet que je vous présente ici.

Je souhaites beaucoup de succès à l’équipe de confoo.ca, et j’espère que je pourrai y contribuer plus l’année prochaine.

Quelques liens en rapport avec ce billet :