Wie riskant ist es, Coffeescript ohne Javascript zu benutzen? [geschlossen]

15

Ich bin ein ziemlich erfahrener Programmierer, der versucht, Webentwicklung zu lernen. Ich versuche, eine clientseitige Webanwendung zu entwickeln, die svg oder canvas für Grafiken verwendet. Ich habe beschlossen, den Anwendungscode in Coffeescript zu schreiben. Ich kenne weder Javascript noch Coffeescript.

Wie wichtig ist es, Javascript für die Coffeescript-Webentwicklung zu kennen? Trete ich wahrscheinlich auf ein grässliches Problem, bei dem ich Javascript verstehen muss? Kann ich problemlos mit Javascript-APIs von Coffeescript arbeiten?

Edit : Ich könnte die Grundlagen von Javascript in einer Woche leicht erlernen. Ich bin eher besorgt, dass Javascript viele versteckte scharfe Kanten zu haben scheint. In der seltsamsten Frage zu Sprachfunktionen von StackOverflow ist Javascript eine der am häufigsten verwendeten Sprachen. Es hat ein ungewöhnliches Objekt- und Klassenmodell. Es gibt nicht offensichtliche Regeln für den Namensumfang. Ich finde, es dauert mehr als eine Woche, bis ich wirklich eine Sprache beherrsche.

Ich werde an einem kleinen einfachen Projekt arbeiten, um die Webentwicklung zu lernen. Wäre es besser für mich, Javascript oder Coffeescript zu verwenden? Ich denke, auf lange Sicht bevorzuge ich Coffeescript, aber ich bin bereit, mit Javascript zu beginnen, wenn ich ein gründliches Verständnis von Javascript benötige, um Coffeescript verwenden zu können.

Peter Graham
quelle
Beachten Sie, dass CoffeeScript einfach in JavaScript kompiliert wird. Mit CS lassen sich einige Nuancen von JavaScript zwar einfacher verwalten, aber nicht nachvollziehen. Es unterliegt immer noch den gleichen Funktionen und Macken. Zum Beispiel classbewirkt das Schlüsselwort in CS nichts Magisches. Es verwendet einfach JavaScripts native prototypische Vererbungsmechanismen. Aus diesem Grund würde ich empfehlen, zumindest zusätzliche Kenntnisse über einige JavaScripts zu haben, die weniger aussagekräftig sind.
Michelle Tilley
2
CS ist kein Wundermittel, das alles einfacher macht, sondern JS mit einer anderen Syntax. Ob Sie JS oder CS schreiben, ist eine Stilvorliebe.
Raynos

Antworten:

12

Ich denke, es wäre nicht unbedingt notwendig, aber Sie würden langfristig Straßensperren treffen, wenn Sie dies nicht tun.

Sie müssen verstehen, was unter der Haube passiert und worauf der CoffeeScript-Compiler reagiert, da dies von den Browsern (vorausgesetzt, es handelt sich um die Verwendung von CoffeeScript in einer Browserumgebung) interpretiert werden muss. Das heißt, es ist auch das, was Sie zum Debuggen benötigen , insbesondere wenn man bedenkt, dass CoffeeScript relativ neu ist und wir möglicherweise immer noch auf einige Ecken und Kanten und Fehler in seinem Transkriptionsmechanismus stoßen. Wenn Sie keine maßgeschneiderten Debugging-Tools zum Debuggen verwenden, müssen Sie den generierten JavaScript-Code durchgehen, um mit Firebug oder Chrome Dev Tools oder der JS-Konsole Ihrer Wahl zu debuggen. In einigen Fällen können Sie sehen, wie der JS-Fehler direkt mit der Quell-CoffeeScript-Anweisung zusammenhängt. In anderen, da die Transkription nicht trivial ist,

Nehmen Sie es so: Sie können sehr gut Software in Java und C # entwickeln, ohne jemals eine Low-Level-Entwicklung durchgeführt zu haben. Sie haben jedoch eine sehr schlechte Zeit, um zu verstehen, was passiert und warum Sie auf Leistungsengpässe und Speicherprobleme stoßen, wenn Sie keine Ahnung haben und nicht wissen, was die Laufzeiten dieser Sprachen im Hintergrund für Sie tun müssen, und Welchen Teil der Vermutung könnten sie vermasseln, weil sie einfach keine Wunder vollbringen können.

Wenn Sie JavaScript lernen, werden Sie feststellen, wie unglaublich schwierig es sein kann, als es ursprünglich scheint, und Sie werden CoffeeScript für seine knappe und saubere Syntax noch mehr zu schätzen wissen :)

