IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

JavaScript : Microsoft porte les 15 000 lignes de code « Cut The Rope »


Sujet :

JavaScript

  1. #1
    Expert éminent sénior

    Inscrit en
    Juillet 2009
    Messages
    3 407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 407
    Points : 149 059
    Points
    149 059
    Par défaut JavaScript : Microsoft porte les 15 000 lignes de code « Cut The Rope »
    JavaScript : Microsoft porte les 15 000 lignes de code « Cut The Rope »
    Depuis Objective-C et rend disponibles les outils qui l’ont aidé


    Si Cut the Rope ne vous dit rien, vous pouvez dès à présent aller voir à quoi ressemble ce « best seller » des jeux mobiles. Ses premiers niveaux sont à présent disponibles en applications Web.

    Si vous le connaissez, vous serez peut-être étonnés d’apprendre que Microsoft vient en effet de porter le code initial (en Objetcive-C) en... JavaScript.

    Le projet a été mené pour trois raisons : montrer la puissance de ces technologies, promouvoir IE 10 (même si le jeu fonctionne avec d’autres navigateurs) et mettre à la disposition des développeurs Web plusieurs outils utilisés dans ce portage.



    Sur le papier l'idée est bonne. Mais dans la réalité, les problèmes n’ont visiblement pas manqué.

    La différence est a priori énorme entre une application native en Objective-C et un mélange de canevas (pour accélérer le rendu des graphiques), de feuilles de style CSS3, de fontes WOFF, et d’audio et de vidéos joués par le navigateur.

    Pourtant, l’équipe de développement a abattu les obstacles un à un.

    Le premier concernait la vitesse du JavaScript. « Pendant longtemps, JavaScript a eu la réputation d'être un langage lent », écrit Microsoft. Un problème plus ou moins résolu par les navigateurs avec la compilation à la volée (ou JIT pour Just-In-Time). « Nous savions que JavaScript serait rapide mais le programme nécessite beaucoup de calculs en temps réel. Nous sommes parvenus à de très bons résultats, ce qui prouve que la réputation de lenteur de JavaScript fait désormais partie du passé. La dernière génération de moteurs JavaScript est particulièrement rapide. La fréquence d'affichage atteint 60 images par seconde »

    Le deuxième défi, beaucoup plus difficile, concernait l’absence de structures dans JavaScript ce qui le rend très différent de la nature orientée objet d'Objective-C. « Ecrire en JavaScript est différent de l'écriture dans un langage compilé […] À la place d'un héritage d'objets traditionnel, JavaScript propose un héritage fondé sur la propriété Prototype. C'est une forme d'héritage très simplifiée qui n'est pas vraiment compatible avec un langage orienté objet traditionnel comme Objective-C ».

    Pour réussir son pari, l’équipe a utilisé diverses bibliothèques de classes (qui aident à écrire un code orienté objet pour JavaScript). Dont une écrite par « l’auteur réputé de jQuery ».

    Troisième défi, porter le code graphique d'OpenGL vers l'API Canvas de HTML5. Et là surprise, la chose s’est faite sans grande difficultés. Mieux, « nous avons découvert que Canvas fournit davantage de fonctionnalités dans certains domaines que la version OpenGL ES utilisée dans la version iOS de Cut the Rope ». Et de citer l’exemple du dessin des lignes lissées.

    Autre problème que les développeurs ont du affronter : une application web peut avoir un temps de chargement élevé. Une page Web peut s'afficher, même si une ou deux images sont manquantes, mais l'API Canvas de HTML5 n'affiche rien tant qu'une seule image est encore manquante. Et le jeu ne peut donc pas commencer.

    « Pour améliorer les choses, nous avons créé un chargeur de ressources qui télécharge tout le contenu nécessaire et indique clairement ce qui est en cours de chargement », révèle Microsoft.

    Le résultat s’appelle PxLoader, une bibliothèque JavaScript de chargement de ressources utilisable aussi bien dans les sites, que dans les jeux ou les applications HTML5. Petite précision, cette bibliothèque est open source et gratuite. Et disponible.



    La version native iOS de « Cut The Rope » compte environ 15 000 lignes de code, hors bibliothèques. Son portage Web possède à peu de choses près le même nombre de lignes. Celles-ci ont ensuite été regroupées et optimisées « si bien que si vous regardez le code source dans le navigateur, vous en trouverez moins que cela ». Au final, et pour donner un ordre de grandeur, « Cut The Rope pour Internet Explorer » pèse près de 6 Mo contre 200 à 300 Ko pour un site classique.

    Bien que s’appelant « pour Internet Explorer », l’application est compatible avec d’autres navigateurs. Microsoft l’a même testé avec les produits de ses concurrents (Fireofx et Chrome) pendant le développement, preuve d’un esprit d’ouverture de plus en plus prononcé chez l’éditeur.

    L’équipe a eu encore d’autres défis à relever lors de ce projet. Comme celui des performances globales du jeu. Un défi relevé grâce à un profiler spécifique. Et dont les détails sont expliqués sur le résumé de l’aventure.


    Tester « Cut The Rope pour Internet Explorer » et télécharger les outils du portage


    Et vous ?

    Impressionné(e) par cette réalisation ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 319
    Points : 843
    Points
    843
    Par défaut
    J'y vois surtout encore un moyen de promouvoir HTML5 et d'inciter les développeurs à regarder ailleurs que la programmation native, tout en leur facilitant la tâche. Un moyen comme un autre de couper l'herbe sous le pied d'Apple, qui si je ne me trompe pas, ne veut pas encore entendre parler de HTML5.

    Après tout, ce n'est pas comme s'ils préparaient le terrain pour le Windows Phone, n'est-ce pas ?

    Remarques acides à part, je reconnais que c'est une belle performance. Je serais curieux tout de même des ressources utilisées au total (temps et nombre de personnes), car le blog n'en parle pas (ou alors je suis aveugle )
    "Donnez un poisson à un Homme, et il mangera un jour. Apprenez-lui à pêcher, et il mangera tous les jours."

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 264
    Points : 725
    Points
    725
    Par défaut
    Citation Envoyé par vampirella Voir le message
    Un moyen comme un autre de couper l'herbe sous le pied d'Apple, qui si je ne me trompe pas, ne veut pas encore entendre parler de HTML5.
    "HTML 5 l'emportera sur le mobile" - Steve Jobs, 2010

    http://www.clubic.com/smartphone/iph...ra-mobile.html
    "By and large I'm trying to minimize mentions of D in C++ contexts because it's as unfair as bringing a machine gun to a knife fight." - Andrei Alexandrescu

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 506
    Points : 1 289
    Points
    1 289
    Par défaut
    <<Notez que ECMAScript5, la spécification de la toute dernière version de JavaScript, prend mieux en charge les classes mais nous avons choisi de ne pas l'utiliser pour ce portage car nous la connaissons moins et le temps nous était compté.>>

    C'est une blague?

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Points : 154
    Points
    154
    Par défaut
    ils ont fait un travail de chinois: le même visuel mais pas la même qualité(enfin pas le même framerate).

    ici
    http://www.cuttherope.ie/dev/notes-framerates.jpg
    on voit bien que ça risque de larguer sur ipad.

    mais bravo quand même très bon travail.

  6. #6
    Invité
    Invité(e)
    Par défaut
    de constater qu' a chaque fois que l'on parle de javascript il n'y a pratiquement que des mauvaises langues.

  7. #7
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Je tiens à noté que j'ai testé l'application sous firefox est qu'elle est fluide.
    Par contre, on ne nous fait pas mention du comportement sous IE6/7/8 (qui doit bien faire un petit 25% du trafique)

    Quand je sais ce que ça donne du code javascript pas optimisé sous IE7/8...

    C'est certes une idée stupide, mais une application native, quand tu l'as installé elle reste.

    Reste aussi que l'opération a été "Porter une application bien construite et fonctionnelle en javascript".
    Ce qui est bien différent de concevoir une application bien construite et fonctionnelle en javascript. Auriez-vous réaliser une code orienté objet dans un langage qui ne l'est pas de base ?
    Cela n'enlève rien à l'évolution qu'apporte HTML5. Mais on est loin des fonctionnalité disponible sur les langage natif. Customisation des sélecteurs natif par exemple.

    Cordialement,
    Patrick Kolodziejzyk.

    Note: Je vais tester demain l'application sous IE7/8 pour voir.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  8. #8
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par frfancha Voir le message
    <<Notez que ECMAScript5, la spécification de la toute dernière version de JavaScript, prend mieux en charge les classes mais nous avons choisi de ne pas l'utiliser pour ce portage car nous la connaissons moins et le temps nous était compté.>>

    C'est une blague?
    Pourquoi une blague?
    Former toute une tripoté d'ingénieur sur une version non éprouvée est tres couteux.

    Bon boulot de leur part, quand je l'avais testé il y a quelques mois c'était presque injouable (lenteur, inprécision), aujourd'hui le résultat est vraiment bien.

    Pour répondre a Mekal je dirais qu'il a raison, la plupart des gens ne savent que faire des opérations basiques en JS, peu de monde connait sa réelle puissance.
    Mais ce que je trouve dommage en javascript est que ce language mérite d'etre amélioré, et pas qu'un peu. En tout cas personellement je trouve que c'est une horreur, mais qu'il est bien pratique.

    Par contre je trouve dommage que Microsoft investisse tant dans ce language pour ses applications dites natives.

  9. #9
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Citation Envoyé par kolodz Voir le message
    Note: Je vais tester demain l'application sous IE7/8 pour voir.
    HTML5 ne va pas fonctionner sur ces navigateurs...

    Ça ne m'étonne pas que Microsoft investisse du temps dans cette technologie. Ils ont clairement décidé de se tourner vers HTML5 le jour où ils ont abondonné Sliverlight.
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  10. #10
    Membre éclairé Avatar de Camille_B
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2006
    Messages : 212
    Points : 673
    Points
    673
    Par défaut
    Ce qui est bien différent de concevoir une application bien construite et fonctionnelle en javascript. Auriez-vous réaliser une code orienté objet dans un langage qui ne l'est pas de base ?
    Et depuis quand Javascript n'est-il pas orienté objet ?

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Camille_B
    Et depuis quand Javascript n'est-il pas orienté objet ?
    Probablement depuis que certains auto-décrètent que le seul modèle objet est le modèle par classes.
    Comprendre que le modèle par prototype est certes différent mais tout autant orienté objet semble être intellectuellement hors de portée de beaucoup de détracteurs de JavaScript !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par Yoteco Voir le message
    HTML5 ne va pas fonctionner sur ces navigateurs...

    Ça ne m'étonne pas que Microsoft investisse du temps dans cette technologie. Ils ont clairement décidé de se tourner vers HTML5 le jour où ils ont abondonné Sliverlight.
    Je suis d'accord, mais Silverlight n'a jamais été abandonné, ils continuent de le développer pour les gens qui ont besoin de spécifique et que HTML5 ne permet pas de faire (ou tres mal). Exemple: 3D, certaines applications d'entreprises...

  13. #13
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 385
    Points : 3 527
    Points
    3 527
    Billets dans le blog
    1
    Par défaut
    Moi je dit bravo.

    Cela démontre que le javascript et le HTML peuvent faire de belle chose.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 657
    Points : 1 240
    Points
    1 240
    Par défaut
    <<Notez que ECMAScript5, la spécification de la toute dernière version de JavaScript, prend mieux en charge les classes mais nous avons choisi de ne pas l'utiliser pour ce portage car nous la connaissons moins et le temps nous était compté.>>
    Il n'y a pas de classe dans ES5 , ce sont des c*nneries. Ca fait pas sérieux de dire ça.

    Maintenant , il y a une différence entre porter du code et développer avec javascript comme premier outil de développement, à coup de console.log , sans compilation. Et les tests unitaires ne remplaceront jamais le type checking à la compilation.

  15. #15
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Le code javascript est-il obfuscé "sérieusement"?
    Si la réponse vous a aidé, pensez à cliquer sur +1

  16. #16
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Nom : 884576microsoftetlagestiondesversions.png
Affichages : 216
Taille : 841,8 Ko

    Bonjour la fracture numérique
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. Maintenance : Coût TMA pour 100 000 lignes de code
    Par Graffito dans le forum Débats sur le développement - Le Best Of
    Réponses: 8
    Dernier message: 24/02/2013, 13h14
  2. Réponses: 0
    Dernier message: 25/02/2008, 13h06
  3. Afficher les N° de ligne du code
    Par cirtey dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 13/04/2007, 15h00
  4. [XMLSpy] voir les N° des lignes de code
    Par t-die dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 21/11/2006, 14h28
  5. Réponses: 9
    Dernier message: 20/09/2006, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo