GNUstep Étoilé 0.2 est arrivé

Posté par . Modéré par j.
Tags :
0
30
juil.
2007
GNUstep
Le projet Étoilé vient d'annoncer la version 0.2 du projet. Cette version représente une énorme avancée pour le projet par rapport à la version 0.1, la taille des sources ayant été multipliée par 6, le nombre de composants ayant augmenté du même ordre de grandeur.

Étoilé est un environnement de bureau utilisant GNUstep, mais contrairement à Backbone, Étoilé n'a pas été créé dans le but d'être « un environnement de bureau pour GNUstep », mais vise à complètement repenser comment l'utilisateur interagit avec sa machine. Le but est de passer d'une interface influencée par des concepts « informatiques » (fichiers, applications) par une interface influencée par des concepts plus proches de l'utilisateur (documents, projets, services). Toutefois, Étoilé et GNUstep restent intimement liés, les améliorations du premier profitant au second, et certains travaux ont pour vocation de remonter vers GNUstep (Camaelon et IconKit, par exemple). De plus, Étoilé n'est pas encore assez avancé pour pouvoir faire une réelle distinction entre une « application Étoilé » et une « application GNUstep ».

Étant basé sur GNUstep, Étoilé offre théoriquement une bonne compatibilité avec Cocoa. Toutefois, beaucoup d'applications Mac OS X utilisant des extensions spécifiques à Apple, les choses ne sont pas aussi simples (« Porting Cocoa software is not as easy as people think. They tend to use QuickTime, CoreImage, CoreFoundation and others in various places »). Néanmoins, cela n'empêche pas le projet de se fournir dans les nombreux logiciels libres disponibles sous ce système (UnitKit, OgreKit, DistributedView et Sketch en sont des exemples) lorsque cela est intéressant.

Étoilé ayant pioché à droite et à gauche pour avancer plus rapidement, beaucoup de licences sont utilisées pour diffrérents composants : MIT/BSD, GPLv2, LGPLv2.1, ASL et Apache 2.0. La licence préférée pour tout nouveau code est la BSD, la GPL posant certains problèmes dans un environnement orienté composants. Au menu de cette version :
Cette version, avant tout destinée au développeur désireux de se familiariser avec l'environnement de développement, vient avec beaucoup de nouveautés. Tout d'abord, les frameworks pour le développeur :
  • AddressesKit, un framework centralisant la gestion des contacts
  • BookmarkKit, pour centraliser la gestion des marques-pages
  • CollectionKit, un framework générique pour la gestion des "collections" (photos, musique, marques-pages)
  • DistributedView, qui permet d'afficher des icônes (comme dans un gestionnaire de fichiers classique)
  • EtoileFoundation, diverses extensions au framework Foundation de GNUstep (atuellement, ajoute une API pour les threads ainsi que de la surveillance de fichiers similaire à FAM)
  • EtoileUI, diverses extensions au framework AppKit (actuellement, propose quelques méthodes pour redimensionner des images)
  • IconKit permet d'obtenir et de combiner des icônes entre elles
  • InspectorKit, choisit l'interface à utiliser selon l'objet ou le fichier choisi
  • OPMLKit, PopplerKit et RSSKit respectivement pour le support des formats OPML, PDF et RSS
  • SystemConfig, qui permet de gérer l'environnement système (par exmple, le volume des hauts parleurs)
  • XWindowServerKit, pour l'interface avec le système X-Window
  • LuceneKit (indexation et recherche), OgreKit (expressions rationnelles) et UnitKit (tests unitaires) sont toujours présents et ont été améliorés
  • enfin, PreferencesKit (unifie et simplifie grandement la gestion des préférences pour le développeur) a été renommé en PaneKit (et a été étendu à tout type de panneau, plus seulement les préférences) et a lui aussi subit son lot de modifications.

