Le logiciel
Le logiciel représente une énorme collection d'instructions - instructions - soumise au microprocesseur pour traiter des données et obtenir des résultats. Les logiciels peuvent se ranger en quelques grandes catégories :
Le système d'exploitation, Operating system fournit à tous les autres logiciels les ressources dont ils ont besoin pour exploiter la machine ;
• il permet de ranger les programmes (programs) et les données (data ) dans des fichiers ( files ) par l'intermédiaire du système de fichiers ( file system ) ;
• il permet l'accès à Internet ( Internet ) par l'utilisation de protocoles de communication ( protocols et network protocols ) (essentiellement TCP/IP -Transmission Control Protocol / Internet Protocol ) ;
• il fournit à l'utilisateur un moyen de communiquer avec la machine au moyen d'une interface utilisateur graphique (GUI Graphical User Interface ) ;
• il autorise plusieurs utilisateurs à partager la même machine sans qu'ils se marchent sur les pieds - systèmes multi-utilisateurs ( multi-users systems ) , et un utilisateur à utiliser simultanément plusieurs logiciels et à passer de l'un à l'autre instantanément ( systèmes multitâches, multitasking ) ;
• et bien d'autres choses encore...
Dans la pratique, il existe 2 systèmes d'exploitation principaux pour les ordinateurs de bureau et les portables :
• Le plus répandu est Windows - Windows -, le système d'exploitation imposé par Microsoft pour tout nouvel achat de PC - Personal Computer - . Rares en effet sont les fabricants qui résistent aux sirènes du géant des logiciels, et refusent de passer sous ses fourches caudines. La conséquence, c'est que 90 à 93 % des internautes accèdent au réseau par l'intermédiaire d'un PC sous Windows, malgré tous les défauts bien connus du système : coût élevé, complexité de la prise en main, multiplicité des versions, indigence des applications, incompatibilité délibérée avec les standards, sensibilité aux virus et autres malwares.
• Il y a pourtant des solutions alternatives qui n'ont pas tous ces désagréments :
a) Des systèmes Unix - Unix - propriétaires ( System V, BSD , AIX , Solaris , HP-UX , IRIX ) à l'accès souvent gratuit ; conçu dès l'origine comme multi-tâches et multi-utilisateurs, Unix est un système d'exploitation très puissant, très stable et très fiable, mais d'un abord difficile pour le néophyte car il repose avant tout sur une interface en ligne de commande, même si on l'a par la suite enrichi d'un environnement graphique.
b) Linux - Linux - : une variante d'Unix développée en open-source par l'initiative de Linus Torvald sur la base de GNU et de Minix , et qui fait l'objet de multiples distributions - Linux distributions - ( Debian , Red Hat, Suse-, Mandriva -, Ubuntu etc...) ; c'est sans doute cette variété, ajoutée à la diversité des interfaces disponibles, qui entrave la diffusion de Linux (0,4 % des internautes français), et intimide le néophyte. Mais Linux est un excellent système, et il est très largement utilisé pour des serveurs.
c) Il reste un choix de roi : Mac Os X - Mac Os X - , distribué sur tous les ordinateurs d' Apple - Apple , Apple - en progression continue (6 à 8 % des internautes français selon les sources) : c'est un Unix de lignée BSD et d'un coût raisonnable, enrichi d'une interface graphique extrêmement soignée. Il perpétue brillamment la légendaire facilité d'utilisation des ordinateurs Apple, est très fiable, dans la pratique encore insensible aux virus, agrémenté d'une riche collection d'applications ( iLife, iWorks ) et d'utilitaires, livré avec un système de développement ( IDE ) complet ( XCode ) qui fait des ordinateurs Apple, malgré leur prix apparemment plus élevé, les plus puissants et les moins chers (à fonctionnalités comparables) des systèmes informatiques disponibles actuellement. Si vous êtes débutant, n'hésitez pas : c'est ce qu'il vous faut pour démarrer vite et bien ! Et si vous êtes un utilisateur confirmé, vous pourrez aussi installer votre OS préféré sur un Macintosh à processeur Intel à l'aide d'outils de virtualisation - virtualization - ( Bootcamp , Parallels , Fusion, VirtualPC, Wine ).
• des éditeurs ( source-code editor ) destinés à écrire en langage assembleur ( assembly-language ) ou en langage de programmation ( computer language , programming language ) ,
• des interpréteurs ( interpreter ) ou des compilateurs ( compiler ) destinés à traduire les instructions d'un langage informatique évolué en instructions du microprocesseur,
• des collections de solutions toutes faites : bibliothèques ( libraries ), interfaces de programmation ( APIs ), et frameworks ( software frameworks ) que le programmeur peut utiliser sans avoir à réinventer la roue.
• Ces outils sont couramment regroupés dans des ateliers de génie logiciel ou des environnements de développement intégrés ( IDE ) qui facilitent :
- la mise au point des programmes grâce à des débogueurs ( debugger ) et à des profileurs ( profiler )
- et les relations entre programmeurs, auteurs de versions successives ( VCS ).
La conception des logiciels fait l'objet de méthodologies complexes ( software engineering , software_componentry , POO ou OOP ) réservées aux spécialistes.
Lorsqu'il achète un ordinateur, le néophyte est tenté de choisir d'abord une machine. Mauvais calcul ; les matériels actuels se différencient assez peu les uns des autres par leur architecture , mais plutôt par leur design ( où Apple est le maître incontesté) ; c'est sur le système d'exploitation, et sur les logiciels qui l'accompagnent que se fera surtout la différence, aussi bien en terme de coût que de facilité d'utilisation. Et dans ce domaine, le choix le plus fréquent (un PC équipé de Microsoft Windows) est loin d'être le meilleur...