私はいくつかのpythonも含む)phpのバックグラウンドから来ています。Web開発とモバイル開発の両方で異なる言語に取り組み始めたいと思います。また、ゲームを扱うリアルタイムアプリにも興味があります。
チタンや電話のギャップなどのツールを使用してアプリを移植し、ネイティブJavaコードに、またはモバイルで実行可能にする方法でコンパイルすることができます。 (Webビュー)既存のJS知識を使用してアプリを構築できるため、このパスが好きです。
私はscalaも調べています。私はいくつかのC#を実行しただけでなく、Javaを約5年前にいじりました。そして、私はscalaを使用してネイティブAndroidアプリ。ただし、他のモバイルOSでも機能するように作成できるnode/jsとは異なり、これはAndroidでのみ機能します。ある意味で、それほど気になりません。しかし、scalaは、JSがAndroidにコンパイルしたものよりもゲームのパフォーマンスがはるかに優れているように見えますが、私はどの程度かわかりません。
最後に、ソケットとRESTユーザーがアクセスできるAPIベースのWebアプリと、いくつかのモバイル開発に焦点を当てたいと思います。ゲームとインタラクティブアプリに移行したいと考えています。
問題は、Scalaのどの機能が、webまたはモバイルでリアルタイムアプリケーションを作成するためのノード/ js側よりも私に利益をもたらすでしょうか?私はリフトやWeb用のプレイなどのフレームワークの使用を検討していました。
ノードはまた、socket.ioを使用してリアルタイムを簡単にし、その多くはバックグラウンドで処理します。これが、ノードが優れた選択肢になると思う理由です。そのため、誰かがNodeの機能について何らかの洞察を与えてくれることを望んでいました。これは、Scalaよりもいくつかの利点があります。私は本当にこれを聞きたくありません。自分のやりたいことに役立つ機能について、もっと知りたいと思っていました。ノードが優れている理由はすでに理解しています。私はscalaについてほとんど何も知りません。または、私が達成したいことをどのように比較するか。
チタンや電話のギャップなどのツールを使用してアプリを移植し、ネイティブJavaコードに、またはモバイルで実行可能にする方法でコンパイルすることができます。 (Webビュー)既存のJS知識を使用してアプリを構築できるため、このパスが好きです。
ノードはサーバー側のテクノロジーです。アプリの言語にサーバー側の言語を決めさせるべきではありません。はい、フロントエンドとバックエンドを同じ言語にすることにはいくつかの「相乗効果」があります。しかし、それは特効薬ではなく、解決するよりも多くの頭痛を引き起こす可能性があります。実際、大多数のアプリケーション作成者は、明示的にこれを行わないことを選択しています。
そのため、誰かがNodeの機能について何らかの洞察を与えてくれることを望んでいました。これは、Scalaよりもいくつかの利点があります。
Node=を使用しない理由の1つは、JavaScriptに多くのいぼがあるためです(「JavaScript WTF」を検索してください。)。サーバーでJSが必要な場合は、JavaScriptのエキスパートになる準備をしてください(特にいぼの一部を取り除くのに役立つが、JSに簡単に変換できるCoffeeScriptも検討してください。JavaScriptもスクリプト言語であるため、Scalaよりも 効率が悪い になる傾向があります。
ScalaはJVMを使用しており、サーバー側のJVMストーリーはNodeよりはるかに成熟しています。しかし、Scalaを始めるのはおそらく難しいでしょう。Scalaでアプリを書くことについて何も知りませんが、それは非常に未熟だと想像します。
質問をどちらかと考えないでください。両方の言語で実装すると、より優れた開発者になります。知っている言語が多ければ多いほど、好きな言語でプログラムすることができます。
@BraveNewCurrencyが言ったことすべてに同意します。コメントを追加したいのですが。
個人的には、私はScalaをサーバーで、CoffeeScriptをクライアントで使用します。AFAIKPlayはそれらを開発(フォルダーの配置など)に統合できます。CoffeeScriptも同じです- 相互運用性 Javascriptとより良い構文とScalaは同じ成熟度とライブラリの可用性 =より良いsyntax(およびsemantics?)を使用したJavaの=。
一方、Java=のライブラリの成熟度と可用性が必要ない場合、Node.jsは開発に統一言語を提供します。 Scala(およびnpmなどと比較した場合、SBTやMavenなどのエコシステム)よりもJavascriptに自信があります。これはシステムにとって特効薬ではありませんが、開発者。それは本当に人に依存します。個人的にはサーバーに型を置くことを好みます。それらは、統計的に非常に頻繁に発生する、世界で最も統制のとれた、または最高のプログラマーではない可能性がある他の人によって書かれたコードを使用するのに役立ちます。
まとめると、クライアントにとっては、JavascriptまたはCoffeescriptになります。 Scalaそこにはあまり意味がありません、それは簡単なことではありません。
サーバーには、Node.jsの教祖が印象的なことを行っています。カンフーが十分に強い場合、迅速な(そして「ダーティ」な)場合により適しています。一方、Scalaは、ある時点でより多くの人々とコラボレーションしたい場合に特に、大きなもの(および「エンタープライズ」)へのより良い統合を可能にします。そのため、 (まだ特定されていない)目的と個人的な好みへの適合性。