Obligement - L'Amiga au maximum

Vendredi 19 avril 2024 - 18:46  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Test de StormC 2.0
(Article écrit par Brice Fromentin et extrait d'Amiga News - octobre 1997)


StormC 2.0 est la nouvelle version de l'environnement de développement ANSI C/C++ Amiga de Haage & Partner.

Installation

L'ensemble se présente avec sept disquettes et un manuel en anglais de 200 pages. A première vue, il semble qu'un environnement nécessite plus, mais sans à priori, je lance l'installation.

Sans problèmes apparents, il installe différents correctifs pour que son fonctionnement soit parfait. Noter qu'il propose d'installer GoldED 4, un éditeur de texte fournit, pour le travail sur les sources. Le logiciel Installer d'AT (pardon AI :)) remplit merveilleusement son office. De plus, dans la documentation, on nous explique comment désinstaller complètement StormC.

Je démarre, et StormC s'ouvre sur mon Workbench. Pas de chance car je lui avais demandé de le faire sur son écran. Je lance le "ScreenManager" et je vois que l'écran configuré l'était mal, donc je lui donne une résolution capable de s'ouvrir. Ensuite je vais dans les types d'outils de l'icône de StormCPP pour changer "PUBSCREEN=STORMC" en "PUBSCREEN=StormC". Et oui, on ne rigole pas avec les noms d'écran public. Enfin, Il s'ouvre sur son écran, mais mes surprises ne s'arrêtent pas là car en voulant ouvrir une fenêtre de texte, devinez... Elle s'ouvre sur mon Workbench :(. Donc rebelote, mais avec les préférences de GoldED.

L'installation enfin terminée, je vais pouvoir commencer mon investigation. Notez cependant qu'une résolution de 640x256 est trop faible pour pouvoir travailler.

Premiers pas

Les couleurs adoptées par l'environnement sont les maintenant célèbres couleurs de MagicWB, du fait du clonage de mon Workbench pour l'ouverture de l'écran de StormC par le ScreenManager. Une barre d'outils apparaît, rendant accessibles les principales fonctions de gestion d'un projet. Il aurait été souhaitable que cette barre d'outils soit configurable ; sur les environnements modernes, ce genre de "gadget" est fort apprécié pour augmenter sa productivité.

Dans mon élan, j'ouvre un exemple (un projet). La requête ASL me demande de choisir mon projet. Elle est localisée dans le répertoire StormSYS. Un choix plus judicieux aurait été de s'ouvrir dans le tiroir "Exemples" ou mieux, de sauvegarder dans un type d'outils (ou autre), le chemin d'accès au répertoire contenant les projets. Je sélectionne donc l'exemple "ColorWheel" qui ouvre sa fenêtre de projet décrivant ainsi le contenu de ce dernier. Cette fenêtre présente l'intérêt de rendre accessibles rapidement toutes les ressources utilisées par le projet, un très bon point, car dans les projets complexes il sera plus facile de s'y retrouver. J'appuie sur le gadget "Run", le projet compile sans accrocs et rapidement, l'application se lance sans surprise.

Comme le montre la figure 1, la coloration de la syntaxe est présente ce qui améliore la lisibilité. Notez que l'éditeur StormED permet le choix des couleurs pour les types de textes reconnus. Cependant, la palme revient à GoldED qui permet de définir des catalogues de syntaxes.

StormC

Le compilateur

Au choix, vous pouvez l'utiliser via l'environnement intégré ou par le CLI grâce à la commande StormC se trouvant dans le répertoire "STORMC:StormSYS". Les réglages du compilateur peuvent être observés dans la figure 2. Rien de révolutionnaire dans ces derniers, mais que de l'efficace, ce qui ne gêne en rien évidemment. Tout de même, la possibilité de sortir du code 68060 est un plus indéniable. Cependant, il y a neuf niveaux d'optimisations différents alors que seuls six sont disponibles, pourquoi ne pas avoir modifié la glissière de façon à ce qu'il ne puisse avoir que six niveaux ?

StormC

StormC

StormC

StormC

Comme le but du compilateur est de générer du code, voyons donc de quoi il en retourne avec ce dernier en mode d'optimisation 6 (le meilleur disponible). Tout d'abord, le source que StormC nous fournit est documenté, ce qui est un très bon point pour la compréhension. Cependant, le niveau 6 d'optimisation reste décevant sur quelques détails :

; if (IntuitionBase = Openlibrary("intuitionlibrary",39))
move.l         _SysBase(a4),a6 		; Il faut bien le préciser
moveq          #$27,d0         		; Pas de problème non plus
lea            L36(pc),a1      		; OK
jsr            -$228(a6)       		; OpenLibrary
move.l         d0,_IntuitionBase(a4) 	; Sauve Résultat
tst.l          _IntuitionBase(a4)	; Ligne inutile
beq            L91			; Saut Conditionnel 

Comme je le précise dans le fragment que je commente ci-dessus, il y a une ligne complètement inutile du fait que le "move.l d0,_IntuitionBase(a4)" effectue de lui-même le test "tst.l _IntuitionBase(a4)". Cet exemple est le premier piège d'optimisation dans lequel StormC tombe. Mais, s'il n'y avait que celui-ci... Suit dans le source :

; if (GfxBase = OpenLibrary("graphics.library,39))
  move.l _SysBase(a4),a6 		; Inuble car déjà avec cette valeur
[...]

Le second piège est la vérification des valeurs contenues dans les différents registres du processeur. Dans le cas d'AmigaOS, des règles strictes régissent ces derniers. Dans l'exemple cité, le registre A6 contient la base de la bibliothèque appelée et reste inchangé après un appel à une fonction de cette dernière. Enfin, pour les problèmes d'optimisation les plus importants, le code est efficace et concis.

Autre point important, les données de débogage qui sont ici placées dans un fichier à part. Cette solution est une réponse appropriée à un problème rencontré dans beaucoup de langages qui fusionnent le programme et les informations de débogage. En effet, StormC assure par cette méthode la similitude de fonctionnement entre les versions "DEBUG" et "NODEBUG".

De plus, il n'y a plus besoin de compiler une fois de plus pour obtenir la version définitive du fait qu'elle existe déjà.

L'éditeur de lien

Cette drôle de petite bête est censée combiner les différents modules d'un projet pour fournir le programme tant attendu. En fait, afin de gagner du temps dans la maintenance d'un projet et aussi dans son temps de compilation, on sépare souvent un projet en plusieurs modules. La figure 3 nous montre que StormLink possède son lot d'options. La plus intéressante reste sans doute le fait de pouvoir créer une vraie bibliothèque partagée le plus simplement du monde. Notons aussi la possibilité de lier un fichier en provenance de StormWizard, générateur d'interfaces graphiques. A part ceci, que du standard qui fonctionne proprement et rapidement.

StormC

StormC

Le débogueur

Il est un fait acquis : on n'est pas parfait et donc, par cet axiome, nous faisons des erreurs qu'il va bien falloir que nous corrigions. StormC fournit donc un débogueur afin de partir à la croisade contre les bogues. L'interface du débogueur est concise et va droit au but. Remarquez sur la figure 4, que l'éditeur de source s'adjuge une colonne à gauche du source afin de signaler les points d'arrêt. Mais pour vraiment nous aider, StormC nous offre des outils performants qui fonctionnent en équipe avec le débogueur pour améliorer l'efficacité de ce dernier. On peut voir dans la figure 5 que les outils suivant apparaissent au gré de la volonté de l'utilisateur :
  • La fenêtre des variables.
  • La fenêtre des points d'arrêt.
  • Un éditeur de mémoire en hexadécimal.
  • Un désassembleur.
La fenêtre de variables permet de surveiller le contenu des variables et tout ce qui les concerne (type, données structurées...). Cependant, il reste impossible de changer les valeurs de certains types et pour cela, il vous faudra donc ruser en changeant le type puis la valeur et en restaurant le type pour ne pas trop perturber l'exécution.

StormC

StormC

La fenêtre des points d'arrêt ne souffre, quant à elle, d'aucun défaut du fait de la simplicité des données qu'elle doit gérer. L'éditeur de mémoire hexadécimal remplit son office humblement. Il aurait été intéressant que des fonctions de recherche lui soit ajoutées mais il n'en est pas cas...

Le déassembleur poursuit un peu la même philosophie que le débogage des sources, il permet d'afficher ou non les instructions "Illegal" afin de se passer des inclusions du débogueur pour son fonctionnement. Lui aussi, très succinct, est loin d'un Monam ou Barfly. La phase de débogage est rendue très agréable grâce au "Ressource Tracking" (pistage des ressources) qui permet de couper la tâche dès que l'on a repéré l'erreur.

Les problèmes

Fort d'une impression générale assez bonne, je me lance dans la lecture du manuel en français traduit par ADFI. La traduction somme toute satisfaisante semble néanmoins parfois fantaisiste tout en ne nuisant pas trop au sens du contenu. Le papier est de moins bonne qualité que la version anglaise et fait 20 pages de moins (qui a dit que le français est moins concis que l'anglais :)) dû à l'utilisation de toutes petites polices alors que le manuel original arbore des tailles de caractères plus lisibles.

Autre constat de cette documentation, comment fait-on pour programmer quand on ne connaît pas C/C++ ? Dans la documentation, il n'y a même pas de tutoriels, histoire de commencer à toucher à son achat de 2490 FF... Bon allez, revenez... à cela il faudra que vous ajoutiez en plus, de quoi apprendre le C, ce qui rendra la note encore plus amère. Déjà que le prix de base est d'environ 169 $ pour un manuel de 200 pages (en VO). Enfin, je veux bien que le marché soit petit et qu'il faille bien survivre mais qui est le plus vache à lait actuellement ? Le PCiste à la poursuite de la puissance ou l'amigaïste d'aujourd'hui qui veut avoir une machine "cool" ? Avec un Visual C++ 4.0 Standard à 1150 FF TTC environ par Microsoft pour Windows, on peut se poser réellement la question. Enfin bon, c'est la vache qui nous a racheté notre bébé, alors peut-être que nous verrons enfin se terminer cette période d'abus... (Bruce Lepper : je ne suis pas d'accord. Microsoft va vendre, dans le monde, peut-être 500 000 Visual C, pour une somme de 500 millions de FF. ADFI va vendre combien de StormC en version française ? Je lui souhaite un bénéfice, mais j'ai des doutes. Les gens pour qui les importantes marges bénéficiaires sont, pour une raison ou une autre, nécessaires, sont déjà partis).

En résumé

Fort d'un environnement de développement complet C/C++, l'Amiga peut enfin se targuer de nous offrir une solution efficace pour un développement professionnel. Cependant, StormC 2.0 souffre de quelques défauts dans son ergonomie générale comme la non sauvegarde de la position des fenêtres des sources et le chargement automatique du/des derniers projets. Enfin, nous attribuerons cela à la jeunesse du produit et au manque de concurrence. Les moins fortunés pourront s'orienter vers un autre environnement de développement beaucoup moins onéreux et tout aussi dynamique dans son support, le bien-nommé ADE disponible en version 2 dans le CD Geek Gadgets 2.

Nom : StormC 2.0.
Développeur : Haage & Partner.
Genre : développement C et C++.
Date : 1997.
Configuration minimale : Amiga OCS, 68000, 3 Mo de mémoire.
Licence : commercial.
Prix : 2490 FF.


[Retour en haut] / [Retour aux articles]