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

Actualités Discussion :

Dropbox abandonne JavaScript au profit de CoffeeScript

  1. #1
    Expert confirmé

    Femme Profil pro
    Ingenieur en informatique
    Inscrit en
    Février 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    Points : 4 763
    Points
    4 763
    Par défaut Dropbox abandonne JavaScript au profit de CoffeeScript
    Dropbox abandonne JavaScript au profit de CoffeeScript
    Et vous, envisageriez-vous une telle migration ?


    Dropbox, le service de stockage et de partage de fichiers en ligne, déclare avoir complètement abandonné JavaScript et avoir réécrit la totalité de son code source pour navigateur dans un langage relativement nouveau appelé CoffeeScript.


    Dans leur blog, les développeurs de Dropbox affirment que la migration vers CoffeeScript s’est faite en l’espace d’une semaine seulement. Et ce grâce à l'outil "js2coffee". Ils affirment aussi que grâce à cette migration, ils ont réussi à réduire de 20 % le nombre de lignes de code de l’interface Dropbox. En effet, la nouvelle base de code contient 5000 lignes et 200.000 caractères de moins que le code original.

    23 000 lignes de code, c’est ce que compte maintenant l’interface web de Dropbox en langage CoffeeScript. Cependant, CoffeeScript est compilé en JavaScript et les utilisateurs ne verront aucun changement dans l’interface Dropbox après la migration. « Le site fonctionne et se comporte comme avant » rassurent les développeurs sur le blog de Dropbox.

    Comparé à JavaScript, CoffeeScript offre une syntaxe semblable à celles de Python ou Ruby. Les développeurs de Dropbox dénombrent parmi les avantages de CoffeeScript un code moins chargé, moins long à taper et une syntaxe plus claire et plus lisible qui utilise les fonctions et les boucles de manière très compacte.

    Étant donné que l’utilisateur final de la plateforme Dropbox ne verra aucun changement dans son fonctionnement, la réduction des lignes du code source est-elle un indicateur suffisant pour savoir, si oui ou non, le langage CoffeeScript est meilleur que JavaScript ? Et vous seriez vous capable et surtout curieux de tenter une telle expérience de migration pour vos applications ?

    Source : blog officiel de Dropbox

  2. #2
    Membre averti Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Points : 425
    Points
    425
    Par défaut
    Aucun changement visible pour l'utilisateur, certes, mais si CoffeeScript permet un gain en productivité des développeurs on peut s'attendre à voir un rythme un peu plus soutenu dans les améliorations de l'interface.
    11001.00101.10010.10000.00111

  3. #3
    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
    Intéressant.

    Le probleme c'est que je n'ai jamais eu confiance en Javascript alors j'aurais du mal a avoir confiance en quelque chose qui génere du Javascript.
    Surtout que CoffeeScript nécessite tout de meme un certain temps d'apprentissage et que le Javascript est rarement extremement utilisé sauf dans des applications spécifiques (tel DropBox), des frameworks comme jQuery simplifiant déja le Javascript.

    Peut-etre qu'au final le language Google DART serait plus intéressant que CoffeeScript comme alternative.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Points : 16 092
    Points
    16 092
    Par défaut
    D'une manière générale :

    Moins de lignes de code => meilleure lisibilité (normalement) => maintenance et développement facilité => gain de temps et de productivité.

    Donc si CoffeeScript permets de réduire les lignes de codes sans que ça devienne illisible, c'est une bonne chose selon moi.

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Je vois pas bien en quoi c'est un abandon de javascript ... c'est juste une manière différente de l'écrire.

    Après c'est un avis perso mais la syntaxe coffescript est pas géniale pour les gens habitués à des langages "classiques" type C/C++, JAVA.
    Les délimitations à coup d'indentation et non de crochets je suis pas fan.

    C'est comme l'objective C , ca doit être une question d'habitude j'imagine ^^
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 86
    Points : 180
    Points
    180
    Par défaut
    Citation Envoyé par alex_vino Voir le message
    Intéressant.

    Le probleme c'est que je n'ai jamais eu confiance en Javascript alors j'aurais du mal a avoir confiance en quelque chose qui génere du Javascript.
    Surtout que CoffeeScript nécessite tout de meme un certain temps d'apprentissage et que le Javascript est rarement extremement utilisé sauf dans des applications spécifiques (tel DropBox), des frameworks comme jQuery simplifiant déja le Javascript.

    Peut-etre qu'au final le language Google DART serait plus intéressant que CoffeeScript comme alternative.
    Sauf que DART n'est supporté que par Chrome et le restera d'après les déclarations des autres éditeurs de navigateurs.

    En tant que fanboy du Python, j'apprécie beaucoup la syntaxe de CoffeeScript. Je ne connaissais pas ce langage et je suis agréablement surpris. Pour les quelques exemples que j'ai pu voir, le langage semble effectivement beaucoup plus lisible et concis que JS.

  7. #7
    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
    Depuis quelques semaines, je remarque que les développeurs ont un réel besoin d'utiliser un langage en amont, facile à supporter, capable de générer du javascript.

    Comme la conversion C# vers JS avec Saltarelle.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  8. #8
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 654
    Points : 3 774
    Points
    3 774
    Par défaut
    Qu'importe le choix de JavaScript ou de CoffeeScript, l'important est que le JavaScript généré au final soit bon. Ça sert à rien de faire un beau code en CoffeeScript si derrière l'outil qui transforme le CoffeeScript en JS génère n'importe quoi. Mais je ne pense pas que ça soit le cas de js2coffee. Dropbox est devenu trop important pour choisir n'importe quoi comme outil. Cela ne les empêche pas toutefois de rester vigilants sur les performances de l'outil.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 11
    Points : 28
    Points
    28
    Par défaut
    Qu'importe le choix de JavaScript ou de CoffeeScript, l'important est que le JavaScript généré au final soit bon.
    J'ai personnellement porté en CoffeeScript une librairie Javascript existante d'un projet sur lequel je travaille, par pure curiosité.

    J'y ai trouvé les avantages suivants :

    • code plus concis et facile à lire
    • présence de classes avec une gestion intelligente de this et des variables de classe, à rapprocher de la syntaxe de ruby
    • code javascript généré très proche de ce que j'avais codé à la main auparavant, et même meilleur dans certains cas, n'étant pas un gourou du js


    Ce langage est effectivement très intéressant pour les habitués de Ruby comme moi, il y a manifestement eu une inspiration directe de la part de ses concepteurs.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Points : 608
    Points
    608
    Par défaut
    Citation Envoyé par air-dex Voir le message
    Qu'importe le choix de JavaScript ou de CoffeeScript, l'important est que le JavaScript généré au final soit bon. Ça sert à rien de faire un beau code en CoffeeScript si derrière l'outil qui transforme le CoffeeScript en JS génère n'importe quoi. Mais je ne pense pas que ça soit le cas de js2coffee.
    Je ne pas non plus que ce soit le cas de js2coffee puisqu'il fait le chemin inverse si j'ai bien compris.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    à propos de CoffeeScript (en anglais, désolé) : http://ceronman.com/2012/09/17/coffe...d-readability/

  12. #12
    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
    à propos de CoffeeScript (en anglais, désolé) : http://ceronman.com/2012/09/17/coffe...d-readability/
    J'ai lu l'article et l'auteur a totalement raison ,sauf que comme pour Ruby, dont CS est fortement inspiré c'est un choix de design de langage. Ruby est ultra difficile à lire quand on ne comprends pas comment il fonctionne , cependant on peut choisir de coder en coffeescript et rester lisible pour les développeurs javascript.

    mais écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( move x,divide y,2 if y in [0,24] and x ) for x in [0..50] by 2
    c'est sur que c'est pas évident à comprendre quand on vient du C ou Java

  13. #13
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 493
    Points
    493
    Par défaut
    Après c'est un avis perso mais la syntaxe coffescript est pas géniale pour les gens habitués à des langages "classiques" type C/C++, JAVA.
    Les délimitations à coup d'indentation et non de crochets je suis pas fan.
    de ma propre expérience ça se fait très vite, mais j'avoue que j'avais abandonné java au profit de groovy depuis quelques temps déjà ce qui a du faciliter la transition. le seul hic c'est qu'on y prend gout, aujourd'hui je n'envisage plus de démarrer un projet en js sauf sous la menace d'une arme contendante ou d'un gros chèque,

    à noter que pour des frameworks comme sencha qui encapsulent absolument tout (création de classes, parcours d'array etc), ça pert un peu de son charme (et de son intérêt)
    Mobile first !
    Développeur & co-fondateur de appSoluce ! - développement de solutions mobiles cross-platform

  14. #14
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    En soit, avoir 20% de lignes de code en moins me parait une raison très insuffisante pour tout réécrire et pour se retrouver au final avec un niveau d'abstraction supplémentaire (au lieu d'avoir directement le code de l'interface écrit en Javascript, on a le code écrit en CoffeeScript ET l'interface en code généré en Javacript, avec les inconvénients que ça suppose en terme de confiance dans l'équipe qui développe CoffeeScript et complexification du système), avec l'introduction d'un langage quand même plutôt confidentiel, ce qui va augmenter la courbe d'apprentissage pour les nouveaux développeurs qui arrivent sur le projet.

    La contrepartie, c'est de ne plus avoir à écrire de Javascript, et ça, il faut reconnaitre que ce n'est pas un mince avantage. Mais j'avoue que ça me parait un gros investissement, par rapport aux résultats.

  15. #15
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par hotcryx Voir le message
    Depuis quelques semaines, je remarque que les développeurs ont un réel besoin d'utiliser un langage en amont, facile à supporter, capable de générer du javascript.

    Comme la conversion C# vers JS avec Saltarelle.
    Ben, le truc, c'est que c'est simplement un workaround : on cherche à compenser la catastrophe qu'est le Javascript en ne l'écrivant plus directement, mais en le générant. Tout ça n'existerait pas si Javascript était un langage correct ou était remplacé par un langage correct. Le monde informatique est piégé. Javascript a démarré comme un petit langage, pour ce truc, là, le web, qui n'était pas très important, et maintenant, on est tous coincé avec pour ces applications web ultra-critiques pour la stratégie de l'entreprise. Résultat : pléthore de solutions différentes et incompatibles pour contourner ce qu'il faut bien appeler désormais le problème Javascript.

    Quand je pense qu'il y a des gens qui sont en train de lancer des nouvelles technos serveur (ça existe depuis longtemps, en fait. Genre Netscape Entreprise Server en 1994...) basés sur Javascript, ça me dépasse. Des adeptes des fouets et des chaines, peut-être...

    (je déconne, hein. Node.js, ça a l'air plutôt sympa, en fait)

  16. #16
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Points : 380
    Points
    380
    Par défaut
    Citation Envoyé par Traroth2 Voir le message
    Ben, le truc, c'est que c'est simplement un workaround : on cherche à compenser la catastrophe qu'est le Javascript en ne l'écrivant plus directement, mais en le générant. Tout ça n'existerait pas si Javascript était un langage correct ou était remplacé par un langage correct. Le monde informatique est piégé. Javascript a démarré comme un petit langage, pour ce truc, là, le web, qui n'était pas très important, et maintenant, on est tous coincé avec pour ces applications web ultra-critiques pour la stratégie de l'entreprise.
    Javascript a ses mauvais côtés, mais aussi ses bons côtés : [ame="http://www.youtube.com/watch?v=hQVTIJBZook"]JavaScript: The Good Parts - YouTube[/ame]

    Après si tu reste fermé d'esprit, c'est ton problème.

  17. #17
    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
    Javascript a ses mauvais côtés, mais aussi ses bons côtés :
    Le problème est de savoir si les bons cotés sont plus importants que les mauvais cotés.
    Coffeescript utilise en fait un sous ensemble de javascript ( pas de with , les switchs obligatoirement disjoints , les variables toujours déclarées avec var , jamais de == toujours des === , etc...)

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1=="1" vrai en javascript
    1=="1" faux en coffeescript
    Au linter de Crockford , Coffeescript passe toujours les 100% , donc le code généré par coffeescript est toujours de bonne qualité et évite les "pièges" de javascript.

    Ecrire du code coffeescript , c'est écrire du code javascript de meilleurs qualité , c'est bien ça le problème. On devrait pouvoir écrire du code de qualité sans avoir à faire attention à toutes les "bad parts". Si on prend java ou C# , on peut aimer ou pas les choix de design de langage, mais ces langages n'ont pas de "bad part".

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    PhD Student, Engineer, Teaching Assistant
    Inscrit en
    Juillet 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : PhD Student, Engineer, Teaching Assistant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 17
    Points : 32
    Points
    32
    Par défaut
    la réduction des lignes du code source est-elle un indicateur suffisant pour savoir, si oui ou non, le langage CoffeeScript est meilleur que JavaScript ?
    La taille d'un script n'a jamais été un réel indicateur de qualité.
    Javascript n'est pas parfait, CoffeScript non plus.

    Je trouve que certaines construction CoffeScript sont loin d'apporter une meilleur lisibilité, certaines sont beaucoup trop concise. A vouloir être trop concis on devient parfois moins explicite. Certaines sont également redondantes. Une mauvaise chose est la non déclaration explicite des variables qui peut provoquer des longues heures de débogage.

    Mais il faut admettre que le langage a des qualités (plus de point virgule; meilleur lisibilité sur certaines construction, ...).
    Le grand avantage selon moi est le code généré qui est propre et performant. Mais un compilateur javascript ne pourrait-il pas faire aussi bien ?

    Je suis donc pour un langage intermédiaire, s'approchant peut-être sur certains termes de CoffeScript, mais plus rigoureux avec davantage de concepts.

  19. #19
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 493
    Points
    493
    Par défaut
    Ecrire du code coffeescript , c'est écrire du code javascript de meilleurs qualité , c'est bien ça le problème
    +1
    je connais des gens qui sont très à l'aise avec le js, pour ma part j'ai toujours été mal à l'aise avec certains syntaxes alambiquées dans le cas de constructions de classes ou d'application de certains patterns, je cherchais depuis un moment quelque chose capable de faire ça au moins aussi bien

    Je trouve que certaines construction CoffeScript sont loin d'apporter une meilleur lisibilité, certaines sont beaucoup trop concise.
    complètement, je ne les applique pas toujours d'accord, le déclencheur ça a été quand même l'écriture d'une classe coffee

    Mais un compilateur javascript ne pourrait-il pas faire aussi bien ?
    je ne comprends pas trop la question, un compilateur qui va de quoi vers quoi ?
    Mobile first !
    Développeur & co-fondateur de appSoluce ! - développement de solutions mobiles cross-platform

  20. #20
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Après avoir lu toutes les réponses , je me rend compte qu'aujourd'hui mal-grès le fait que JS soit un langage devenu incontournable pour tout développeur web , nombreux sont nombreux a le fuir
    Pourtant après quelques année de pratique, j'estime connaitre plutôt très bien ce langage et d'autre , et je ne comprend pas pourquoi il est autant décrié, de plus coffescript ne permet qu'une génération de js a partir d'un autre langage , ça me dépasse ....
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

Discussions similaires

  1. Réponses: 31
    Dernier message: 09/06/2010, 08h45
  2. Yahoo abandonne son moteur de recherche au profit de Microsoft Bing
    Par Pierre Louis Chevalier dans le forum Actualités
    Réponses: 34
    Dernier message: 09/08/2009, 10h38
  3. [W3C] Le W3C abandonne le XHTML 2 au profit du HTML 5
    Par Kerod dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 27/07/2009, 18h01
  4. Le W3C abandonne le XHTML 2 au profit du HTML 5
    Par Kerod dans le forum Actualités
    Réponses: 0
    Dernier message: 04/07/2009, 16h30
  5. Le W3C abandonne le XHTML 2 au profit du HTML 5
    Par Kerod dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 04/07/2009, 16h30

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