Science et éducation : EZ-Draw 1.0 est sorti

Posté par  . Modéré par patrick_g. Licence CC By‑SA.
28
22
juin
2011
C et C++

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

  • # Apprentissage

    Posté par  (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  . É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  (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  (site web personnel) . Évalué à 2.

          Assembleur ;)

          • [^] # Re: Apprentissage

            Posté par  . É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  . É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  (Mastodon) . Évalué à 1.

        quel est le père de tous les langages actuels

        s/le père/la mère/ ?

    • [^] # Re: Apprentissage

      Posté par  . Évalué à 1.

      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)

      Il dit qu'il a plus de genoux.

  • # Captures d'écran

    Posté par  . É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.