NOTA : ce document n'est qu'une ébauche !

Les bibliothèques Epeios de base ne sont pas dédiées à un domaine particulier, à la différence des différent sous-projets (nota: les sous-projets ont été entre-temps migrés vers le projet principal), qui s'appuient sur ces bibliothèques de base. Gestion mémoire, gestion d'erreur, multitâche sont quelque-unes des tâches prises en charge par les bibliothèques du projet Epeios. Ces bibliothèques permettent également de manipuler diverses structures, comme les listes, les piles, les files, les indexes, ainsi que les sockets, les mutexes, …

L'ensemble de ces bibliothèques s'appuient sur des bibliothèques C systèmes, et sont utilisables (et utilisés) sous Windows et sous GNU/Linux (et probablement sous Mac OS, ces bibliothèques ayant déjà été mises en œuvre avec succès sous cette OS du temps où je pouvais disposer d'un Mac, ce qui n'est plus le cas actuellement). Ayant en premier lieu été développé en utilisant les bibliothèques C/C++ standards, avant de n'utiliser exclusivement que des bibliothèques C systèmes pour des raisons de performances et de fiabilité, il est possible d'utiliser ces bibliothèques sous n'importe qu'elle système disposant d'un compilateur C++ standard, en désactivant l'utilisation des bibliothèques systèmes à l'aide d'une directive préprocesseur.

Lorsque la première de ces bibliothèques fut écrite, ce n'était ni dans l'intention d'en faire l'objet d'un quelconque projet, ni de créer un quelconque site WEB dédié (d'autant que le WEB n'existait pas à cette époque). Ces bibliothèques n'existaient que pour répondre à mes besoins personnels, estudiantins et professionnels. Comme elles devenaient de plus en plus nombreuses, couvrant de plus en plus de domaines, tout en restant cohérentes entre elles, j'ai pensé qu'elles pourraient être utiles à d'autres. C'est ainsi que naquit le projet Epeios et son site dédié.

A l'origine, le but du projet Epeios étaient la publication de ces bibliothèques, d'abord développées, suivant l'évolution de mes études, en C, puis en C++. Aujourd'hui, je considère le projet Epeios comme un projet dont l'objet est l'étude des concepts sous-jacent, et dont les bibliothèques n'en seraient qu'une émanation. Peut-être qu'un jour j'aurai recours à un autre langage, mais actuellement le C++ semble être un bon choix, du fait qu'il est trés largement répandu, et qu'il offre certaines caratéristiques, comme les templates, le typage, ou encore le préprocesseur, facilitant la mise en preuve de ces concepts.

Un des principaux buts du projet Epeios est d'améliorer les techniques de développements en mettant en œuvre de nouveaux concepts. Ces concepts, une fois implémentés dans une bibliothèque, sont immédiatement mis à l'épreuve. Concrètement, cela signifie qu'une nouvelle bibliothèque n'est écrite que parce qu'elle est nécessaire au développement d'un logiciel, et, une fois développée, elle est tout de suite mise en œuvre dans le logiciel concerné, permettant ainsi de vérifier la validité du concept qui la sous-tend, et d'y apporter des améliorations si nécessaire.

Quelles que soient vos première impressions sur ces bibliothèques, ne perdez pas de vue que je les utilise quotidiennement autant à titre personnels que professionnels, et ce pour développer des logiciels qui sont utilisés par de nombreuses personnes. Elles ont donc fait preuve de leur efficacité. Quand à leur utilisation, je n'ai jamais rien trouvé, que ce soit en matière de langage ou de bibliothèques, qui me permette de développer de manière aussi performante et efficace que ces bibliothèques.

Ce projet est expérimental, et le restera. Ceci signifie qu'une bibliothèque peut être modifiée de différentes manières tant que ces modifications entraînent une amélioration de cette bibliothèque, même si la version améliorée se révèle incompatible avec l'ancienne version. Bien sûr, les fonctionnalités resteront identiques, mais l'API peut être modifiée par le renommage des fonctions, et/ou de leurs paramètres, ou en renommant les différentes classes, ou en les scindant, ou encore en les regroupant, … Les bibliothèques elles-mêmes peuvent être scindées ou regroupées ou renommées.

On peut être tenté de ne pas les utiliser pour cette raison, mais ce serait une erreur. D'une part, plus longtemps une bibliothèque existe, moins elle est sujette à d'importantes modifications, du fait que sa longévité même est la preuve de son efficacité. Seules les bibliothèques récentes qui, de ce fait, ne sont pas encore très utilisées, sont susceptibles de connaître d'importantes modifications. D'autre part, de par la manière dont sont conçues les bibliothèques Epeios, et grâce au typage du C++, une fois les erreurs de compilations dû à la mise en œuvre d'une nouvelle version d'une bibliothèque corrigée (quelques 'Chercher/Remplacer' de votre éditeur préféré font généralement l'affaire), le logiciel concerné fonctionne tout aussi bien, voire mieux, qu'auparavant. Et enfin, si une réécriture du logiciel s'avère nécessaire, cela est vite réalisé si le logiciel est correctement codé.

Si la mise en œuvre d'une nouvelle version d'une bibliothèque nécessite un important travail de réécriture pour adapter un logiciel, c'est que ce logiciel est mal conçu et sera difficile à maintenir et à faire évoluer, et il serait alors bon d'envisager une réécriture en profondeur de ce logiciel pour éviter de sérieux ennuis.

Il est de toute manière préférable de faire progressivement évoluer un logiciel plutôt que de ne pas y toucher durant des années et d'être obligé d'investir énormément de temps et d'argent à le réécrire pour l'adapter aux toutes dernières technologies, avec un résultat souvent incertain !

about/introduction.txt · Last modified: 2010/10/06 11:38 by 192.168.5.10
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki