Developpez.com

Le Club des Développeurs et IT Pro

Light Table : l'environnement de développement du futur ?

Le 2012-04-16 16:40:13, par Hinault Romaric, Responsable .NET
Chris Granger, un ancien gestionnaire de programme pour Microsoft vient de dévoiler dans un billet de blog un nouveau concept d’environnement de développement.

Le projet Light Table est une surface de développement et de simulation d’application qui élimine tous les outils et fonctionnalités encombrants dans les IDE actuels.

« Malgré le changement radical à la simplification des interfaces logicielles, le monde des outils de développement continue à réduire notre espace de travail avec de nouvelles fonctions dans chaque version » écrit Granger « Nous sommes coincés dans un monde de fichiers et d’organisation forcée. Pourquoi devons-nous rechercher un peu partout les choses dont nous avons besoin pour coder ? Pourquoi tout est juste du texte statique ».

Partant de ce constat, Granger propose une nouvelle plateforme de développement fondée sur les principes suivants :

- Le développeur ne devra jamais avoir à chercher la documentation : en passant juste le curseur au-dessus d’une fonction, l’aide s’affichera automatiquement à droite. Cela implique que le développeur n’aura plus jamais à se soucier des choses comme l’ordre des arguments.



Le développeur devra être capable de faire toutes ses recherches d’aide sur place.



- Les éditeurs peuvent être partout et tout montrer, pas seulement le texte : le principe ici est de pouvoir intégrer par exemple un jeu de course sur la surface de travail, ensuite être capable de lui poser des questions et voir l’environnement y répondre.



- Les changements doivent produire des résultats instantanés : par exemple, lors de la saisie de (+ 3 4) le code est évalué et le résultat est affiché instantanément sans autre action.



L’évaluation et la visualisation des résultats en temps réel créent un débogueur permettant de corriger les bugs et avoir un aperçu rapide du fonctionnement de son programme.



- Ecriture du code avec un mode lumière : ce mode permettra à Light Table d’afficher les fonctions utilisées à l’intérieur de celle que le développeur est en train d’écrire, ainsi que leur code source sur le côté.



- Les fichiers ne sont pas la meilleure représentation du code, juste une sérialisation pratique :

« Un peu avant de quitter l’équipe Visual Studio, je suis arrivé à la conclusion que les fenêtres ne sont pas une abstraction de ce que nous faisons. D’autres ingénieurs ont des grandes tables ou ils peuvent disperser plusieurs outils. Une table à dessin est une meilleure abstraction pour nous. Nous ne devons pas nous limiter à un mode où la plus petite unité mobile est le fichier » conclut Granger.

[ame="http://vimeo.com/40281991"]Light Table[/ame]

Un nouveau concept d’IDE assez intéressant qui permettra au développeur de se concentrer uniquement sur son code avec des gains en temps importants.

Source : Blog Chris Granger

Et vous ?

Que pensez-vous de ce nouveau concept d'IDE ?
  Discussion forum
