• Aucun résultat trouvé

Les langages de programmation

5.5.1 Choix des langages de programmation

Un langage de programmation est un langage informatique nous permettant d'écrire un code source qui sera analysé par une machine, pour nous en l’occurrence un ordinateur. Le code source subit ensuite une transformation ou une évaluation dans une forme exploitable par la machine, ce qui permet d'obtenir un programme. Les langages permettent de faire abstraction des mécanismes de bas niveau de la machine, de sorte que le code source représente une solution pouvant être écrite et comprise par un être humain (18).

Un langage de programmation permet donc d'écrire du code source qui sera analysé par l'ordinateur. Il existe actuellement trois façons d’utiliser ce dernier, ce qui définit le type du langage.

Le Langage compilé

Le code source est donné à un programme appelé compilateur qui va le lire et le convertir dans un langage que l'ordinateur sera capable d'interpréter : c'est le langage binaire, fait de 0 et de 1. Les langages comme le C ou le C++ sont des langages dits compilés.

Page 66

Langage précompilé

Ici, le code source est compilé partiellement, généralement dans un code plus simple à lire pour l'ordinateur, mais qui n'est pas encore du binaire. Ce code intermédiaire devra être lu par ce que l'on appelle une machine virtuelle, qui exécutera ce code. Les langages comme le C# ou le Java sont dits précompilés

Langage interprété

Dans ce cas, il n'y a pas de compilation. Le code source reste tel quel, et si on veut exécuter ce code, on doit le fournir à un interpréteur qui se chargera de le lire et de réaliser les actions demandées.

Les scripts sont majoritairement interprétés. Ainsi donc, quand on fait référence au langage JavaScript, cela signifie qu'il s'agit d'un langage interprété! Il est donc nécessaire de posséder un interpréteur pour faire fonctionner du code JavaScript, et un interpréteur, vous en utilisez un fréquemment : il est inclus dans votre navigateur Web!

Chaque navigateur possède un interpréteur JavaScript, qui diffère selon le navigateur. Si vous utilisez Internet Explorer, son interpréteur JavaScript s'appelle JScript (l'interpréteur de la version 9 s'appelle Chakra), alors que celui de Mozilla Firefox se nomme SpiderMonkey et celui de Google Chrome est V8 (19).

Le choix d’un langage peut donc induire par la suite une contrainte de système d’exploitation, ce qui peut ne pas être désiré dans certains cas. Pour prendre un exemple, un outil ayant été développé en VB ne peut être installé que sous des machines Windows. De plus la solution peut ne plus être forcément supportée suite à des mises à jour système. Cet outil nécessite par exemple des modifications pour pouvoir être ne serait-ce qu’installé sur des machines Xp Sp3. En même temps, cela fait partie des facteurs qui sont difficiles à jauger lorsque l’on fait le choix de tel ou tel langage. Et il est également difficile de dire quel avenir on prévoit pour son utilisation. Microsoft a d’ailleurs plus ou moins abandonné VB au profit du Framework.Net.

Comme pour d’autres langages du même type que VB, un point induit est la nécessité d’une compilation pour générer un exécutable. Ce qui implique un inconvénient direct, la complexité de déploiement sur tous les sites désireux d’utiliser cet outil. J’ai eu l’occasion de me déplacer plusieurs fois dans deux hôpitaux parisiens pour me rendre compte de l’inconvénient d’une telle solution. Comme nous, les hôpitaux n’ont pas forcément les mains libres pour manipuler leurs machines. Ils ne peuvent donc pas installer quand bon leur semble des outils, aussi pertinents soient-ils. C’est un point important de bien avoir à l’esprit que les droits administrateurs ne sont pas acquis d’office, même lorsque l’outil en question a pour but une utilisation inter-entreprise.

Page 67

Un point positif qu’il faut reconnaître à VB est son côté convivial et la facilité de faire des interfaces graphiques pour Windows, parce que, encore une fois, il n’est pas portable sur d’autres systèmes d’exploitation.

