Est-il risqué d'utiliser Coffeescript sans connaître Javascript? [fermé]

15

Je suis un programmeur raisonnablement expérimenté qui essaie d'apprendre le développement Web. J'essaie de développer une application Web côté client qui utilise svg ou canvas pour les graphiques. J'ai décidé que j'aimerais écrire le code d'application dans Coffeescript. Je ne connais ni Javascript ni Coffeescript.

Est-il nécessaire de connaître Javascript pour le développement Web de Coffeescript? Suis-je susceptible de rencontrer un problème noueux qui m'oblige à comprendre Javascript? Puis-je travailler avec bonheur avec les API Javascript de Coffeescript?

Edit : je pourrais facilement apprendre les bases de Javascript en une semaine. Je suis plus préoccupé par le fait que Javascript semble avoir beaucoup d'arêtes vives cachées. Dans la question des fonctionnalités linguistiques les plus étranges sur StackOverflow, Javascript est l'une des langues les plus courantes. Il a un objet et un modèle de classe inhabituels. Il a des règles de portée de nom non évidentes. Je trouve qu'il me faut plus d'une semaine pour vraiment connaître une langue.

Je vais travailler sur un petit projet simple pour apprendre le développement web. Serais-je mieux d'utiliser Javascript ou Coffeescript? Je pense qu'à long terme, je préférerai Coffeescript, mais je suis prêt à commencer par Javascript si je vais avoir besoin d'une compréhension approfondie de Javascript pour utiliser Coffeescript.

Peter Graham
la source
Gardez à l'esprit que CoffeeScript se compile simplement en JavaScript. Bien que CS facilite la gestion de certaines nuances de JavaScript, il ne les revit pas; son toujours soumis à toutes les mêmes fonctionnalités et bizarreries. Par exemple, le classmot clé dans CS ne fait rien de magique; il utilise simplement des mécanismes d'héritage prototypiques natifs JavaScripts. Pour cette raison, je recommanderais d'avoir au moins une connaissance auxiliaire de certaines "fonctionnalités" plus obscures de JavaScripts.
Michelle Tilley
2
CS n'est pas une solution miracle qui facilite tout, c'est JS avec une syntaxe différente. Que vous écriviez JS ou CS est une préférence de style.
Raynos

Réponses:

12

Je suppose que ce ne serait pas absolument nécessaire, mais si vous ne le faites pas, vous frapperiez des barrages routiers à long terme.

Vous devez comprendre ce qui se passe sous le capot et ce que le compilateur CoffeeScript transcrit, car c'est ce que les navigateurs (en supposant que nous parlons d'utiliser CoffeeScript dans un environnement de navigateur) devront interpréter. Ce qui signifie que c'est aussi ce dont vous aurez besoin pour déboguer , en particulier compte tenu du fait que CoffeeScript est assez récent et que nous pouvons encore rencontrer des aspérités et des bogues dans son mécanisme de transcription. De plus, si vous n'utilisez aucun outil de débogage sur mesure pour le débogage, vous devrez parcourir le code JavaScript généré pour déboguer à l'aide de Firebug ou de Chrome Dev Tools ou de la console JS de votre choix. Dans certains cas, vous pourrez voir comment l'erreur JS est directement liée à l'instruction CoffeeScript source. Dans d'autres, la transcription étant non triviale,

Prenez-le de cette façon: vous pouvez très bien développer des logiciels en Java et C # sans avoir jamais fait de développement de bas niveau. Pourtant, vous auriez du mal à comprendre ce qui se passe et pourquoi vous rencontrez des goulots d'étranglement de performances et des problèmes de mémoire si vous n'avez aucune idée et que vous ne pouvez pas faire une supposition éclairée sur ce que les temps d'exécution de ces langues doivent faire pour vous en arrière-plan, et quelle partie de la conjecture ils peuvent bousiller parce qu'ils ne peuvent tout simplement pas faire de miracles.