30 commentaires
  • air-dex
    Membre expert
    Envoyé par Hinault Romaric
    Le développeur ne devra jamais avoir à chercher la documentation
    Pas nouveau. Eclipse (par exemple) le fait déjà très bien avec la Javadoc

    Envoyé par Hinault Romaric
    Les éditeurs peuvent être n’ importe où et montrer quoi se soit, pas seulement le texte
    Pratique pour tester un truc. À voir pour le reste

    Envoyé par Hinault Romaric
    Les changements doivent produire des résultats instantanés
    Emacs le fait déjà bien avec la possibilité d'avoir le code que l'on tape dans une fenêtre et les résultats dans l'autre (+ la commande à coucher dehors pour avoir la seconde fenêtre ). Je le faisais quand j'apprenais le Scheme. Reprendre les sorties des 2 écrans, tout bien arranger et c'est bon, on a un "waouh!"

    Envoyé par Hinault Romaric
    Ecriture du code avec un mode lumière
    Oh la jolie expression bien marketing ! J'aimerais bien voir ça avec du code propriétaire.

    Envoyé par Hinault Romaric
    Que pensez-vous de ce nouveau concept d'IDE ?
    Ca me fait penser à une "révolution" Apple que des concepts déjà bien implantés qui sont bien relookés pour pouvoir faire des jolis "waouh!".
  • Uther
    Expert éminent sénior
    La plupart de ces fonctionnalités me laissent froid. Soit ça existe déjà, soit ça me parait difficile à mettre en œuvre en dehors de cas particuliers.
  • zeyr2mejetrem
    Membre chevronné
    Mouais ...

    Pour l'aide, comme cela a déjà été dit la plupart des IDE le font déjà (du moins pour Java, PHP et C).

    Pour l'interprétation directe de l'opération ultime 3+4 je ne vois pas l'intérêt à partir du moment où dans le code on travaille souvent (du moins pour ma part) avec des variables et que l'ide ne semble pas interpréter les expressions avec variables (cf. ligne du dessus dans le code exemple)...

    Quant à la fonctionnalité "J'affiche le code d'une fonction fille dans une micro fenêtre à côté" il faut espérer que la fonction fille ne soit pas trop grosse ou complexe ... en plus je suis quasi sûr que cela existe en eclipse mais que personne ne l'utilise parce que c'est illisible.

    bref: Au niveau de l'interface on se croirait revenu à l'époque de gwbasic et les fonctionnalités présentées me laissent aussi froid qu'un haagen dazs perdu dans le grand nord.
  • MiaowZedong
    Membre extrêmement actif
    Envoyé par kolodz
    Je n'en suis pas si sûr. Dans beaucoup de cas, ce n'est simplement pas possible. Car dépend d'un certains nombre d'objet instancier et modifier au file du programme.
    D'ailleurs, je ne sais pas vous, mais je n'ai pas une bête de course au travail. Si je fais un développement sur une une fonction grondement en ressources, je préfère autant ne pas lancer le débogueur et coder avec mon éditeur et mon cerveau.
    Je ne parle même pas des évaluation de code qui réalise des ajouts en base.(ou suppression)

    J'apprécie par contre l'affichage par fonction et non par classe. Bien que cela pose un problème pour les commentaires type javadoc qui se trouve avant une fonction ou pour les variables de classe.
    On dirait que le language de l'exemple n'est pas choisi au hasard: l'outil semble marqué par la philosophie des languages fonctionnels.
  • mak972
    Nouveau membre du Club
    Bret Victor a présenter au CUSEC une vidéo qui s'appelle "Inventing on Principle" qui reprend les mêmes principes que ci dessus.
    [ame="http://vimeo.com/36579366"]video[/ame]
  • ptah35
    Membre éclairé
    Envoyé par Veler
    Mouai, ça peut aller pour des gros projets, mais pas pour des gros. Je travail sur un projet avec 1,5M de lignes de codes, s'il n'est pas divisé en plusieurs fichiers, je vous raconte pas la galère pour m'y retrouver dedans
    je ne pense pas qu'il ait quelque chose contre les fichiers en tant que tels et qu'il veuille mettre des millions de ligne de code dans un seul fichier, mais plutôt que ce qui est afficher dans un éditeur ne doit pas être forcement le contenu d'un fichier. Par exemple si on édite le ficher d'entête d'une classe en C++ pourquoi devrait-on avoir à ouvrir soit-même le fichier d'implémentation? Ou encore pourquoi devrions avoir tout le code complet de cinq classes alors que seule une méthode de chacune d'elle nous intéresse. Alors évidemment de simples fichiers dont les noms sont choisis par le programmeur ne feront peut-être pas l'affaire.

    Personnellement, je n'aime pas les environnement qui ne me laisse pas décidé où je sauve le texte de mon code source, mais je peux comprendre son point de vue et le potentiel de sa recherche. En outre, on accepte une certaine opacité lorsqu'on utilise un tableur ou un traitement de texte, alors au fond pourquoi pas pour du code source.

    Envoyé par Cal67
    Pour le Lisp, ça à l'air génial. Ça remplacera sûrement Emacs
    Un superbe outil pédagogique en effet!
  • Bousk
    Rédacteur/Modérateur
    Envoyé par Traroth2
    Tu vois les choses à trop court terme. Bon, normalement un développeur devrait avoir une bête de course, justement. Mais même si ce n'est pas le cas, c'est une question de 2 ou 3 ans pour que des machines d'entrée de gamme soient capables de faire tourner ce genre de fonctionnalité sans aucun problème.
    Ha que j'aimerais bien.
    Seulement ce que je constate quand je demande à mes collègues et où je suis passé c'est qu'une entreprise sera prête à mettre des dépenses folles pour équiper les commerciaux de la dernière tablette à la mode, alors que les développeurs se font incendier quand ils demandent ce qu'ils foutent sous un windows XP avec un bi-proc 1.4Gh et 2Go de ram.
  • Cal67
    Candidat au Club
    Pour le Lisp, ça à l'air génial. Ça remplacera sûrement Emacs
  • Camille_B
    Membre éclairé
    Ah deux ou trois trucs près c'est pas loin d'un développement LISP sous Emacs.
  • pyros
    Membre expérimenté
    Certaines choses me laissent doucement indifférente, d'autre me font bondir de ma chaise...

    Pourquoi tout est juste le texte basique ?
    Car c'est le format le plus générique et le plus portable qui soit, cf philosophie UNIX.

    Les changements doivent produire des résultats instantanés
    Quid d'une boucle infinie, stackOverflow et autre joyeusetés, voir un algo tout simplement long ? Même si le système est bien géré et ne plante pas, le résultat ne sera jamais instantané.

    afficher les fonctions utilisées à l’intérieure de celle que le développeur est en train d’écrire, ainsi que leur code source sur le côté
    La chose la plus ignoble qui soit. Le meilleur moyen de coder en fonction de l'implémentation et non en fonction de l'abstraction...

    Au final, toutes ces idées sont très sympa d'un point de vue pédagogique, mais inutilisable je pense en production. Comme cela a déjà été dit, cela tient plus de la philosophie MAC à mettre des effets whaou un peu partout qui ne sont pas toujours très utils.