Portable par contre, le langage Java est un langage de programmation informatique orienté objet. Devant également être compilé, la particularité principale de Java est que les logiciels écrits dans ce langage sont très facilement portables sur plusieurs systèmes d’exploitation tels que UNIX, Windows, Mac OS ou GNU/Linux, avec peu ou pas de modifications. C’est la plate-forme qui garantit la portabilité des applications développées en Java. C’est un point à considérer si l’on travaille pour un client dont on ne connaît pas le parc informatique.

Mais le programme Java s’exécutant dans une machine virtuelle, cela nécessite l’installation de la plate-forme sur le poste client, et donc d’avoir les droits administrateurs sur leurs postes.

Il faut également avoir à l’esprit que dans le développement d’un outil en Java, initialement multiplate-forme, si l’on vient à y insérer des commandes spécifiques propres à un système d’exploitation, on se retrouve à ne plus pouvoir bénéficier de l’avantage multiplate-forme.

Le PHP est également multiplate-forme. Un langage initialement prévu pour le développement de pages web dynamiques (20). Sa syntaxe est proche du C++. Pas de compilation, simple à modifier, et un développement essentiellement orienté vers une plate-forme client-serveur. PHP, pour Personal Home Page, est un langage de scripts libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP. Il a l’avantage de fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un langage disposant depuis la version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plate-forme plus qu'un simple langage.

Certains projets ne se suffisent pas à eux-mêmes, ils ont besoin d’informations provenant d’un autre logiciel. Certaines sont insérées de façon manuelle, mais d’autres doivent pouvoir être traitées de façon automatisée. Pour ce faire, l’emploi d’un fichier pivot est nécessaire et un format bien adapté est le XML.

XML pour Extensible Markup Language est un langage informatique de balisage. L'objectif initial est de faciliter l'échange automatisé de contenus complexes (arbres, texte riche…) entre systèmes d'informations hétérogènes pour obtenir une certaine interopérabilité.

Quel que soit le type de projet sur lequel on peut être amené à travailler, un des besoins principaux est la gestion des informations. Les fichiers pivots sont une solution si l’on n’a pas le choix, mais la solution la plus appropriée est la base de données. Et si nous voulons afficher ou entrer des informations sur une fenêtre de

Page 68

notre logiciel ou sur une de nos pages Web, il faut pouvoir accéder à ces données. Ceci passe par des requêtes et donc d’un langage de requêtes et le plus courant est sans conteste le SQL.

Le SQL pour Structured Query Language est un langage informatique normalisé qui sert à effectuer des opérations sur des bases de données. La partie langage de manipulation de données de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des éléments dans les bases de données. En plus du langage de manipulation de données, la partie langage de définition de données permet de créer et de modifier l'organisation des informations dans la base, la partie langage de contrôle de transaction permet de commencer et de terminer des transactions, et la partie langage de contrôle de données permet d'autoriser ou d'interdire l'accès à certaines données pour certaines personnes. Toutes ces manipulations se font autour d’une base gérée par un SGBD.

5.5.2 Nos choix

Ne serait-ce que dans le terme application web, on a déjà isolé le principe même de ce que l’on veut mettre en place. Mais il existe deux types de site web : les sites statiques et les sites dynamiques.

Les sites statiques sont des sites réalisés uniquement à l'aide des langages HTML et CSS. Leurs contenus ne peuvent pas être mis à jour automatiquement. Il faut que l’on modifie le code source pour y ajouter des nouveautés. Adaptés pour réaliser des sites "vitrine" ou pour présenter le Cnam, mais sans aller plus loin, ce n'est pas très fonctionnel quand on doit mettre à jour son site plusieurs fois dans la même journée!

Dès que l'on y ajoute un élément d'interaction (comme un formulaire de contact), on ne parle plus de site statique mais de site dynamique.

Les sites dynamiques sont plus complexes, ils utilisent d'autres langages en plus de HTML et CSS, tels que Java, PHP et MySQL. Le contenu de ces sites web est dit "dynamique" parce qu'il peut changer sans notre intervention. D’ailleurs, la plupart des sites web qu’on visite aujourd'hui sont des sites dynamiques.

