Pourquoi coffeescript au lieu de javascript? [fermé]

24

Je pense que construire une langue qui se compile dans une autre langue semble être une mauvaise idée dès le départ, au lieu d'apprendre javascript correctement dès le départ. Examinez les bonnes pièces de Douglas Crockfords, puis vous êtes accro. Et javascript n'est pas difficile - écrire du bon code est difficile quelle que soit la langue! Si vous écrivez du code merdique en javascript, alors vous écrirez proprement du code merdique en coffeescript ou lattescript ou quelle sera la saveur du jour. Et dire que la syntaxe coffeescript est belle me passe. J'aime mes accolades et ma syntaxe C - et travaillerais de préférence dans un langage qui est comme ça (désolé VB!). Et plus de jouets et de langages et de cadres pour faire la même chose encore une fois ne me semblent plus comme un progrès!

marko
la source
5
Ainsi, la compilation Java en bytecode et C #, VB.NET et d'autres langages .NET compilant en IL sont également de mauvaises idées?
Odé
10
La différence est que les gens ne programment généralement pas directement en bytecode et IL (sauf erreur) alors que la programmation en Javascript est courante, d'où sa surprise / question.
Wildpeaks
14
cette "question" contient trois points d'exclamation et aucun point d'interrogation
azheglov
Si vous aimez coder en IL, je me trompe. Je pense seulement que javascript est suffisant. Et quand il passera à ECMAScript 5 et que le mode strict sera implémenté dans les navigateurs, ce sera encore mieux. Mais je ne dis pas que faire autre chose est complètement faux. Je veux une discussion sur le pour et le contre, pourquoi vous préférez autre chose que js.
marko
3
___ suce, ai-je raison?
TRiG

Réponses:

21

CoffeeScript est principalement une syntaxe différente en plus de JavaScript.

Si vous comprenez JavaScript et comprenez vraiment JavaScript, alors vous êtes autorisé à utiliser CoffeeScript si vous dites, préférez les espaces blancs et ->

Je considère que la différence entre JS et CS est la même que celle de discuter

if (thing)
{
  // code
}

if (thing) {
  // code
}

(ce dernier est meilleur. Quiconque fait le premier devrait se faire tirer dessus).

Quoi qu'il en soit, le principal problème avec coffeescript est de faire venir des gens (principalement des rails), puis d'écrire coffeescript sans connaître javascript.

Coffeescript a donc tous les mêmes défauts que jQuery. Ce sont juste plus de points d'entrée pour que les mauvais programmeurs écrivent plus de mauvais JavaScript. Nous devons vraiment résoudre la qualité du code d'une manière ou d'une autre.

Raynos
la source
8
offopic : the latter is better. Anyone who does the former should get shot- cela dépend de la langue - j'aime le premier style, mais ce n'est pas compatible avec JS, qui est ma langue principale;)
c69
1
it depends on the language.Je pense qu'il voulait parler de JavaScript.
Vardhaman Deshpande
1
Il y a aussi des choses que vous ne pouvez tout simplement pas faire dans CoffeeScript. Vous avez considérablement moins de contrôle granulaire sur la création d'objets et autres.
Erik Reppen
En ajoutant simplement au commentaire de c69, le formatage de la première manière peut entraîner des problèmes réels: encosia.com/…
Buzzology
1
(ce dernier est meilleur. Quiconque fait le premier devrait se faire tirer dessus) - Prouvez-le! L'extrémisme est tout simplement mauvais, peu importe qui, quand, où.
hrishikeshp19
13

Il y a une idée fausse de JavaScript en tant que langage "jouet". Cela amène les gens à le considérer comme quelque chose à jouer avec, plutôt que utilisé pour quelque chose de substantiel. Ajoutez cela à la barrière inférieure pour l'entrée (c'est-à-dire que vous avez déjà un navigateur et un éditeur de texte, afin que vous puissiez commencer à écrire JavaScript), et vous vous retrouvez avec des masses de gens qui ne comprennent pas la langue écrivant des quantités massives de code, et souillant le nom "JavaScript".

Il y a une quantité plus élevée (absolue) de mauvais JS que les autres langues en raison de cette visibilité accrue. Les mauvaises habitudes deviennent courantes à mesure que le mauvais code se propage sur le Web et que les gens consultent la source sur des pages qui n'ont pas été vérifiées pour l'exactitude ou les bonnes pratiques, et JavaScript se retrouve avec un mauvais nom à cause de cela.

Pour ces raisons, les gens ressentent le besoin de créer des langages plus familiers (plus "réels") qui se transposent en JavaScript. Ils veulent le confort de l'OO classique, de la frappe statique et d'autres fonctionnalités qui apparaissent dans d'autres langues. Ils voient les monstruosités créées par des programmeurs inexpérimentés utilisant JS, et pensent que cela doit être le résultat des "défauts fondamentaux" (pour citer Google) dans la langue.

</rant>

Quoi qu'il en soit, utilisez ce que vous voulez. Je m'en tiendrai à mes objets littéraux, typage dynamique et OO prototypique, merci.

Ryan Kinal
la source
2
Hé mais la fléchette ne va pas résoudre tous nos problèmes! (</
sarcasm
Amen à cela! (Pas le commentaire de la fléchette!)
Marko
Nous class
sommes en
4

Je pense que l'avantage (avertissement: je n'ai pas utilisé CoffeeScript au-delà de jouer avec l'exemple sur le site Web) est qu'il rend JavaScript un peu plus intuitif pour la foule à laquelle il s'adresse: à savoir les personnes Ruby / Python.

Personnellement, je ne vois pas la nécessité de CoffeeScript, car j'aime la syntaxe JavaScript. Cependant, je vois comment cela pourrait être utile.

Wayne Molina
la source
1
Oui, je pense que la syntaxe ruby ​​/ python me semble suspecte, car j'ai principalement codé dans des langages de style C comme Javascript, C #, PHP, actionscript et java.
marko
4
Cela me semble plutôt bien (sauf la syntaxe ->et =>) car j'ai un peu utilisé Ruby / Python, mais je pense que nous ne devrions pas essayer de cacher JavaScript en raison de son omniprésence. Oui, certains d'entre eux sont maladroits mais apprendre le JavaScript "pur" est un meilleur retour sur investissement de l'OMI en raison de la prolifération du JavaScript "pur" dans la nature.
Wayne Molina
0

Que vous aimiez la syntaxe ou non est subjectif, cependant le fait est que CofeeScript s'occupe de quelques verrues JavaScript ennuyeuses. Bien sûr, on ne sait toujours pas s'il vaut la peine d'introduire un nouveau langage et de faire face à l'étape de compilation.

Nemanja Trifunovic
la source
6
"verrues javascript ennuyeux" CoffeeScript ne fait pas, il donne juste du sucre et de la syntaxe. Je peux éviter les verrues moi-même, et je le fais.
Raynos