2009-05-30 2 views
3

ウェブとアプリケーションの両方のコーディングを行うために、両方に流暢になることを目指しています。 1つは他を学ぶことを促進するか。最初にJavaまたはJavaScriptを習得するには?

+5

これらはあまりゆるやかに関連しているにすぎません。名前があなたを騙さないようにしてください。 – Copas

+2

JavaとJavaScriptの名前は共通しています。それ以外に、彼らはまったく異なっています。 – Gumbo

+1

良い点@Copasと@Gumboですが、0のプログラミング知識で始める場合は_some_where ;-)を開始する必要があります。 –

答えて

22

Javascriptは、プロトタイプベースのスクリプト言語で、通常はブラウザでホストされる弱く動的な型付けです。

Javaは、オブジェクト指向プログラミング言語であり、Java仮想マシン上で実行される強力で静的な型付けを備えています。

それはどういう意味ですか? Greg Hewgill's answerから

質問What’s the difference between JavaScript and Java?へ:

JavaとJavascriptが 車やカーペットのように似ていますが似ています。

他の人が既に指摘しているように、JavaとJavascriptの両方は、表面的にはCの影響を受ける同様の構文を持っていますが、ほとんどの類似点はそこで終わります。フードの下では、2つの言語は完全に異なる獣です。

2つの間で、Javascriptの方がJavaよりもやや楽になる可能性があります。これは実行できることの方がより容認されるからです。しかし、これは、データ型の概念を見落とすなど、悪い習慣を拾う手段として役立つかもしれないということも意味します。

一日の終わりに、最初に達成したいものに下がります。ブラウザーでタスクを実行してWebページ(JavaScript)を操作するか、クライアントとサーバー(Java)でアプリケーションとして実行するプログラムを作成する。

+0

ええ、私は名前の偶然の一致について疑問に思いました。私は、どのプロジェクトに最も重点を置くかをプロジェクトに指示させてくれると思う。必要なインフラストラクチャのニーズ(jvm vs web)については正しいです。 ありがとうございました –

+1

名前は偶然ではありません。それはマーケティングの決定でした。そして、JavaScriptとJavaは、これまでよりも似ています。 Cの構文は、Brendan Eichが始めたものではありませんでした。彼は、 "Javaのような"構文を持つことを望んだ結果、Javaのような言語にしました。私は、JavaScript(C言語の構文を持つ関数型言語)で得られたことは本当にクールだと思います。 – Nosredna

1

これは、最初に作りたいもの(ウェブサイトやプログラム)によって異なります。あなたはJavaScriptとHTMLだけで遠くに行くことができないようにウェブサイトを作ろうと思っているなら(JQueryを考えてみてください)。 ASP.NETも学びたいと思うかもしれません.C#(Javaと非常によく似ています)を使用して、サーバー上で実行可能なコードとユーザーに表示するHTML/JavaScriptの豊富なWebサイトを作成できます。

プログラムをJavaまたはC#に見せたい場合は、

私はHTML - > JavaScript - > BASIC - > C++ - > C# - > ASP.NETを学びました。私はウェブサイトで始まり、次にプログラミングを学び、次にC#を使ってプログラミング言語としてウェブサイトを作った。

+1

彼は両方を学ぶことを意味すると言っていますが、ちょうど "どちらの_最初に_"のヒントを望んでいます... –

+0

@Alex:私は彼の本当の質問を反映するために私の答えを更新しました。ありがとう。 – Kredns

+0

@ルーカス:良い点ですが、最近ではJavascript(とHTMLとCSS)を使って "あなたは遠くには行きません"と反対しています。 –

5

私は人々が両方のアプローチを試しているのを見てきました。最初はもっと剛直でよりよく定義された言語から始まります(ここではJava)、より緩やかで流動的なもの(ここではJavascriptになります)から始めます。 「左脳型」パーソナリティタイプはより厳密な定義(Javaで始まる)を好み、「創造的」/「右脳」は表現の自由度(JSで始まる)を優先します。だからあなたの性格ですか?

編集:追加するには:実際に小さくても便利な/クールな結果を達成することによって動機づけられた「中心脳」の性格をしているのかもしれません。この場合、「受け入れられた知恵」に対して、最近、Javascript(およびHTMLとCSS)を使用してウェブ上で達成できることがたくさんあります。先週のGoogle I/Oで、Vic Gundotraは新しいHTML5のおもちゃでこれらのツールだけで何ができるのかを示しました。これはウェブ上で検索して検索しますが、例えばsummaryにはさらに便利なリンクがあります。