De plus, si vous apprenez JavaScript, vous vous rendrez compte à quel point il peut être incroyablement plus difficile qu'il n'y paraît à l'origine, et vous apprécierez encore plus CoffeeScript pour sa syntaxe concise et propre :)

haylem
la source
1
Ou vous serez ennuyé par CoffeeScript de ne pas être JavaScript;). ES5 est une belle langue.
Raynos
@Raynos: rouge à lèvres sur un cochon, toujours un cochon; tuxido sur une chèvre, toujours une chèvre, etc. nouveaux apprenants et même pour les programmeurs avancés. Pourtant, c'est notre web lingua franca moderne, et il s'améliore et mûrit avec le temps. J'aime l'idée de CoffeeScript car elle cache certaines choses ennuyeuses d'ECMAScript, à peu près de la même manière que l'utilisation de certaines bibliothèques pour Java (ou même un langage par-dessus) le rend supportable.
haylem
2
Meh, il vous suffit de lire les bonnes parties et votre bon départ. Les pièges ne sont pas si difficiles à éviter.
Raynos
@Raynos: Pourtant, j'ai du mal à trouver des développeurs JS avancés à embaucher, malheureusement. Les très bons sont assez difficiles à trouver.
haylem
Oh je suis d'accord, la communauté JS est saturée de développeurs médiocres. Je ne sais pas où tu devrais les trouver. Je ne connais que quelques bons développeurs de la chambre JS chat.SO . Je suppose que par le simple fait qu'il n'y a pas de bons développeurs JS, JS doit être dur. Je pense juste que personne ne prend la peine de l'apprendre correctement.
Raynos
4

Tu demandes:

Suis-je susceptible de rencontrer un problème noueux qui m'oblige à comprendre Javascript?

Je peux dire, sans équivoque, oui. En général, si vous faites quelque chose d'intéressant, à un moment donné, vous aurez au moins besoin de comprendre ce qui se passe dans les niveaux inférieurs à vous. (Parfois, Google + couper + coller peut vous sauver, mais vous ne voulez pas être ce type.)

Tout "programmeur raisonnablement expérimenté" qui choisit alors une nouvelle langue ne devrait pas vous prendre très longtemps. JavaScript est un langage assez simple. Tout ce qui est difficile vient de l'environnement dans lequel il s'exécute: à savoir, plusieurs navigateurs Web différents avec des idées différentes sur la façon de faire les choses.

De nombreuses informations sur le "mode d'emploi" que vous trouverez sur le Web seront écrites en tenant compte de JavaScript, vous aurez donc probablement plus de facilité si vous apprenez à lire JavaScript et à le traduire dans l'équivalent CoffeeScript.

Honnêtement, à moins que vous n'essayiez délibérément de rester ignorant, vous finirez probablement par apprendre JavaScript en tant qu'effet secondaire du travail dans CoffeeScript. Alors commencez déjà.

benzado
la source
4

Parce que " La règle d'or de CoffeeScript est: 'C'est juste du JavaScript' ", je recommande au moins une familiarité de base avec JavaScript. En particulier, jetez un œil au petit livre de Douglas Crockford , JavaScript: The Good Parts . Vous pouvez également regarder l'excellente présentation d'introduction de Crockford à ce sujet.

CoffeeScript enveloppe essentiellement les bonnes parties de JavaScript dans un package différent: " CoffeeScript est une expérience de pensée simple pour imaginer un langage qui expose une syntaxe minimale pour le beau modèle d'objet qui sous-tend JavaScript. " Vous n'avez pas besoin de connaître tous les détails, juste assez pour comprendre que JavaScript, lui-même, n'est pas un langage orienté objet basé sur une classe. Il n'a pas de cours du tout. Au lieu de cela, il utilise des « prototypes », ce qui fait certaines différences par rapport aux autres langages OO. Jeremy Ashkenas a nettoyé certaines des mauvaises parties de la syntaxe JavaScript, a ajouté quelques améliorations et l'a rendu un peu plus Python .

