私は経験豊富なJavaプログラマーであり、動的なページや描画などを必要とする複雑なWebアプリケーションを作成したいと考えています(例としてSOを例に挙げます)。このようなアプリケーションを作成するには、javascript/htmlを学ぶ必要がありますか?
別の言語を学びたくないということではありませんが(以前にこれを行ったことがあります)、JavaScript環境のテクノロジーは非常に速く変化するように見えるため、1つのフレームワークの学習を終了すると、すでに時代遅れです。私はいくつかのJava Web開発用フレームワーク(春、遊び)を確認しましたが、深くは確認していません。したがって、これらのフレームワーク(または他の可能なJavaフレームワーク私は知らない)html/javascriptを学習せずに使用されますか?私もいくつかのpython経験があります。したがって、もし私がpythonでアプリを実行できるならオプションもあります。
Webアプリケーションを作成するためにJavaScriptとHTMLを学ぶ必要はありません。
しかし、あなたはします
WebアプリケーションをほとんどJavaで作成したい場合は、 Google Web Toolkit をご覧ください。これは、JSに対して膨大な量のJavaを実行し、優れた要件を満たすことができます。 Webアプリに必要なコードのチャンク Django は、Pythonの同様のフレームワークです。
そして、もしあなたが本当にHTMLを書くことを避けたいなら、そこには膨大な量のテンプレートとそこにあなたが見たもの、あなたが得たものエディターがあります。
ただし、抽象化フレームワークやHMTLテンプレートの開始に関係なく、いつかプレゼンテーションに不満を感じることもあるでしょう。そして、あなたはあなたの手に十分なHTML/JSを手に入れ、あなたが望む1つの小さな小さなものを変更するでしょう。そしてもう一つ。そしてもう一つ。
そしてある日あなたは冷たい汗で目を覚ますでしょう。
そして、それがあなたが学ぶ方法です。ジオシティーズのようなポイントアンドクリックのウェブサイトメーカーの時代にさかのぼって、それが私たちの多くが学んだ方法です。しばらくすると、ウェブについて真面目な人であれば、故意かどうかに関係なく、ウェブの言語を学ぶことになります。
したがって、StackOverflowのようなサイトを作成するためにHTMLとJavaScriptを学ぶ必要はありません。しかし、実際にStackOverflowのようなサイトを作成しようとすると、それらを学ぶのを止めることはできません。
シナリオ「いくつかのWeb作業を行う必要がある」の考えられる解決策をいくつか考えてみましょう。
私たちはそのように素晴らしいので、私たちは#1を無視します。 2つの選択肢があります。どちらを選ぶか、どちらを選ぶか...
#2は魅力的です。それはあなたがあなたの快適ゾーンにとどまることができることを意味します、それは特にスラッシュなマシンといくつかのソファを追加した場合、非常に快適です。しかし、使用しているフレームワークに何が起こるかを考えてみましょう:
あなたは開発者なので、製品(特にライブラリ)が多くの見事な方法で壊れ、ソファをリッピングして汚いマシンを倒し、明るいマゼンタですべてをペイントするすべての可能な方法を考えるのは難しくありません。
これらのシナリオのいずれでも、回答の冒頭で説明したオプションを再考するために戻ってくる必要があります(今回のみ、#2のフレームワークを置き換えます)。4番目のオプションが追加されています。マイクロレベルで試して修正してください。 。言い換えると、Webスタックを浅い方法で学習し、その特定の問題の解決策をまとめてハックする必要があるだけです。
その価値はありますか?依存します。フレームワークが失敗することはないと信じているかもしれませんし、あなたは正しいかもしれません。そして、あなたは間違っているかもしれません。
ハイブリッドソリューションを提案します。最初に、Webスタックについて学びます。あなたはそれに多くの時間を費やす必要はありません、あなたはMySpaceページにキラキラを追加することができる通りから14歳のl33t h4x0rzである必要はありません、あなたはただ何がであるかについての基本的な知識を持っている必要があります続く。次に、それがあなたにとって最良のシナリオであるとわかったら、フレームワークを選択してください。
これで、快適ゾーンが少し大きくなりました。 TVやABBA:Greatest Hitsのアルバムも誇らしげに展示されているかもしれません。何かが壊れた場合、それを修正する方法がわかります。これでchoiceができました。そして、選択肢を持つことは、選択肢がないことよりも常に優れています。
あなたは絶対に積極的にする必要があります?
番号。
しかし、適度にモダンなWebアプリが必要な場合は、おそらく必要です。それを回避する方法はいくつかありますが、それらは実際に起こっていることを抽象化したものです。あなたがそれで大丈夫なら、それからそれのために行きます。そうでない場合は、言語を学ぶ必要があります。
大きくて複雑なWebアプリは、たとえhtmlとjavascriptをすでに習得している場合でも、単独で開発するのは非常に困難で面倒です。
私のアドバイスは、チームまたは少なくともフロントエンドの開発者とWebアプリを開発する可能性を探すことです。
このように、あなたはすでによく知っていることに集中し、専門家にフロントエンドを任せます。
フロントエンドの開発は、たとえば、フロントエンドがいくつかのオペレーティングシステムの多くの異なるブラウザーで動作する必要があるという事実のために、当初考えられているよりもはるかに困難です。
いつかHTML/CSS/Javascriptを学ばなければならない可能性が最も高いと言って合唱に参加します。
ただし、フロントエンドコードの記述を呼び出さないフレームワークを求めているようです。私はその感情に関係することができます。残念ながら、それを抽象化する成熟したテクノロジーはほとんどありません(多くの理由により)。
Wt とJava version JWt を見てください。あなたが探しているものかもしれません。
一言で言えば、そのフレームワークは、Webアプリケーションをウィジェット中心にすることを試みます。これにより、HTMLテンプレートを記述するのではなく、デスクトップアプリケーションのようにUIをコーディングできます。 Webソケットのようないくつかの新しいテクノロジーを使用し、漸進的な拡張を行い、一般に多くのフロントエンドを実行する必要がないようにします。
HTMLとJavaScriptを抽象化するWebアプリケーションフレームワークがありますが、正直なところ、治療法は病気よりも悪い場合がよくあります。 (例:Google Web Toolkit)。
とはいえ、自分に好意を示し、jQuery、CoffeeScript、その他のJavaScriptフレームワークを学んで、最も退屈な詳細のいくつかを省いてください。同様に、HamlやHamlPyなどを使用して、より優れたバージョンのHTMLで作業することを検討してください。
SpringやPlayのようなフレームワークは、アプリケーションロジックの処理に最適ですが、Webアプリケーションのフロントエンドを構築する必要性を抽象化していません。これは、デスクトップアプリケーションのフロントエンドを構築する必要があることと根本的に異なるわけではなく、単に異なる実行です。
これはあまりあなたを怖がらせるものではありません。開発プロセスはほとんど同じですが、デスクトップGUI要素ではなくHTMLとCSSでデータをドレスアップする必要がある点が異なります。午後にHTMLとCSSの両方の基本を学ぶことができ、インターフェースを好きなだけ複雑にしたり、まったく無駄を省いたりすることができます。
私のアドバイスは、構築しようとしているサイトに類似しているサイトにアクセスして、HTMLソースを表示することです。HTML設計の観点から、これらのサイトのフローを理解することができます。
はい、あらゆる種類の最新のWebアプリケーションを作成するには、少なくともHTMLの基本的な知識が必要であり、JavaScriptに精通している必要があります。 pythonまたはJavaのような言語のフレームワークを使用することは可能であり、それらを使用してサイトの機能の大部分を構築できますが、基本的なサイトでも必要ですこれは、ブラウザがコンテンツを表示するために実際に理解する唯一の理由です。JavaScriptを知らなくても、サイトを使いやすくすることができます。必要なときにいつでもページをリロードする必要があるためです。何かを更新するには、サイトをハッキングしてブラウザーの互換性の問題とCSSの欠点に対処するための非常に便利なツールを失うことにもなります。
あなたはウェブ開発でどれほどの変更が行われるかについて少し心配しています。JavaScriptは実装されてから実際には変更されていません。また、JavaScriptをより使いやすくするために知っている必要があるフレームワークJQueryは1つだけです。他の急速に変化するもののほとんどは本当にその月の味であり、本当に知られる必要はありません