EZ-Draw (Easy Draw) est un module en langage C qui facilite l’écriture de programmes graphiques, avec une gestion simplifiée des évènements. Il permet de créer des fenêtres, y dessiner, réagir à la souris et au clavier, faire des animations, etc..
EZ-Draw fonctionne à la fois sous X11 (Linux, Mac OS X, et autres Unix) et Windows (Seven, Vista, XP, etc.) ; en interne, il est basé respectivement sur la bibliothèque Xlib et sur l’API Win32, et il masque tous leurs aspects techniques.
Ce projet est volontairement tout petit : le but principal est l’enseignement (apprentissage du C, de la programmation événementielle et du dessin, initiation à une interface graphique), la simplicité et la portabilité.
EZ-Draw est utilisé et enseigné depuis plusieurs années à la Faculté des Sciences de Luminy, en L1 et L2 de la Licence Informatique. Plusieurs projets alternatifs existent, tels que EZ-Draw++, pour l’initiation au C++, utilisé en première année à l’IUT d’Arles.
Le logiciel est sous licence LGPL 2.1 et entièrement documenté en français, avec démos et quelques jeux.
Aller plus loin
- EZ-Draw (908 clics)
- EZ-Draw++ (207 clics)
- EZ-Draw-js (165 clics)
- Captures d'écran de EZ-Draw (223 clics)
# Apprentissage
Posté par Jiehong (site web personnel) . Évalué à 1.
Je me pose une question : pourquoi on initie les jeunes à la programmation avec de C/C++ ?
Certes ces langages permettent de comprendre la gestion mémoire et pleins d'autres choses mais ne devrait-on pas initier les nouveaux venus avec un langage dont la syntaxe est moins contraignante et plus simple d'accès ? (Je pense à Python par exemple mais il y en a bien d'autres).
J'ai commencé par du pascal au lycée, puis du C, puis du Java etc… Mais si on m'avait demandé d'initier quelqu'un alors j'aurais voulu lui montrer un langage dont la syntaxe est simple pour ne pas l'encombrer avec ça mais également puissant. Ensuite, les gens plus intéressés seraient alors introduits au C/C++.
Suis-je le seul à me poser cette question ?
[^] # Re: Apprentissage
Posté par gato . Évalué à 6.
La question du premier langage est un éternel troll ... sans rapport avec cette nouvelle.
Quelques pistes : quel est le père de tous les langages actuels ? Quel est le plus simple à comprendre ? Le plus proche de la machine ? Un struct est-il plus simple à comprendre qu'une classe ? Un compilateur n'aide-t'il pas à trouver certaines erreurs telles que des variables non-initialisées ? etc.
[^] # Re: Apprentissage
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
quel est le père de tous les langages actuels ?
Fortran?
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Apprentissage
Posté par Jiehong (site web personnel) . Évalué à 2.
Assembleur ;)
[^] # Re: Apprentissage
Posté par gato . Évalué à 10.
L'histoire des langages de programmation est récente mais déjà dense ; on peut consulter
l'article dédié sur wikipédia ou le très complet site de Levenez par exemple pour s'en convaincre.
Chaque langage a son design, sa philosophie, sa communauté qui le trouve génial, et bien entendu ses détracteurs.
Critiquer des langages parce qu'ils existent depuis longtemps n'a guère de sens. Par exemple, allez expliquer aux physiciens que les montagnes de librairies en Fortran qu'ils utilisent seraient mieux écrites en java ou en python, ils vous riront au nez : leur code marche, est validé, est optimisé pour leurs architecture, les fermes de calcul, les très grands volumes de données, etc. Allez comprendre pourquoi on développe des langages assembleur tels que pour la machine Parrot ? Mais pourquoi dans le monde de la finance on continue à utiliser le Cobol ?
Il y a de la place pour tous les langages. Tout dépend de l'emploi que l'on fait. Par exemple si je vais enseigner aux biologistes, ceux-ci auront besoin d'un langage permissif, qui tombe en marche, avec une solide boîte à outils : python est un excellent choix. Si je vais enseigner à de futur sys-admin, je vais en priorité leur enseigner sh et bash, ainsi que vi. Si je vais enseigner à de futurs développeurs pour SSII, ce sera du java ou du C# ; à des collégiens, pourquoi pas du VB ?
Pour en venir au C : sa syntaxe a été reprise pro ou prou en C++, C#, objective C, java, javascript, php, et on retrouve aussi sa syntaxe dans les expressions en python et ruby. Il est facile de faire ses premiers pas dans ces langages une fois que l'on a bien acquis les bases du C.
En ce qui concerne les interfaces graphiques, il est clair que py-gtk ou ruby-gtk sont beaucoup plus simple à aborder que GTK+ en C (rien que par la quantité de code ..). Le but de EZ-Draw était justement de compenser cela et de fournir un moyen simple de faire du graphisme, en quelques lignes et avec un minimum de paramétrage.
L'expérience montre que écrire de petites interfaces graphiques motive beaucoup les étudiants, qui quelques années plus tard, se régalent ensuite avec C++/java/python/ruby/etc en GTK/Qt/etc ...
[^] # Re: Apprentissage
Posté par Obsidian . Évalué à 1.
Y a beaucoup de dinos qui disent que tout découle réellement, en pratique, de ALGOL 60. Je n'ai jamais eu l'occasion de vérifier si c'est vrai.
[^] # Re: Apprentissage
Posté par gato . Évalué à 1.
D'après Levenez, c'est le contraire : Algol 60 descend de Fortran 54.
[^] # Re: Apprentissage
Posté par Tonton Th (Mastodon) . Évalué à 1.
s/le père/la mère/ ?
[^] # Re: Apprentissage
Posté par Anonyme . Évalué à 1.
Il dit qu'il a plus de genoux.
# Captures d'écran
Posté par gato . Évalué à 3.
Quelques captures d'écran ont été rajoutées ici.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.