Table des matières
Création de logiciels
La création d’un logiciel repose sur des idées conceptuelles précises et une mise en œuvre au moyen d’outils informatiques adaptés.
Recherche d’une idée de logiciel
Pour vendre un produit sur le marché, il est préférable que ce produit ne soit pas une copie
plus ou moins déguisée d’un produit existant.
Cette règle est aussi valable pour les logiciels. Si nous créons un logiciel de traitement
de texte comparable à MSWord avec quelques améliorations alors dès le début de la mise en vente,
nous allons éveiller l’attention de la concurrence et il deviendra très difficile de percer
sur les marchés.
Il n’est pas inutile d’effectuer une étude de marché concernant les logiciels. Les logiciels présents dans les différents magasins de logiciels sur internet permettent d’avoir un aperçu du marché. Ajoutons que des recherches sur internet peuvent donner des informations sur les ventes.
Généralement, il faut éviter de penser à des logiciels qui s’adressent à un public trop restreint,
qui ne touchent que plusieurs centaines de personnes ou dont l’utilité laisse perplexe.
Par exemple, il ne faut pas espérer intéresser beaucoup d’utilisateurs avec un logiciel de mémorisation
de phrases, qui enregistre dans un répertoire du texte saisi au clavier avec la date et l’heure.
Il faut aussi laisser tomber les idées de logiciels qui se rapprocheraient de logiciels gratuits ou fournis par défaut avec certains systèmes d’exploitation ou encore de certains logiciels devenus des exercices classiques de programmation dans les écoles d’informatiques.
Mais il y a parfois la chance d’avoir la bonne idée et au bon moment. Les meilleurs exemples illustrant ce dicton sont les jeux Flappy Bird et Candy Crush Saga.
Conception d’un logiciel
Le concepteur doit commencer par effectuer une ébauche du logiciel en réfléchissant sur les points suivants :
-
les fonctionnalités,
-
les interactions avec l’utilisateur,
-
l’apparence
Ensuite, il doit choisir un langage de programmation dans lequel le logiciel va être réalisé. Cela dépend du type
de logiciel (pour ordinateur de bureau, téléphone mobile, …) et de la plateforme ciblée.
Puis il doit déterminer, les difficultés algorithmiques qu’il pourrait rencontrer. Par exemple, si le logiciel
doit reconnaître des chiffres dactylographiés dans une grille, connaît-il un algorithme efficace pour le faire
ou dispose-t-il d’une bibliothèque qui accomplit cette tâche de reconnaissance de caractères ?
Il est préférable de résoudre ce type de problème avant de se lancer dans la programmation.
Il pourra ensuite décrire la logique du programme à l’aide de diagrammes, souvent composés de boîtes nommées,
reliées par des flèches. Ces boîtes regroupent souvent des fonctions ou méthodes ayant un trait commun
(manipulant une même structure de données ou contribuant à effectuer une tâche précise).
Lorsque l’organisation du programme est suffisamment détaillée, le codage peut commencer.
Une partie assez souvent négligée est celle de l’apparence du logiciel.
La raison principale est qu’elle demande du temps (création de thèmes, d’images, de logos, d’objets graphiques
mobiles, polices de caractères, …) ou qu’elle rajoute un coût considérable au logiciel.
Programmation d’un logiciel
La programmation d’un logiciel demande la connaissance d’au moins un langage de programmation et de beaucoup
de pratique.
En plus du langage de programmation, le développeur doit savoir utiliser certaines bibliothèques ou technologies
courantes.
Dans la réalisation d’un logiciel, la programmation représente généralement la partie qui demande le plus de
concentration et d’attention. Les erreurs de codage peuvent compromettre la finition du logiciel dans les délais
souhaités.
Examinons quels outils de développement peuvent être utiles à la mise en œuvre d’un logiciel.
Outils de développement
Les outils de développement principaux sont les langages de programmation (compilateurs ou interprètes) et auxiliairement les langages programmation pour les bases de données relationnelles.
Mais il est presque indispensable de disposer d’un débogueur et d’un « moteur de production » du type make.
Pour travailler sur le source d’une programme, certains continuent à développer avec des éditeurs de code comme Vim, Emacs, …, mais d’autres préfèrent opter pour un environnement de développement intégré (EDI) comme Eclipse, NetBeans, Visual Studio, KDevelop, QDevelop, …
Un peu à mi-chemin entre un éditeur de code et un EDI, VSCode est souvent utilisé pour les applications Web.
L’inconvénient majeur des EDI est qu’il sont très gourmands en ressources et demandent donc un ordinateur puissant pour ne pas ramer.
L’autre inconvénient est qu’ils ne sont pas toujours multiplate-formes et cela peut être un problème pour ceux qui travaillent sur plusieurs systèmes d’exploitation.
Choix du langage de programmation
Sur certaines systèmes d’exploitation propriétaires, le choix des langages de programmation
pour développer une applications commerciale est restreint volontairement par les propriétaires
de ces systèmes.
Sur Mac OS, sont pratiquement imposés les langages suivants
-
Swift
-
Objective C
Sur Windows, sont privilégiés les langages suivants
-
C#
-
VB.NET
-
et dans certains cas le C++
Sur Android, sont privilégiés les langages suivants
-
Kotlin
-
Java
-
éventuellement le C++
Signalons au passage qu’il existe des systèmes de développement multiplate-formes comme Xamarin, Qt ou Windev permettant de programmer des logiciels pour plusieurs systèmes d’exploitation.
Sur les systèmes d’exploitation basés sur Linux, ou *BSD, il n’y a pas de langage de programmation privilégié, mais les plus utilisés pour les applications sont le C et le C++.
Concernant la programmation d’applications Web, Il y a au moins un langage de programmation à connaître pour le côté client et un langage de programmation côté serveur, qui peut être différent du premier.
Côté serveur, selon l’hébergement tous les langages de programmation ne sont pas disponibles. Le langage PHP demeure le plus répandu et pratiquement installé par défaut sur les serveurs.
Certains hébergeurs proposent d’autres langages comme le Java, C#, Golang, Python, Ruby, Lua, JavaScript avec Node.js.
Dans certains Nuages (clouds), ce sont des langages comme le Java ou le C# qui sont privilégiés.
Côté client, il y a de multiples options malgré que
le JavaScript soit le seul langage à être implanté dans tous les navigateurs.
Depuis longtemps, certains développeurs souhaitaient le remplacement du JavaScript par une machine
virtuelle basée sur une pile dans les navigateurs. Cela aurait permis une ouverture de la programmation
côté client à d’autres langages.
Mais il y a peu de chance pour que cela se réalise dans un avenir proche, étant donné que beaucoup de technologies
reposent sur le JavaScript.
Cependant, un langage de la catégorie bytecode, appelé Wasm (WebAssemby) est apparu en 2017
pour complémenter le JavaScript et avec des performances supérieures.
Les navigateurs récents intègrent une machine d’exécution de Wasm mais qui ne peut pas interagir avec
la DOM (Document Object Model). Ainsi le Wasm ne remplace pas entièrement le JavaScript qui
reste incontournable.
Pour éviter certains problèmes de JavaScript comme l’absence de typage ou le manque de certaines fonctionnalités vous pouvez utiliser des compilateurs d’autres langages de programmation vers le JavaScript.
Les plus courants sont:
-
Dart
-
TypeScript
-
Elm
-
PureScript
-
CoffeeScript
-
ClojureScript
-
Scala.js
-
Reason
-
Haxe
-
Nim
Mais le JavaScript reste le langage préféré pour la programmation frontale et il dispose d’une quantité impressionnante de bibliothèques et de cadres logiciels.
Auparavant, la bibliothèque jQuery qui facilite l’accès à la DOM était considérée comme indispensable
étant données les disparités entre les différentes implantations de JavaScript dans les navigateurs.
Mais cette bibliothèque tend à être de moins en moins utilisée par les développeurs, car le JavaScript des
navigateurs récents est un peu plus normalisé.
Beaucoup de cadres logiciels JavaScript ont été créés pour tenter de faciliter la création de composants
graphiques réutilisables en programmation frontale. Citons par exemple Backbone, Ember, knockout, …+
Deux cadriciels Angular et Vue et une bibliothèque JavaScript React se sont imposés et intègrent une
DOM virtuelle qui les rend performants en cas d’accès intensifs à la DOM.
Ces derniers permettent de créer des applications Web en une simple page et du même coup des applications mobiles.
Mais il y a un bémol concernant l’optimisation du classement dans les moteurs de recherche des sites Web créés
avec Angular, Vue ou React puisque le JavaScript n’est exécuté qu’après le chargement du code HTML.
Par ailleurs, le fait que Vue.js soit léger permet de l’utiliser en remplacement de jQuery.
RSS
Follow
Preferencesoft Website Privacy Policy