web-dev-qa-db-ja.com

JavaScriptを知らずにCoffeescriptを使用するのはどのくらい危険ですか?

私は、ウェブ開発を学ぼうとするかなり経験豊富なプログラマーです。グラフィックにsvgまたはcanvasを使用するクライアント側のWebアプリケーションを開発しようとしています。 Coffeescriptでアプリケーションコードを記述したいと思いました。 JavascriptもCoffeescriptも知りません。

JavascriptからCoffeescriptへのWeb開発を知る必要性Javascriptを理解する必要がある危険な問題にぶつかる可能性はありますか? CoffeescriptのJavascript APIで楽しく作業できますか?

編集:Javascriptの基本を1週間で簡単に学ぶことができました。 Javascriptには多くの隠れた鋭いエッジがあるように見えるので、私はもっと心配しています。 StackOverflowの strangest language feature 質問では、JavaScriptが最も一般的な言語の1つです。珍しいオブジェクトとクラスモデルがあります。それは自明ではない名前スコープ規則を持っています。本当に言語を知るのに一週間以上かかると思います。

私はウェブ開発を学ぶために小さなシンプルなプロジェクトに取り組みます。 JavascriptやCoffeescriptを使用した方がよいでしょうか?長期的には私はCoffeescriptを好むと思いますが、Coffeescriptを使用するためにJavaScriptを完全に理解する必要がある場合は、Javascriptから始めてもかまいません。

15
Peter Graham

絶対に必要というわけではないと思いますが、そうしなければ、長期的には障害物にぶつかるでしょう。

ブラウザー(CoffeeScriptをブラウザー環境で使用することについて話していると想定)が解釈する必要があるので、内部で何が起こっているのか、CoffeeScriptコンパイラーが何に変換するのかを理解する必要があります。つまり、これはあなたが必要とするものでもありますdebug、特にCoffeeScriptがかなり最近であり、まだその転写メカニズムに大まかなエッジやバグがあることに注意してください。また、デバッグにカスタムデバッグツールを使用していない場合は、生成されたJavaScriptコードをジャンプして、FirebugまたはChrome Dev Toolsまたは選択したJSコンソールを使用してデバッグする必要があります。場合によってはJSエラーがソースのCoffeeScriptステートメントに直接どのように関連しているかを確認できます。他の例では、文字起こしは重要なため、理解するのが難しいでしょう。

このようにしてください。JavaおよびC#で、低レベルの開発を行うことなくソフトウェアを非常にうまく開発できます。それでも、何が起こっているのか、なぜヒットするのかを理解するのに非常に悪い時間を費やすことになります。手がかりがなく、これらの言語のランタイムがバックグラウンドで何をする必要があるか、そして奇跡を取り除くことができないために失敗する可能性がある推測のどの部分について、知識のある推測を行うことができない場合のパフォーマンスのボトルネックとメモリの問題。

さらに、JavaScriptを習得すれば、JavaScriptが当初の見た目よりも非常に難しいことに気付くでしょう。CoffeeScriptの簡潔でクリーンな構文はさらに高く評価されます:)

12
haylem

あなたが尋ねる:

Javascriptを理解する必要がある危険な問題にぶつかる可能性はありますか?

私は、はっきり言って、はい。一般に、何か面白いことをしている場合、ある時点で、少なくとも自分の下のレベルで何が起こっているかを理解する必要があります。 (Google +カット+ペーストで節約できることもありますが、その人になりたくはありません。)

「合理的に経験豊富なプログラマー」が新しい言語を習得するのに、それほど長くはかかりません。 JavaScriptはかなり単純な言語です。それが困難なことは、それが実行されている環境に起因しています。

Webで見つける「ハウツー」情報の多くはJavaScriptを念頭に置いて書かれているため、JavaScriptを読んでそれを同等のCoffeeScriptに変換する方法を学ぶと、おそらくもっと楽になります。

正直なところ、故意に無知を維持しようとしない限り、おそらく、CoffeeScriptで作業することの副作用としてJavaScriptを学ぶことになります。だから、すでに始めましょう。

4
benzado

CoffeeScriptの黄金律は「それはただのJavaScript」です 」なので、少なくともJavaScriptの基本的な知識があることをお勧めします。特に、 Douglas Crockford の小さな本 JavaScript:The Good Parts をご覧ください。また、Crockford自身のすばらしい 紹介プレゼンテーション についてもご覧いただけます。

CoffeeScriptは基本的にJavaScriptの優れた部分を別のパッケージにラップします: " CoffeeScriptは、JavaScriptの基礎となる美しいオブジェクトモデルの最小限の構文を公開する言語を想像するための単純な思考実験です。 " JavaScript自体がクラスベースのオブジェクト指向言語ではないではないことを理解するのに十分なだけ、すべての詳細を知る必要があります。クラスはまったくありません。代わりに、「 prototypes 」を使用し、他のOO言語とのいくつかの違いを生じさせます。- Jeremy Ashkenas いくつかの悪い部分をクリーンアップしましたJavaScript構文の一部、いくつかの機能拡張を追加し、それをもう少し Python -esqueにしました。

JavaScriptには、よく知られている「注意点」があります。それ以外の場合、それは素晴らしい言語であり、今日、非常に一般的に使用されています。特に、AJAXまたはそれなしのjQueryはありません。

CoffeeScriptで頑張ってください!

4
John Tobler

はい。そうでなければ、それは世界の終わりではありませんが、そうです。

どうして?まず、JavaScriptは本当に簡単に学ぶことができます。文字通り、それを学ぶのに4日かかりました(ほとんどの場合)。また、CoffeeScriptよりも価値があると思います。 CoffeScriptも必要ないと思います。しかし、それはまだ良いツールです。

3
Dynamic

Coffeescriptのドキュメントでは、同等のjavascriptを使用してcoffeescriptを定義しています。 javascriptを理解していないと、coffeescriptも理解できません。

0
Sean McMillan

場合によります。

CoffeeScriptがJavaScriptを十分に抽象化し、それを知る必要がない場合(C#が中間言語を抽象化するなど)、そうすれば、JavaScriptを学習しなくても、CoffeeScriptで好きなことを何でも行うことができます。

しかし、私の経験から、JavaScriptからどれだけ逃げようとも、クライアントに関しては、本当に手を汚して純粋なJavaScriptを書く必要があることが時々あります。

ええ、あなたは正しいです。 JavaScriptシンタックスは簡単で、弱者でも学ぶことができますが、習得するには何年もかかります。

私見、CoffeeScriptを見ると、JavaScriptのすべての複雑な部分を完全にラップするには十分に成熟していません。したがって、JavaScriptを直接学習したり、直接操作したりするリスクはありません。

0
Saeed Neamati