Javascriptを知らずにCoffeescriptを使用することはどれほど危険ですか?[閉まっている]


15

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

JavascriptからCoffeescriptのWeb開発を知ることはどのくらい必要ですか?Javascriptを理解する必要がある厄介な問題にぶつかりそうですか?CoffeescriptのJavascript APIを喜んで使用できますか?

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

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


CoffeeScriptは単純にJavaScriptにコンパイルされることに注意してください。CSはJavaScriptのニュアンスの管理を容易にしますが、それらを再現しません。まだ同じ機能と癖があります。たとえばclass、CS のキーワードは魔法のようなことはしません。JavaScriptのネイティブプロトタイプ継承メカニズムを使用するだけです。この理由から、少なくともいくつかのJavaScriptの補助的な知識をより曖昧な「機能」にすることをお勧めします。
ミシェルティリー

2
CSはすべてを簡単にする魔法の弾丸ではなく、異なる構文を持つJSです。JSとCSのどちらを記述するかはスタイル設定です。
Raynos

回答:


12

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

ブラウザーの内部で何が起こっているのか、CoffeeScriptコンパイラーが何を転写するのかを理解する必要があります(ブラウザー環境でCoffeeScriptを使用することを想定している場合)。これは、特にCoffeeScriptがかなり新しいことを考慮して、デバッグする必要があるものでもあることを意味します。転写メカニズムにいくつかの大雑把なエッジとバグがまだある可能性があります。また、デバッグ用に特注のデバッグツールを使用しない場合は、生成されたJavaScriptコードをジャンプして、FirebugまたはChrome Dev Toolsまたは選択したJSコンソールを使用してデバッグする必要があります。場合によっては、JSエラーがソースCoffeeScriptステートメントに直接関係する方法を確認できます。他では、転写は重要なことなので、

このように考えてください。低レベルの開発を行うことなく、JavaとC#でソフトウェアを非常にうまく開発できます。しかし、手掛かりがなく、バックグラウンドでこれらの言語のランタイムがあなたのために何をする必要があるかについて知識のある推測をすることができない場合、何が起こっているのか、なぜパフォーマンスのボトルネックとメモリの問題にぶつかるのかを理解するのは非常に悪い時間になります彼らは単に奇跡を引き出せないため、当て推量のどの部分を台無しにするかもしれません。

さらに、JavaScriptを学習すれば、元々の外観よりも信じられないほど難しいことを実感できます。CoffeeScriptの簡潔で簡潔な構文はさらに評価されます:)


1
または、CoffeeScriptがJavaScriptではないことに悩まされるでしょう;)。ES5は素敵な言語です。
レイノス

@Raynos:豚の口紅、まだ豚。ヤギ、まだヤギなどのtuxido ... :) ECMAScriptは実際に知ると実際に非常に興味深い言語であることに同意しますが、非常に多くの矛盾と落とし穴があり、両方に負担をかけています新しい学習者、さらには上級プログラマ向けです。それでも、それは私たちの最新のウェブの共通語であり、時間の経過とともに改善および成熟しています。CoffeeScriptのアイデアはECMAScriptのいらいらするものを隠しているので気に入っています。Javaのライブラリ(またはその上にある言語)を使用することで耐えられるようになります。
ヘイレム

2
まあ、あなたはちょうど良い部品と行くためにあなたの良いを読む必要があります。落とし穴を避けるのはそれほど難しくありません。
レイノス

@Raynos:それにもかかわらず、残念ながら、上級のJS開発者を見つけるのに苦労しています。本当に良いものを見つけるのは非常に難しいです。
ヘイレム

ああ、JSコミュニティは平凡な開発者でいっぱいです。どこにあるのかわからない。私は、JS chat.SOルームから少数の優秀な開発者しか知りません。確かに、優れたJS開発者はいないという事実から、JSは難しいに違いありません。誰もそれをきちんと学ぶことを気にしません。
Raynos

4

あなたが尋ねる:

Javascriptを理解する必要がある厄介な問題にぶつかりそうですか?

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

