Ce livre blanc présente un résumé de l’histoire de l’informatique qui vous permettra de mieux comprendre l’évolution future à partir de la connaissance du passé.
Suivant la petite histoire de l’informatique, le premier ordinateur remonte à l’époque de la Deuxième Guerre mondiale. Afin de pouvoir décrypter facilement les messages codés allemands, Alan Turing, un mathématicien de génie, inventa un instrument mécanique programmable qui permettait l’analyse et le décryptage des messages.
Depuis, l’avancement de la micro-informatique, les langages de programmation et les méthodes n’ont cessé d’évoluer. Cela est lié en partie aux recherches constantes dans ce domaine mais, aussi, à la complexité croissante des besoins et des demandes du marché.
Vous trouverez dans les pages qui suivent un résumé de l’histoire de l’informatique qui vous permettra de mieux comprendre l’évolution future à partir de la connaissance du passé.
Depuis l’avènement des transistors, qui sont à la base des microprocesseurs, et des ordinateurs, les programmeurs ont mis au point des outils permettant de décrire plus facilement les procédures à exécuter. Les transistors ne transigeant qu’avec des « 0 » et des « 1 », il est évidemment fort peu pratique d’utiliser ce langage avec des êtres humains. De plus, les microprocesseurs contiennent des instructions de base désignées comme « langage assembleur ». Ce dernier contient des fonctions de base comme les suivantes :
Ce langage devient vite trop lourd lorsqu’il s’agit de décrire des applications importantes.C’est pourquoi des langages plus évolués ont été inventés par la suite :
Avec le lancement, dans les années 70, des micro-ordinateurs, notamment d’Appel II+, et plus particulièrement, en 1981, du « Personnal Computer » (PC) d’IBM, l’informatique devenait accessible à tous. Une panoplie d’environnements informatiques fut mise sur le marché, afin de permettre au grand public de développer des applications. Chacun de ces ordinateurs contenait une variante du Basic, notamment le GW-Basic, disponible avec tout PC IBM, et Quick Basic, publié par Microsoft en 1985.
Un langage fort populaire à l’époque était le Turbo Pascal. Mis au point au départ dans un environnement de développement, il était facile d’utilisation et permettait le développement d’applications relativement complexes. Il fut par la suite acquis par Borland, et prit le nom de Borland Pascal. Actuellement, la dernière incarnation en utilisation est connue sous le nom de Borland Delphi.
Puisque le développement d’application n’est pas une tâche à la
portée de tous, certaines applications ont été proposées, à la
fin des années 70 et durant les années 80, pour faciliter ce travail.
C’était l’époque des bases de données de 3e et 4e
générations. Oracle était l’un de ces produits forts connus, de
même que DB2, d’IBM. Mais celui qui eut le plus de succès à
l’époque était sans contredit dBASE II. Avec l’avènement de la
microinformatique et la disponibilité de cet outil, le développement
d’application était maintenant à la portée de tous, surtout avec
l’arrivée de Foxpro en 1984 et, plus particulièrement, de Clipper en 1985.
Clipper permettait la compilation des bases de données en programmes exécutables
facilitant leur distribution. Ce qui eut pour conséquence que DBase, malgré deux
versions subséquentes, DBase III et DBase IV, disparût peu à peu comme outil de
développement, au profit de Clipper, puis de Foxpro, qui avait été acquis par
Microsoft.
Parallèlement, Microsoft lança une nouvelle application de gestion de
bases de données, Access, qui connut aussi un succès fulgurant auprès du grand
public.
Le langage C est un cas particulier. Élaboré au départ pour faciliter le développement d’outils pour le système d’exploitation Unix, il fut adopté par la communauté informatique comme langage privilégié, à cause de son adaptabilité. Sa grande flexibilité en faisait un langage de choix pour le développement d’applications très variées. Et puisqu’il était disponible sur l’ensemble des systèmes d’exploitation (DOS, Unix, Windows, Mac), il était possible de faire des développements qui pouvaient être réutilisés.
La particularité des langages énumérés précédemment est qu’ils sont considérés comme procéduraux, c’est-à-dire que le programmeur doit indiquer, ligne par ligne de code, comment le programme doit réagir à chaque évènement.
En 1984, le lancement du nouvel environnement d’Apple, Macintosh, suivi de près par l’avatar de Microsoft (Windows) en 1985, allait changer tout cela. Les langages procéduraux supportaient mal la programmation dans ce type d’environnement. Puisque les applications doivent réagir à des commandes d’utilisateurs pouvant provenir de plusieurs sources (souris, clavier, menu, etc.), il fallait développer des applications gérées en fonction d’évènement plutôt que par des séries de procédures prédéfinies. C’est à ce moment que les principes de programmation orientée objet, d’abord appliqués surtout dans les laboratoires et les centres de recherches, devinrent des méthodes de développement dominantes. Plusieurs langages évoluèrent ou furent inventés en fonction des environnements graphiques et aux fins de la gestion des évènements. Basic est devenu Visual Basic chez Microsoft, pendant que le langage C++, basé sur le langage C, était mis au point par Bjarne Stroustrup, alors chercheur au laboratoire Bell d’AT&T. Son but était d’inventer un langage contenant l’ensemble des fonctionnalités requises pour le développement orienté objet.
Aujourd’hui, la force d’évolution des outils de développement est internet. Lorsqu’on parle d’internet, on ne pense pas nécessairement au développement d’applications fonctionnant sous un fureteur. On veut plutôt dire que l’application, en tout ou en partie, peut fonctionner ailleurs que dans l’environnement local de l’utilisateur. Pour ce type de développement, de nouveaux outils sont apparus sur le marché, permettant la programmation d’applications exploitant la puissance d’internet.
Ainsi, les années 90 voient l’introduction de nouveaux outils et langages de programmation conçus spécifiquement pour la programmation orientée objet ou évènement, et pensés pour exploiter les environnements distribués. Le concept de développement 3-tiers est introduit avec la ségrégation dans les applications de l’interface usager, des règles d’affaires et l’entreposage des données. Ce modèle constitue une étape évoluée du modèle de développement client-serveur, qui était dominant durant les années 80-90, et où l’application locale contenait l’interface usager et les règles d’affaires, pendant qu’une base de données, généralement installée sur un serveur-réseau, s’occupait de la gestion des données.
On remarque donc une évolution dans les approches de programmation :
L’architecture client-serveur 1 et 2 manifeste une approche évolutive au moyen de l’amélioration des bases de données. Mais il s’agit plutôt d’une transition lente de la technologie de l’architecture client-serveur vers l’architecture 3-tiers. On remarquera aussi l’utilisation de n-tiers plutôt que de 3-tiers. C’est la même chose, mais la deuxième expression indique une distribution encore plus grande des diverses composantes d’une application. Par exemple, la gestion des tables d’une base de données pourrait être sur un serveur, et les données sur un autre. De même, le rendu de l’interface usager serait géré par l’ordinateur de l’utilisateur, alors que les règles d’affichage seraient gérées par un serveur d’applications. On peut donc avoir une situation semblable :
Lancé pour la première fois en 1998, Visual Studio est un environnement complet de développement donnant accès à plusieurs outils et langages de programmation, tels que Visual Basic, Visual C++, Visual Foxpro, etc. À l’heure actuelle, il est l’un des environnements de développement les plus utilisés par les programmeurs, plus particulièrement Visual Basic et Visual C++.
Windev et Delphi sont un mélange de base de données et d’environnement de développement. Windev est un produit français largement utilisé en Europe, mais avec une pénétration de marché plus limitée en Amérique. De son côté, Delphi remonte à l’origine à Turbo Pascal.
BBX est toujours en utilisation par plusieurs applications développées durant les années 80. Pour profiter des environnements Windows, plusieurs interpréteurs de code BBX sont apparus sur le marché. Pensons notamment à Providex et Visual Pro/5. Cobol est aussi encore largement utilisé à cause du grand nombre de programmes écrits avec ce langage dans le passé. Bien que peu de nouvelles applications soient produites avec ce langage, plusieurs d’entre elles continuent à tourner sur des micro-ordinateurs avec l’aide d’un interpréteur, comme AcuCobol.
De nouveaux langages et environnements de développement sont en évolution constante, pour tenter de faciliter la tâche des programmeurs qui doivent exploiter les technologies émergentes, notamment internet.
Java, issu des laboratoires de Sun Microsystems au début des années 90, qui fut d’abord conçu dans le but d’avoir un langage universel pouvant fonctionner sur de multiples plateformes informatiques, fut finalement adopté comme langage de base pour la plupart des fureteurs. Ayant été pensé au départ comme indépendant des systèmes d’exploitation, il put être facilement adapté aux fureteurs internet de Windows, Unix, Macintosh, etc. Cela facilita son adoption rapide par les programmeurs comme outil privilégié d’applications strictement web. Mais conçu principalement pour le développement de l’interface usager, il se prêtait mal au départ au développement d’applications de gestion. Une bonne raison de séparer les règles d’affaires de l’interface usager.
Flash, lancé par Macromedia en 1996 et maintenant supporté par Adobe, était à l’origine prévu pour le développement d’animations graphiques. Plusieurs versions plus tard, il est maintenant possible de développer des applications complètes dans ce type d’environnement, fonctionnant en mode internet à l’intérieur d’un fureteur. Avec la séparation d’une application en diverses composantes, l’échange d’information entre chacun des morceaux doit être géré et fait de façon efficace. Cela explique le développement des formats de données XML (pour eXtensible Markup Language). La première version fut lancée en 1998 et fut rapidement adoptée comme standard d’échange de données entre applications. Dans le but d’exploiter plus facilement les environnements Windows, Microsoft fait aussi évoluer son environnement de développement Visual Studio, dont la première incarnation remonte à 1998, en incluant divers langages de programmation, dont Visual Basic et Visual C++. En 2002, Microsoft lance la première version, visant principalement le développement d’applications internet, suivi quelques années plus tard par un environnement intégré de développement, Visual Studio 2005, souvent dénommé .Net (prononcez dot-net). Et 2008 vit une nouvelle refonte intégrale de Visual Studio .net, incluant notamment un nouveau langage, C# (C-sharp), une nouvelle version de XML dénommée XAML (prononcez Zammel), WCF (pour Windows Communication Foundation), et WPF (pour Windows Presentation Foundation et Silverlight).
XAML, pour eXtensible Application Markup Language est une évolution de XML permettant aussi aux applications d’échanger ce mode d’information, à l’intérieur même des applications. XAML est à la base des autres technologies, WCF et WPF, par exemple.
Silverlight est un cas intéressant. Partie intégrante de WPF, Microsoft en a fait un produit distinct et multiplateforme, dans le but avoué de concurrencer et même de détrôner la dominance actuelle de Flash. Disponible depuis moins d’un an, ce produit est en évolution rapide, mais son adoption généralisée demeure encore incertaine.
On peut remarquer que comme bien d’autres domaines, les technologies évoluent, pour continuer de soutenir le développement d’applications dont la complexité ne cesse de croître. Mais il s’agit aussi de permettre aux développeurs de s’adapter aux exigences changeantes des environnements informatiques et des utilisateurs, ainsi qu’aux nouvelles méthodes de développement issues des laboratoires de génie logiciel.
Que nous réserve l’avenir ? Il est encore difficile de le savoir. Toutefois, une chose est certaine, de plus en plus, les utilisateurs veulent non seulement accéder à leurs informations où qu’ils soient, mais ils veulent aussi pouvoir saisir cette information et la partager avec leurs collègues de travail, la famille, etc. Et cela doit pouvoir s’effectuer avec les moyens de communication mobile, comme les BlackBerry, les iPhone, les Treos, etc. On parle donc ici d’informatique décentralisée dans son utilisation mais centralisée au niveau du répertoire de données.
Nécessairement, les outils de développement s’adaptent donc, lentement, à ces besoins, de façon à permettre aux équipes de développement de fournir les applications qui reflètent l’évolution des besoins de la société.
Transfert de données sur pression d’une seule touche à partir de pratiquement n’importe quelle fonction.