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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

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

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

    Informations forums :
    Inscription : Février 2011
    Messages : 67
    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 expérimenté Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    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.

  3. #3
    Membre extrêmement actif

    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
    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 confirmé
    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
    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 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    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 confirmé
    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
    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 Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 709
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 709
    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.

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    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.

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

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

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    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.

  10. #10
    Invité de passage

    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
    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)

  11. #11
    Membre très actif
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    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.

  12. #12
    Membre très actif
    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
    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".

  13. #13
    Membre confirmé
    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
    Par défaut
    Citation Envoyé par Grimly Voir le message
    Javascript a ses mauvais côtés, mais aussi ses bons côtés : JavaScript: The Good Parts - YouTube

    Après si tu reste fermé d'esprit, c'est ton problème.
    Ton argument est valable, mais tu es loin de le porter.
    Premièrement, citer une vidéo Youtube est une mauvaise idée. Un court texte résumant ce qu'il y a dedans aurait été beaucoup plus intéressant, d'autant que certains n'ont pas accès à Youtube au boulot.

    Ensuite ta dernière phrase est agressive, ce qui décrédibilise tout de suite tes propos. On est ici pour avoir des débats constructifs, pas pour s'insulter et se rabaisser.

  14. #14
    Invité de passage

    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
    Par défaut
    Citation Envoyé par Grimly Voir le message
    Javascript a ses mauvais côtés, mais aussi ses bons côtés : JavaScript: The Good Parts - YouTube

    Après si tu reste fermé d'esprit, c'est ton problème.
    Si je me permets de critiquer Javascript, c'est par expérience.

    Je préfèrerais un langage où les mauvais côtés sont moins lourds et contraignants.

  15. #15
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut
    Citation Envoyé par Traroth2 Voir le message
    Je préfèrerais un langage où les mauvais côtés sont moins lourds et contraignants.
    Un tel langage existe ?

    Plus sérieusement, je ne vois pas en quoi JavaScript est lourd et contraignant. Ce que je trouve moi lourd et contraignant c'est de vouloir à tout pris coder un site web dans un langage qui devra toujours être transcodé en JavaScript pour marcher.

  16. #16
    Membre régulier
    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
    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.

  17. #17
    Membre à l'essai
    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
    Par défaut
    à propos de CoffeeScript (en anglais, désolé) : http://ceronman.com/2012/09/17/coffe...d-readability/

  18. #18
    Membre très actif
    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
    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

  19. #19
    Membre expérimenté
    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
    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)

  20. #20
    Invité de passage

    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
    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.

Discussions similaires

  1. Réponses: 31
    Dernier message: 09/06/2010, 09h45
  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, 11h38
  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, 19h01
  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, 17h30
  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, 17h30

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