Le seul pré requis pour créer ce type de site est déjà de savoir réaliser des sites statiques en HTML et CSS.

HTML pour (Extended) Hypertext Markup Language, est le format de données

conçu pour représenter les pages web. C’est un langage de balisage qui permet de mettre en forme le contenu des pages, d’inclure des ressources multimédias dont des images, des formulaires de saisie, etc. Il est souvent utilisé conjointement avec des langages de programmation comme JavaScript et des formats de présentation comme les feuilles de style en cascade.

Page 69

Le JavaScript est un langage de programmation de scripts principalement utilisé

dans les pages web interactives. Il semble que ce soit la solution la plus adéquate. C’est aussi une des solutions les plus éprouvées par les développeurs. Il permet de faire réagir nos pages web à certaines actions de l'utilisateur sans avoir à questionner le serveur. Par exemple réagir aux saisies de l'utilisateur dans un formulaire et vérifier le format des données.

Il est également fait mention des feuilles de style en cascade, CSS pour

Cascading Style Sheets. C’est un langage informatique qui sert à décrire la présentation des documents HTML. L'un des objectifs majeurs des CSS est de permettre la mise en forme hors des documents. Il est par exemple possible de ne décrire que la structure d'un document en HTML, et de décrire toute la présentation dans une feuille de style CSS séparée. Les styles sont appliqués au dernier moment, dans le navigateur web des visiteurs qui consultent le document. Cette séparation fournit un certain nombre de bénéfices, de changer plus facilement de présentation, et de réduire la complexité de l'architecture d'un document.

Le langage HTML correspond fort bien à nos attentes de simplicité pour une utilisation ultérieure par l’équipe éditique.

Nous avons donc les langages qui seront utilisés pour les pages web. Mais comme on l’a mentionné, il existe deux types de site, les statiques et les dynamiques. Et pour ce faire il y aurait là encore plusieurs façons de dynamiser notre application. Les principales solutions sont celles proposées par Microsoft avec ASP et ASP.NET, Sun Microsystems avec JSP (Java Server Pages) et Servlets, Adobe (exMacromédia) avec Coldfusion et enfin PHP.

Si l’on élimine d’office les solutions propriétaires comme Microsoft et Adobe, il nous reste un choix entre deux grands concurrents sur le marché que sont le JAVA et le PHP. Dans notre volonté de pouvoir faire évoluer notre application facilement par des personnes non informaticiennes de formation, Java ne parait pas la meilleure des solutions.

Il existe donc différents langages de programmation autour des applications Web pour générer ce code HTML. Et celle proposée par le PHP semble mieux répondre à nos attentes. Le PHP est conçu pour être inséré dans le HTML et construire des pages web dynamiques côté serveur, notamment à partir de bases de données. Il est également multiplate-forme et simple à modifier dans la mesure où ce n’est que du texte. Il offre l’avantage d’avoir un aperçu rapide des modifications dès le remplacement du fichier modifié, d’où son intérêt au niveau de la souplesse de maintenance.

Le choix a été fait de se tourner vers PHP et comme pour toute application

Page 70

choix se porte sans aucun doute vers SQL. Non content d’être le plus répandu il est souvent utilisé conjointement avec PHP.

Lors de l’arrivée des fichiers à imprimer, nous sommes récepteurs de fichiers Excel faisant un récapitulatif de l’édition. Le service nous délivrant ces fichiers nous a fait comprendre que l’envoi d’un fichier XML n’était pas impossible. Il y a donc de

fortes chances que l’on choisisse ce langage pour automatiser l’import de certaines informations.

Voici donc les choix qui ont été faits quant aux types d’applications et langages qui seront utilisés pour la construction de l’application. Nous pouvons maintenant aborder la façon dont nous allons gérer les données. Données sur lesquelles ces langages vont pouvoir s’exprimer.