Au niveau des services « internes » (cachés à l'utilisateur), on remarquera :
  • Une nouvelle version de Camaelon, qui permet d'avoir une interface plus moderne (et surtout thémable)
  • EtoileBehavior, qui notifie aux applications la déconnexion de l'utilisateur
  • EtoileWildMenus, une barre de menus horizontale à la Mac OS X
  • ServiceMenulet (pour présenter le menu « Services » de GNUstep) et VolumeMenulet (pour le contrôle du volume), deux menulet pour MenuServer
  • Azalea, un gestionnaire de fenêtres basé sur OpenBox
  • AZBackground affiche un fond d'écran
  • AZDock, garde une trace des applications actives
  • AZSwitch, pour changer la fenêtre active
  • Corner, qui lance un script lorsque le pointeur de la souris s'approche d'un coin de l'écran (par exemple pour changer de bureau)
  • Idle, qui envoie une notification après que l'utilisateur n'a rien fait pendant une minute
  • Login, qui remplace l'interface par défaut de GDM
  • MenuServer, une barre horizontale en haut de l'écran qui permet d'accueillir les menus des applications ainsi que divers services
  • System, dont le rôle consiste à gèrer tout ce beau monde.

Et pour clôturer cette liste, les applications qui font leur entrée, la partie émergée de l'iceberg :
  • AddressManager, un carnet d'adresses
  • Calc, une calculatrice
  • DictionaryReader, une application pour questionner les serveurs Dict
  • FontManager, permet de visualiser les polices installées
  • Grr, un lecteur de flux RSS/OPML
  • Jabber, un client pour le protocole du même nom
  • OuterSpace, un gestionnaire de fichiers
  • Sketch, dessin verctoriel
  • Typewriter, éditeur de texte simple
  • Vindaloo, visualisateur PDF

Et pour la suite ?

Les développeurs sont en pleine discussion sur les buts de la prochaine version, la 0.3. Vraisemblablement, les deux gros travaux seront la documentation (tout framework devrait au moins avoir une documentation générée automatiquement et chaque application un guide utilisateur) et l'élimination de tous les bugs de l'interface utilisateur, qui devrait être la plus parfaite possible.

De plus, cette version pourrait intégrer un premier prototype pour CoreObject, qui est expliqué dans un billet sur le blog des développeurs. À long terme, CoreObject devrait remplacer la notion de fichier pour le programmeur, permettant la gestion automatique et transparente de la sauvegarde (à chaque modification, le document est enregistré, l'utilisateur n'a donc plus besoin de s'occuper de cela) et de l'historique (qui, lui aussi, est persistent : c'est à la fois un équivalent du classique annuler/refaire - mais intrinsèque au document, sauvegardé avec lui - et d'une gestion de révisions - avec gestion des branches).

Les autres chantiers discutés sont, en vrac, un prototype de navigateur internet basé sur SimpleWebKit, un émulateur de terminal, un lecteur vidéo utilisant MPlayer et un gestionnaire de collections (photos, musique, contacts, ...)

Au niveau des choses incertaines mais en discussion, le dock pourrait également disparaître. Après le port de Vienna (un lecteur RSS sous Mac OS X) sous GNUstep, se pose également la question du futur de Grr. Le projet ayant beaucoup avancé depuis la version précédente, il est également temps pour les développeurs de poser plus précisément la question de l'intégration des différents composants.

À noter la possibilité d'une version intermédiaire, 0.2.5.
  • # et K.I.T.T. ?

    Posté par . Évalué à  5 .

    Pour gérer la K2000



    ========>[]
  • # Live CD ?

    Posté par . Évalué à  4 .

    Salut,

    À cette adresse[1], on peut trouver un live CD estampillé «0.2 pre» pour le fosdem. Par rapport à cette version 0.2 officielle, est-ce très différent ? Un nouveau live CD est-il prévu ?

    Etoilé est de ces projets qu'on installe pas comme ça sans réflechir et tester, c'est pourquoi je pense qu'il est indispensable de toujours proposer *LE* liveCD corespondant à la version en cours.

    [1] http://xdev.org/etoile/
  • # Orienté Utilisateur?

    Posté par (page perso) . Évalué à  7 .

    Loin de moi l'idée de jeter la première pierre, mais en zieutant sur les screenshots, je n'arrive pas à voir la différence avec un énième gestionnaire de fenêtre.

    L'approche "documents, services et projets" ne m'apparaît pas vraiment quand un des screenshots porte le nom de "IM Client, File Manager and Dictionary", ou quand je lis la liste des applications qui arrivent sur ce WM.

    En quoi l'approche orientée utilisateur est elle implémentée ici?
    • [^] # Re: Orienté Utilisateur?

      Posté par . Évalué à  3 .

      Cocoa apporte pas mal de simplification et d'unification inter-applications (ça rime!) pour les utilisateurs.

      Concrètement, tu peux prendre l'exemple de la barre de menu qui se retrouve en haut et apporte de la clareté dans l'utilisation des applications.

      Ensuite, bah forcément c'est pas évident tout de suite :
      * Ce n'est que la version 0.2, il y a déjà ne serais-ce que les menus et c'est déjà un grand pas en avant, mais le meilleur reste à venir
      * Ils partent de window maker quand meme, et pour avoir l'idée de le rendre joli/pratique, faut être un peu malade. C'est comme si tu voulais fabriquer un processeur avec du sable : ça prend un peu de temps!
      • [^] # Re: Orienté Utilisateur?

        Posté par . Évalué à  3 .

        > Ils partent de window maker quand meme
        Aucun rapport. L'environnement de dev est basé sur GNUstep mais le gestionnaire de fenêtres est basé sur OpenBox :)
    • [^] # Re: Orienté Utilisateur?

      Posté par (page perso) . Évalué à  2 .

      Le problème des screenshots, c'est que c'est statique, un ensemble screencasts aurait été plus judicieux, mais c'est beaucoup plus consommateur en temps et en bande passante. Quoi qu'il en soit, avec un download de LiveCD et un QEMU, tu peux vite fait essayer facilement, simplement.
      • [^] # Re: Orienté Utilisateur?

        Posté par . Évalué à  2 .

        Ben le livecd a pas l'air de marcher sur qemu (freeze lors du demarage de X).
    • [^] # Re: Orienté Utilisateur?

      Posté par . Évalué à  3 .

      > En quoi l'approche orientée utilisateur est elle implémentée ici?

      Justement, elle n'est pas encore implémentée :) (ce n'est que la version 0.2). Pour l'instant, le but est d'avoir quelque chose d'à peu près utlisable (pour d'éventuels devs qui aimeraient se joindre au projet) et une base solide. Les résultats concrets au niveau interface utilisateur arriveront ensuite (mais CoreObject devrait déjà apporter des choses je pense)
  • # But, interet ?

    Posté par . Évalué à  3 .

    Je ne suis pas du tout un specialiste dans ce domaine et j'ai bien du mal a comprendre l'ensemble de la demarche GNUstep et etoile.
    J'ai ete voir le site de GNUstep qui ne m'a pas franchement ete d'une tres grande utilite pour comprendre le but du projet.

    Ce que j'en ai compris :

    Les sources GNUstep peuvent etre compilee sur macos X, Utilisees sur GNUstep lui meme (un peu trivial)

    Linux n'est pas specifie, donc j'imagine qu'ils ont leur propre noyau base sur un BSD ou autre. Mais c'est a ou j'ai du mal, Openstep serait une couche d'abstration permettant de ne coder qu'une fois pour differentes plateformes et etoile un ensemble de logiciel utilisant openstep.

    Mais sur quoi ca repose et pourquoi n'y a il pas de lien avec linux ?

    Si quelqu'un pouvait eclairer ma lanterne.
    • [^] # Re: But, interet ?

      Posté par (page perso) . Évalué à  1 .

      Tu n'as pas cherché bien, déjà le journal est assez clair, c'est un environnement de bureau pour GNUsteap, c'est dit.
      Ensuite tu peux bien te demander ce qu'est GNUstep, donc direction le site de GNUstep, et sur la première page je lit : "GNUstep is a cross-platform, object-oriented framework for desktop application development"
      GNUstep est un environnement pour le développement d'application orientées desktop et cross-plateform, donc pour tous les OS en théorie. la phrase suivante précise que Openstep ne sont que des spécifications.
      Il est vrai qu'un petite phrase explicative concernant GNUstep dans ce journal aurait pu être sympa.

      Pour finir GNUstep est "cross-platform" donc tourne partout, donc sur Linux d'ailleurs les screenshots sont fait sous linux : http://www.etoile-project.org/etoile/mediawiki/index.php?tit(...) on lit : Operating System : Linux.
    • [^] # Re: But, interet ?

      Posté par (page perso) . Évalué à  10 .

      Il était une fois ( en 1985 ) un Monsieur qui venait de se faire virer de chez Apple est que l'on appelait Steve[1].

      Steve, alors très malheureux, savait qu'il pouvait compter sur ses qualités d'hypnotiseur de bobos, de sa faculté à pouvoir s'entourer de bonne personnes, et sur son flair qui fonctionne une décade sur deux.

      Steve créa donc deux sociétés :

      * le studio d'animation Pixar ( dont on se fou royalement ici )
      * NeXT Computer: un société d'informatique

      NeXT créa des ordinateurs vachement bien[2] pour l'époque ( écran 19 pouces / disque optique...) et un système d'exploitation baptisé NEXTSTEP [3]
      NEXSTEP était basé sur un noyau Unix Mach [4] ( vi le même que hurd ) et sur une interface graphique basé sur le language objet ( presque révolutionnaire à l'époque ) Objective-C et sur un système d'affichage postscript.

      Cependant ( oui on est dans la mauvaise décade du flair du petit Steve) les machines sont trop cher.... et personne n'en veut.

      Steve se dit alors qu'il faut que son système fonctionne sur autre chose que les stations NeXT. NeXT collabore alors avec Sun Microsytem, et en 1994 sorte les spécifications OpenStep[5] et écrit OPENSTEP, une implémentation des spécifications OpenStep


      Mais OPENSTEP n'arrive pas à percer car le grand méchant soft [6] balaye tout sur son passage.
      Heureusement le flair du petit Steve est revenu avec une idée de génie !!! :
      Se faire racheter par la boite qui l'avait viré ( Apple ) !!!

      "NeXT rachète donc Apple en se faisant payé" ( blague ). Comme NeXT avaint 15 ans d'avance Steve refourge son système ( Mach /BSD ), renomme l'implémentation d'OpenStep en Cocoa [7] , repeint le tout en bleu et le renomme Mac OS X .

      Il fait alors beaucoup de marketing ( invention du dock... tout ça ... ) et tout les bobos et BSDistes se disent que c'est super_cool_trop_novateur.

      Avec se succès Apple à vu ses parts de marché de passer de 3% à 4%.

      Pas beaucoup, certes mais on s'en fout car avec iPod et iPhone Apple va bien.... et tout le monde il est content ( sauf Jean-Louis Gassée [8] )

      Et GNUstep dans tout ça :

      GNUstep c'est un projet qui implémente les spécifications OpenStep + les morceaux rajouté par Apple dans Cocoa. Cela fonctionne sur les systèmes de type Unix ( libre ou non ) et partiellement sous Microsoft Windows
      Mais malgré le fait que GNUstep est super pour développer des application graphique, GNUstep reste confidentiel parce que les gens ils aiment pas le gris, ni l'Objective-C.

      GNUstep souffre également du fait qu'il n'y a pas de "chef de projet" (ou d'un mec charismatique "à la Icaza") et donc sans ligne directrice. Les développeurs préfèrent réimplémenter toutes les conneries rajouté par Apple au lieur de stabilisé leur super API.

      Et Etoile alors ?
      Etoile c'est un projet qui rajoute des couches ( du bloat ) et des concepts plus ou moins foireux à GNUstep ( qui je le rappel n'est pas stabilisé ). Eux aussi n'aime pas le gris alors ils repeignent GNUstep en caméleon.

      [1] http://fr.wikipedia.org/wiki/Steve_Jobs
      [2] http://www.levenez.com/NeXTSTEP/Materiel.html
      [3] http://fr.wikipedia.org/wiki/NeXTSTEP
      [4] http://en.wikipedia.org/wiki/Mach_microkernel
      [5] http://www.gnustep.org/resources/OpenStepSpec/OpenStepSpec.h(...)
      [6] http://www.microsoft.com
      [7] http://developer.apple.com/cocoa/
      [8] http://fr.wikipedia.org/wiki/BeOS
      • [^] # Re: But, interet ?

        Posté par . Évalué à  2 .

        Merci pour ce cours d'histoire de l'informatique, je vois bien meiux l'interet et les limites maintenant.
  • # distribution

    Posté par . Évalué à  2 .

    Y a une distribution qui permet de faire tourner le truc out of the box?
    debian experimental? fedora?
  • # liaison Objective C / GNUstep avec Lisaac

    Posté par (page perso) . Évalué à  2 .

    Bonsoir,

    C'est peut être un peu HS enfin bon ...

    Lisaac ( http://isaacos.com/li.html ) est un langage dont on a déjà pas mal entandu parler ici. Il est maintenant libre (mais pas encore publié, cela ne saurait tarder cependant). Et comme j'aimerais écrire des applications graphiques en Lisaac et que je préfère OpenStep/GNUstep à QT ou GTK, je pensait que je pourrais peut être dans mon temps libre (c'est à dire vraiment peu) faire un binding de GNUstep pour Lisaac.

    C'est à dire qu'on pourrait écrire des applications GNUstep en Lisaac sans toucher une ligne de C. un peu comme avec Io ( http://www.iolanguage.com/ ) mais avec un langage compilé (pas interprété)

    Lisaac est un langage orienté objet de très haut niveau (avec un héritage multiple, dynamique, un typage statique), très optimisé et qui compile en C. C'est à dire que avec du code Lisaac en entrée, on obtient un gros fichier .c qu'on compile ensuite avec gcc de manière classique.

    Alors le problème c'est que je ne sais pas du tout comment m'y prendre (je pense qu'en réfléchissant un peu ca devrait s'améliorer toutefois). Cependant si vous avez quelques idées, ça m'intéresse.

    Il y aurait peut être un problème, c'est que Objective C autorise d'envoyer des messages non définis à des objets (d'après mes lectures, pas mon expérience), alors que Lisaac ne permet pas de récupérer la valeur d'un slot non défini dans l'objet ou un de ses parents ... Mais cela m'étonnerais que ce soit beaucoup utilisé et il doit être possible de trouver un workaround.

    Qu'en pensez-vous ?
    • [^] # Re: liaison Objective C / GNUstep avec Lisaac

      Posté par (page perso) . Évalué à  1 .

      vu que tu me dis que lisaac genere un fichier c, deja ca devrait etre trivial de linker ca avec gnustep. Apres il te reste a faire le binding lui meme, mais bon... pas forcement bien difficile -- probablement en utilisant les fonctions C du runtime objective-c. Par contre, le coup de ne pas autoriser des envois de messages non definis, ca peut poser problemes.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.