JavaScript a quelques "pièges" bien connus à surveiller. Sinon, c'est une excellente langue et est très utilisée aujourd'hui. Nous n'aurions pas AJAX ou jQuery sans cela, entre autres.

Bonne chance avec votre CoffeeScript!

John Tobler
la source
Achetez les bonnes pièces. Ne soyez pas bon marché!
Raynos
@Raynos - je l'ai fait. Je ne suis pas! : D Mais j'ai supprimé la suggestion de recherche potentiellement inappropriée. Merci de l'avoir signalé!
John Tobler
3

Oui. Ce n'est pas la fin du monde si vous ne le faites pas, mais oui.

Pourquoi? Eh bien tout d'abord, JavaScript est vraiment facile à apprendre. Il m'a littéralement fallu 4 jours pour l'apprendre (enfin, la plupart). De plus, je pense qu'il est plus précieux que CoffeeScript. Je ne pense vraiment pas que vous ayez même besoin de CoffeScript. Mais c'est toujours un bon outil.

Dynamique
la source
3
J'apprends JavaScript depuis des années et je ne dirais toujours pas que je le connais vraiment. De temps en temps, je découvre des choses qui me surprennent. Il peut être facile d'apprendre à faire "Hello World", mais pas de prédire le comportement de la conversion de type implicite et des fermetures.
Zach
@Zach Vous pourriez être intéressé par le livre JavaScript Enlightenment . Une critique se lit comme suit: "En fait, je n'ai vraiment rien trouvé manquant. Si vous vous êtes déjà demandé pourquoi JSLint se plaignait de quelque chose, la cause profonde est probablement expliquée quelque part dans ce livre."
Michelle Tilley
1
Les fermetures @Zach ne sont pas si difficiles, la conversion de type est pénible. Le gros problème avec JS est de savoir ce que font les anciennes versions d'IE.
Raynos
@Zach: Je sais que je ne connais pas tout Javascript. Je ne suis même pas proche. Mais je sais que les bases et certaines choses intermédiaires sont très faciles à apprendre.
Dynamic
0

Ça dépend.

Si CoffeeScript résume assez JavaScript, pour que vous n'ayez pas besoin de le savoir (comme le langage intermédiaire de résumé C #), alors oui, vous pouvez faire ce que vous voulez faire dans CoffeeScript sans apprendre JavaScript.

Mais mon expérience me dit que peu importe combien j'essaie de fuir JavaScript, en ce qui concerne le client, j'ai parfois vraiment besoin de me salir les mains et d'écrire du JavaScript pur.

Oui vous avez raison. tandis que la syntaxe JavaScript est facile et vous pouvez l'apprendre dans un faible, mais cela vous prend des années à maîtriser.

À mon humble avis, comme je vois CoffeeScript, il n'est pas assez mature pour envelopper toutes les subtilités JavaScript totalement. Donc, je ne risque pas de ne pas apprendre ou travailler directement avec JavaScript.

Saeed Neamati
la source
CoffeeScript est une abstraction très fine. Vous pouvez apprendre directement coffeescript mais le débogage des js compilés sera une douleur. "se salir les mains et écrire du javascript pur". JavaScript n'est pas sale.
Raynos
1
@Rayons, je ne voulais pas dire que JavaScript est sale. :). C'est en quelque sorte une expression qui signifie que vous devriez accéder à des couches sous-jacentes plus profondes.
Saeed Neamati
c'est comme dire "Je fais de la programmation de jeu, il vaut mieux se salir les mains et écrire en c ++" ou "Je fais de l'IA, mieux se salir les mains et écrire LISP". La seule couche sous-jacente plus profonde que nous avons dans le navigateur est NaCl
Raynos
0

La documentation coffeescript définit coffescript en termes de javascript équivalent. Si vous ne comprenez pas javascript, vous ne comprendrez pas non plus coffeescript.

Sean McMillan
la source