Interview de Patrick Geiller Créateur de JSCocoaDate de publication : 22 décembre 2008 , Date de mise à jour : 30 décembre 2008
Par
Aurelien Gaymay (Le monde Mac selon kOrt3x) (Blog)
Interview de Patrick Geiller, Créateur de JSCocoa, langage permettant
de créer des applications Cocoa avec du JavaScript.
Cet interview a été réalisé par Aurelien Gaymay. I. Pouvez-vous vous présenter à nos lecteurs ? II. Comment avez-vous découvert le monde Mac et le développement sur Mac ? Et pensez-vous pouvoir vivre du développement sur Mac ? III. Pouvez-vous nous dire rapidement ce qu'est JSCocoa ? IV. Quels sont ses avantages et inconvénients ? V. Pourquoi passer du temps à apprendre ce nouveau langage ? VI. Pouvez-vous nous donner quelques exemples de codes et résultats en JSCocoa ? VII. Que sera le projet JSCocoa dans l'avenir ? Evolution du langage ? Projets d'applications pour iPhone/iPod Touch ? évolution de l'équipe de développement ? VIII. Que pensez-vous de la politique d'Apple à propos de l'App Store ? IX. Steve Jobs a annoncé le développement de "Snow Leopard", avec un nouveau moteur JavaScript, OpenCL, Grand Central et autres améliorations. Qu'en pensez-vous ? X. Liens I. Pouvez-vous vous présenter à nos lecteurs ?
Patrick, 30 ans, programmeur :) J'ai développé en C++, PHP, Javascript, et maintenant en Cocoa.
(1)
II. Comment avez-vous découvert le monde Mac et le développement sur Mac ? Et pensez-vous pouvoir vivre du développement sur Mac ?
Je suis venu au Mac par le Mini, en 2005. Je lorgnais depuis longtemps sur la
plateforme car j'en entendais beaucoup de bien, même de la part des hackers
de Slashdot. J'ai ensuite mis la main à la pâte avec XCode
(2)
et Interface Builder qui m'ont tout de suite séduit par leur facilité :
on 'dessine' les liens entre composants, on dépose les objets qu'on veut
instancier, on utilise Cocoa Bindings pour lier le tout, facile et élégant !
Maintenant, j'ai un iMac de début d'année.
Je ne sais pas si je pourrai vivre du développement Mac,
je tente le coup pour voir.
III. Pouvez-vous nous dire rapidement ce qu'est JSCocoa ?
JSCocoa permet d'écrire des applications OSX en Javascript.
Quiconque a déjà écrit un peu de Javascript se sentira
tout de suite à l'aise :
JSCocoa est un pont entre Javascript et Cocoa et donne accès à (quasi) toutes
les fonctions disponibles pour le développeur qui utilise habituellement XCode.
IV. Quels sont ses avantages et inconvénients ?
Des inconvénients ? il y en a toujours. ;-) L'avantage majeur est le coté runtime : on peut charger du code à n'importe quel moment, exécuter une fonction quand on veut, tout ça quand l'application JSCocoa tourne. On peut ainsi modifier ou déboguer son application quand on veut. On peut même modifier le code Objective-C existant et changer ainsi le comportement d'un bouton ou d'une fenêtre, toujours en runtime ! Alors que Objective-C impose de recompiler à chaque fois. Cet avantage est également l'inconvénient majeur : c'est plus lent, et comme le code n'est pas compilé il faut s'assurer de son exactitude par le biais de tests. (Ce qui est alors plus un avantage :) ) Ensuite on a tous les avantages de Javascript : syntaxe point (a.b.c.d au lieu de [[[a b] c] d] en Objective-C), expressions régulières, utilisation simplifiée des tableaux ( array[5] au lieu de [array objectAtIndex:5] ) et des dictionnaires ( hash['value'] ou hash.value au lieu de [hash objectForKey:@"value"] ). V. Pourquoi passer du temps à apprendre ce nouveau langage ?
Précision ! :) JSCocoa n'est pas un nouveau langage, c'est une
interface qui permet d'utiliser Cocoa (les librairies dévelopeurs d'Apple)
en Javascript (le langage du web - Safari et JSCocoa utilisent tous
deux JavascriptCore.framework). Si vous connaissez Cocoa, la syntaxe change de [[NSWorkspace sharedWorkspace] activeApplication] en NSWorkspace.sharedWorkspace.activeApplication. Si vous connaissez Javascript, vous manipulez des objets Cocoa - NSWorkspace.sharedWorkspace.activeApplication - au lieu d'objets DOM (3) - document.getElementById('content').color = 'red' VI. Pouvez-vous nous donner quelques exemples de codes et résultats en JSCocoa ?
Après avoir créé une vue Core Animation et récupéré un layer container
parentLayer, voici comment rajouter un layer :
![]() VII. Que sera le projet JSCocoa dans l'avenir ? Evolution du langage ? Projets d'applications pour iPhone/iPod Touch ? évolution de l'équipe de développement ?
Les bugs et issues sont listés sur Google Code :
http://code.google.com/p/jscocoa/issues/list
Dans le futur proche :
Pour l'évolution du langage et de l'équipe, toute idée ou
membre est le bienvenu ! J'ai écrit JSCocoa pour répondre à mes
attentes, quiconque veut le plier aux siennes peut le faire.
VIII. Que pensez-vous de la politique d'Apple à propos de l'App Store ?
Elle est peu lisible. J'ai surtout suivi la débâcle de
l'application "I'm rich", d'abord autorisée puis suspendue.
Si je ne suis pas client de ce genre d'applications,
je ne comprends pas pourquoi les interdire — Ce n'est pas
très "free market" de leur part.
D'un autre côté, on voit des dévelopeurs gagner des dizaines de milliers de dollars avec leur(s) application(s), et ça c'est extrèmement encourageant. IX. Steve Jobs a annoncé le développement de "Snow Leopard", avec un nouveau moteur JavaScript, OpenCL, Grand Central et autres améliorations. Qu'en pensez-vous ?
Bonne nouvelle pour JSCocoa ! Rien à changer côté code,
et d'après Apple 50% de vitesse en plus.
Je suis largué côté Grand Central et OpenCL. Aujourd'hui la majorité de mon code appelle des fonctions OS X de haut niveau, que ce soit pour du stockage de données ou des effets graphiques. À moins d'écrire un raytracer, un éditeur d'image ou de son, je ne vois pas encore comment utiliser ces technologies. X. Liens
|
Publicité
Best OfActualités les plus luesSemaine
Mois
Année
Communauté
Les meilleures ressources Mac
Formez-vous
Contact |
Copyright © 2008 Aurélien Gaymay. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.