Haylem
quelle
1
Oder Sie ärgern sich über CoffeeScript, weil es kein JavaScript ist;). ES5 ist eine schöne Sprache.
Raynos
@ Raynos: Lippenstift auf einem Schwein, immer noch ein Schwein; Smoking auf einer Ziege, immer noch eine Ziege, etc ... :) Ich stimme zu, dass ECMAScript tatsächlich eine sehr interessante Sprache ist, wenn man es erst einmal kennt, aber es hat viel zu viele Inkonsistenzen und Fallen und Fallstricke, die es für beide zur Last werden lassen neue Lerner und sogar für fortgeschrittene Programmierer. Trotzdem ist es unsere moderne Verkehrssprache, die sich im Laufe der Zeit verbessert und weiterentwickelt. Ich mag die Idee von CoffeeScript, da sie einige ärgerliche Dinge von ECMAScript verbirgt, fast so, wie die Verwendung einiger Bibliotheken für Java (oder sogar einer Sprache darüber) es erträglich macht.
Haylem
2
Meh, du musst nur die Guten Teile lesen und dein Gutes zum Mitnehmen. Die Fallstricke sind nicht so schwer zu vermeiden.
Raynos
@Raynos: Trotzdem habe ich leider Schwierigkeiten, fortgeschrittene JS-Entwickler zu finden, die ich einstellen kann. Wirklich gute sind ziemlich schwer zu finden.
Haylem
Oh, ich stimme zu, die JS-Community ist voll von mittelmäßigen Entwicklern. Ich weiß nicht, wo du sie finden solltest. Ich kenne nur ein paar gute Entwickler aus dem JS-Chat.SO-Raum . Ich denke schon, dass es keine guten JS-Entwickler gibt, JS muss hart sein. Ich denke nur, dass niemand die Mühe macht, es richtig zu lernen.
Raynos
4

Du fragst:

Trete ich wahrscheinlich auf ein grässliches Problem, bei dem ich Javascript verstehen muss?

Ich kann eindeutig sagen, ja. Wenn Sie etwas Interessantes tun, müssen Sie im Allgemeinen irgendwann zumindest verstehen, was in den Ebenen unter Ihnen vor sich geht. (Manchmal kann Google + Ausschneiden + Einfügen Sie retten, aber Sie möchten nicht der Typ sein.)

Jeder "einigermaßen erfahrene Programmierer", der sich dann eine neue Sprache aneignet, sollte nicht allzu lange brauchen. JavaScript ist eine ziemlich einfache Sprache. Alles, was schwierig ist, kommt von der Umgebung, in der es ausgeführt wird: nämlich von mehreren verschiedenen Webbrowsern mit unterschiedlichen Ideen, wie Dinge zu tun sind.

Viele der im Web enthaltenen "How to" -Informationen werden mit Blick auf JavaScript verfasst, sodass Sie wahrscheinlich eine leichtere Zeit haben, wenn Sie lernen, wie Sie JavaScript lesen und in das entsprechende CoffeeScript übersetzen.

Um ehrlich zu sein, wenn Sie nicht absichtlich versuchen, unwissend zu bleiben, werden Sie wahrscheinlich JavaScript als Nebeneffekt der Arbeit mit CoffeeScript erlernen. Also fang einfach schon an.

benzado
quelle
4

Da " die goldene Regel von CoffeeScript lautet: 'Es ist nur JavaScript' ", empfehle ich zumindest eine grundlegende Vertrautheit mit JavaScript. Schauen Sie sich insbesondere Douglas Crockfords kleines Buch JavaScript: The Good Parts an . Sie können sich auch Crockfords eigene großartige Einführungspräsentation ansehen .

CoffeeScript fasst die guten Teile von JavaScript in einem anderen Paket zusammen: " CoffeeScript ist ein einfaches Gedankenexperiment, um sich eine Sprache vorzustellen, die eine minimale Syntax für das schöne Objektmodell aufweist, das JavaScript zugrunde liegt. " Sie müssen nicht alle Details kennen, gerade genug, um zu verstehen, dass JavaScript selbst keine klassenbasierte objektorientierte Sprache ist. Es gibt überhaupt keinen Unterricht. Stattdessen werden " Prototypen " verwendet, wodurch sich einige Unterschiede zu anderen OO-Sprachen ergeben. Jeremy Ashkenas gereinigt einige der schlechten Teile von JavaScript - Syntax auf, einige Verbesserungen hinzugefügt, und machte es ein bisschen mehr Python -esque.