これは間違いなくではありません。 Javaはまた、あなたが達成することができる結果に関しては報われないと言っています - ちょっと、Googleの分野にとどまり、Androidプログラミングの鍵です。あなたがGWTと一緒に行くならば、Javascriptを学ぶのを避けて(;-)、それはGoogle App Engine、etc、などに配備できるようになりました。しかし、ほとんどの人は、おそらくdojojqueryなどの強力なツールキットと組み合わせて、Javascriptを使ってWeb上でより速く小さな結果(ウィジェット、マッシュアップ、オープンソーシャルアプリなど)を達成することができます。

server-side JSについて話を始めることもできますが、それはかなりcontroversialという件名です。この回答はすでにかなり長いので、私は;-)はしません。

+2

+1良い答え、素晴らしいリンク。 – Kredns

+0

うわー、私はSSJSが存在することを知らなかった:-O – Kredns

3

基本的な構文の一部を超えて、それらはまったく似ていません。

あなたが最も興味深いものを最初に見つけてください。

0

これらの2つは非常に異なる技術です。それらは、Cに似た構文を持っていますが、共通点があります。デスクトップ/エンタープライズアプリケーションが必要な場合は、WebサイトやJavaを作成する場合はJavaScriptを使用します。

0

まず何をしたいですか?第1言語となる言語はいくつでもあり、あなたがしたいことに本当に依存しています。

9

いくつかの表面的な構文と名前は別として、2つは言語としてはほとんど共通していません。つまり、JavaScriptを使わずに便利な(あまり「現代的」ではない)Webアプリケーションを書くことはできますが、Javaのようなサーバー側の言語を使用することはできません。それはデータベースアクセスを含んでいるので、全体的にもっと複雑なものでもあります。

また、Server-side JavaScriptがあります.1つの言語ですべてを行うことができますが、それはあまり一般的ではありません。

+2

そして今、7年後、Node.jsは活況を呈しています。 – Sumit

+1

JS、ウェブとクライアントとサーバーを引き継ぐ – Chipe

1

Javaを最初に使用すると、後で学習したい第2言語であればどんなプログラミング習慣にも役立ちます。また、静的型システムから動的型システムへの遷移を逆にするよりも、それほどトラウマチックではありません。

0

私はstart with Javaをお勧めします。それはあなたにプログラミングの良い基礎を与えるでしょう。 Javaの知識があれば、JavaScript、C#などの言語をより簡単に学ぶことができます。私はあなたがjavascriptで始めるなら、それが事実であるとは思わない。

3

IMO、まずはJavaScriptを学んでください。あなたは、あなたが必要とするプロジェクト/タスクに出くわすことが保証されています。間違いなくjquery、JavaScriptのための素晴らしいライブラリを見てください。

アプリケーション層の面では、今学んでいるのであれば、Javaは最初に習得するのがOKなので、C#もそうです。個人的には、オープンソースのスタック、Perl、Python、PHPが好きです。そこにはもっと多くのリソースがあり、それらを学ぶのに役立ちます。 PHPには最も多くのリソースがありますが、Pythonが良い選択です。

0

JavaScriptを学ぶ前に、いくつかの言語を学習することをおすすめします。クラスベースのオブジェクト指向のためのJava。関数型プログラミングのためのLISPなど。 JavaScriptにはいくつかの異なるパラダイムがあります。すでに慣れている方が簡単です。

JavaScriptはPythonやJavaより優れた機能プログラミングですが、実際のファンクションプログラミング言語ほど簡単ではありません。 JavaScriptには、さまざまなプロトタイプベースのオブジェクト指向があり、うまくいきます。 Javaに似た方法でオブジェクト指向プログラミングを強制することができますが、関数 "クラス"を呼び出さずに "プロトタイプ"と呼ぶほうがよいでしょう。基底クラスから継承するサブクラスをモデル化することは難しいです。プロトタイプから継承するオブジェクトの概念を受け入れるほうがはるかに簡単です。

JavaScriptは、基本的な概念にすでに精通している方にとっては、はるかに学習して使いやすくなります。たとえば、JavaのHashMapsやPythonの同等の辞書やLISPのプロパティリストについて知っておくべきです。 JavaScriptでは、すべてのオブジェクトが非常に効率的なHashMapなので、デザインでその事実を利用できる場合は、それを使用してください。

関連する問題