「合理的な経験を積んだプログラマー」が新しい言語を習得したとしても、それほど時間はかかりません。JavaScriptはかなり単純な言語です。それについて難しいことは、それが実行されている環境に由来します。つまり、物事を行う方法が異なるさまざまなアイデアを持ついくつかの異なるWebブラウザです。

Webで見つかる「ハウツー」情報の多くはJavaScriptを念頭に置いて書かれているので、JavaScriptの読み方とそれを同等のCoffeeScriptに変換する方法を学べば、おそらく楽になるでしょう。

正直なところ、意図的に無知のままにしない限り、CoffeeScriptでの作業の副作用としてJavaScriptを学習することになるでしょう。すでに始めてください。


4

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

CoffeeScriptは基本的にJavaScriptの優れた部分を別のパッケージにラップします。「CoffeeScriptは、JavaScriptの基礎となる美しいオブジェクトモデルの最小限の構文を公開する言語を想像するための単純な思考実験です。」 JavaScript自体がクラスベースのオブジェクト指向言語ではないことを理解するのに十分です。クラスはまったくありません。代わりに、「プロトタイプ」を使用しているため、他のオブジェクト指向言語との違いが生じます。 Jeremy AshkenasはJavaScriptシンタックスのいくつかの悪い部分をクリーンアップし、いくつかの機能強化を追加し、それをもう少しPython風に仕上げました。

JavaScriptには、注意すべきいくつかの有名な「落とし穴」があります。そうでなければ、それは素晴らしい言語であり、今日非常に一般的に使用されています。とりわけ、AJAXやjQueryを使用することはできません。

CoffeeScriptで頑張ってください!


良い部品を購入します。安いスケートをしないでください!
Raynos

@Raynos-やりました。私は違います!:Dしかし、不適切な検索候補を削除しました。それを指摘してくれてありがとう!
ジョンTOBLER

3

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

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


3
私は何年もJavaScriptを学んでいますが、それでも本当にJavaScriptを知っているとは言いません。時々、私はそれについて私を驚かせることを発見します。「Hello World」の実行方法を学ぶのは簡単かもしれませんが、暗黙の型変換とクロージャーの動作を予測することはそうではありません。
ザック

@Zach JavaScript Enlightenmentという本に興味があるかもしれません。あるレビューはこう読みます。「実際、足りないものは本当に見つかりませんでした。なぜJSLintが何かについて不満を言っているのか疑問に思ったなら、根本的な原因はこの本のどこかで説明されるでしょう。」
ミシェルティリー

1
@Zachクロージャーはそれほど難しくありません。型変換は苦痛です。JSの大きな問題は、IEの古いバージョンが何をしているのかを知ることです。
レイノス

@ザック:私はすべてのJavascriptを知らないことを知っています。私も近くにいません。しかし、私は基本といくつかの中間的なものが非常に簡単に学べることを知っています。
動的

0

場合によります。

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

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

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

私見、私がCoffeeScriptを見るように、それはすべてのJavaScriptの複雑さを完全にラップするのに十分に成熟していません。そのため、JavaScriptを直接学習したり、直接作業したりするリスクはありません。


CoffeeScriptは非常に薄い抽象化です。coffeescriptを直接学ぶことはできますが、コンパイルされたjsのデバッグは苦痛になります。「手を汚して純粋なjavascriptを書く」。JavaScriptは汚れていません。
レイノス

1
@ Rayons、JavaScriptが汚れているという意味ではありませんでした。:)。これは一種の表現であり、より深い下層に到達する必要があることを意味します。
サイードネアマティ

それは、「ゲームプログラミングをやって、手を汚してc ++を書くのが一番」とか、「AIをして、手を汚してLISPを書くのが一番」と言っているようなものです。ブラウザにある唯一のより深い下層は、NaCl
Raynos

0

coffeescriptのドキュメントでは、同等のjavascriptに関してcoffescriptを定義しています。JavaScriptを理解していない場合、coffeescriptも理解できません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.