JavaScript hat einige bekannte "Fallstricke", auf die Sie achten müssen. Ansonsten ist es eine großartige Sprache und wird heute sehr häufig verwendet. Wir hätten AJAX oder jQuery unter anderem nicht ohne.

Viel Glück mit deinem CoffeeScript!

John Tobler
quelle
Kaufen Sie die guten Teile. Sei kein Geizhals!
Raynos
@ Raynos - ich habe. Ich bin nicht! : D Aber ich habe den möglicherweise unangemessenen Suchvorschlag gelöscht. Vielen Dank für den Hinweis!
John Tobler
3

Ja. Es ist nicht das Ende der Welt, wenn Sie nicht, aber ja.

Warum? Zunächst einmal ist JavaScript sehr einfach zu erlernen. Ich habe buchstäblich 4 Tage gebraucht, um es zu lernen (naja, das meiste davon). Außerdem halte ich es für wertvoller als CoffeeScript. Ich glaube wirklich nicht, dass Sie CoffeScript brauchen. Aber es ist immer noch ein gutes Werkzeug.

Dynamisch
quelle
3
Ich lerne seit Jahren JavaScript und würde immer noch nicht sagen, dass ich es wirklich weiß. Hin und wieder entdecke ich Dinge, die mich überraschen. Es mag leicht zu lernen sein, wie man "Hello World" macht, aber das Verhalten impliziter Typkonvertierungen und -schließungen vorherzusagen, ist es nicht.
Zach
@Zach Möglicherweise interessieren Sie sich für das Buch JavaScript Enlightenment . In einer Rezension heißt es: "In der Tat konnte ich wirklich nichts vermissen. Wenn Sie sich jemals gefragt haben, warum JSLint sich über etwas beschwert, wird die Ursache wahrscheinlich irgendwo in diesem Buch erklärt."
Michelle Tilley
1
@ Zach Verschlüsse sind nicht so schwer, Typkonvertierung ist ein Schmerz. Das große Problem bei JS ist, zu wissen, was ältere Versionen von IE tun.
Raynos
@Zach: Ich weiß, ich kenne nicht alles von Javascript. Ich bin nicht mal nah dran. Aber ich weiß, dass die Grundlagen und einige der Zwischenprodukte sehr einfach zu erlernen sind.
Dynamische
0

Es hängt davon ab, ob.

Wenn CoffeeScript JavaScript ausreichend abstrahiert, sodass Sie es nicht kennen müssen (wie C #, das Intermediate Language abstrahiert), können Sie in CoffeeScript alles tun, was Sie möchten, ohne JavaScript zu lernen.

Aber meine Erfahrung zeigt mir, dass ich, egal wie oft ich versuche, mich vor JavaScript zu schützen, wenn es um Clients geht, manchmal wirklich die Hände schmutzig machen und reines JavaScript schreiben muss.

Ja, du hast recht. JavaScript-Syntax ist zwar einfach und Sie können es in einem schwachen lernen, aber es dauert Jahre, um sie zu meistern.

Meiner Meinung nach ist CoffeeScript nicht ausgereift genug, um alle JavaScript-Feinheiten vollständig zu umschließen. Daher riskiere ich nicht, nicht direkt mit JavaScript zu lernen oder zu arbeiten.

Saeed Neamati
quelle
CoffeeScript ist eine sehr dünne Abstraktion. Sie können Coffeescript direkt lernen, aber das Debuggen von kompilierten Js wird Ihnen schwer fallen. msgstr "meine Hände schmutzig machen und reines Javascript schreiben". JavaScript ist nicht schmutzig.
Raynos
1
@Rayons, ich wollte nicht, dass JavaScript schmutzig ist. :). Dies ist eine Art Ausdruck, der bedeutet, dass Sie zu tieferen darunter liegenden Ebenen gelangen sollten.
Saeed Neamati
Das ist so, als würde man sagen "Ich mache ein bisschen Game-Programmierung, mache meine Hände schmutzig und schreibe C ++" oder "Ich mache eine KI, mache meine Hände schmutzig und schreibe LISP". Die einzige tiefer liegende Ebene, die wir im Browser haben, ist NaCl
Raynos
0

Die coffeescript-Dokumentation definiert coffeescript in Bezug auf das entsprechende Javascript. Wenn Sie kein Javascript verstehen, verstehen Sie auch kein Coffeescript.

Sean McMillan
quelle