JavaはいつWeb開発に適していますか?[閉まっている]


35

JavaはいつWeb開発に適していますか?

「Javaのみを知っている開発チームがある場合」と言わないでください。


5
次のように尋ねることができますか、どの機能がJavaをWeb開発言語として使用しますか
アビマランクガタサン

1
Javaを使用することのわずかな欠点は、市場に事実上の支配的なフレームワークがないことです。まだJavaベースのフレームワークが山の頂点に達していない(Strutsが以前に持っていたように)。個人的には、SpringアプリやGrailsで何か他のことをしている場合(いつでもJavaを呼び出すことができるため)、Spring MVCに傾倒しています。
Martijn Verburg

この質問から突然25点を獲得しました!
グルシャン

既存のオープンソースソフトウェアを考慮していますか?
ジョナサン・

2
「Strutsが当時のように」:今日、Strutsを使用することの何が問題になっていますか(もはや流行ではありません)。
ジョルジオ

回答:


35

多くの利用可能なフレームワーク、プラットフォームの成熟度などを考えると、私は「ほぼ常に」と言いたくなります。したがって、Javaを使用すべきではないいくつかの理由があります。

  • 純粋なMSショップとして、おそらく.netの方法でそれを行うことを好むでしょう
  • 最も安いウェブホスティング業者が必要な場合は、おそらくPHPのみを選択できます
  • できるだけ早くそれを行いたい場合は、Ruby on Rails、Grails、またはDjangoがおそらくあなたのニーズにより適しています。
  • 開発チームがXYZのみを知っている場合(XYZ!= Javaの場合)、XYZを使用した方が良い

7
したがって、MSショップではなく、ホスティングにお金を費やす意欲があり、Javaを使用した開発に十分な時間を持ち、Java開発者がいる場合は、Javaを使用します。大丈夫ですか?
グルシャン

グルシャン:はい、あなたはそれをそのままにすることができます
-user281377

3
それは肥大化しており、エンタープライズであり、Javaである(JVMにScalaまたは他の何かを使用している場合は無視できます)など、他にも多くの理由があります。
レイノス

1
@Raynosだから、代わりに何をお勧めしますか?

2
@ThorbjørnRavnAndersenは、要件が何であるかによって異なります。要件が一般的(非ニッチ)である場合、開発者とサーバーにとって最も便利なプラットフォームを使用してください。
レイノス

19

Java 中小規模のWebサイトで使用されています。重要な点は、Java Webサイトの無料WebホスティングがPHPなどよりもはるかに少ないことです。つまり、独自のWebサーバーをホストするのに十分なリソースがない限り、おそらくJavaを選択しないことです。

Java EE 6、特にWebプロファイルには、多くのコーディングをしなくても非常に強力なWebアプリケーションを作成できる多くの標準テクノロジーが含まれていることに注意してください。残念ながら、まだ主流ではありません。

Google Application Engineによってこれがやや変更されていることに注意してください。これにより、低から中程度のトラフィックのサイトに無料で標準のJava Webアプリケーションをクラウドにデプロイできます(いくつかの制限があります)。


すべての場合において、私は無料のウェブホスティングで自分のウェブサイトをホストしません。しかし、質問は、有料のJava Webホスティングで問題がありますか?たとえば非常に高価ですか?
ゴマ

1
@saeed、そうではありません。ほとんどの人は、最も安いオプションを選択し、それに応じてコーディングします。

たとえば、javeは他のものよりもはるかに高価ですか?Javaの共有ホスティングはありますか?
ゴマ

@Saeed、共有LAMPインスタンスを作成できるほど多くのJVMを単一のLinux og Windowsボックスでグループ化できない技術的理由がいくつかあります。Googleは別のJVMを使用しているため、無料で提供できます。

@Thorbjörn:Googleがそれをどのように行っているかについてのリンクはありますか?Jettyを使用していると聞いたことがありますが、その解決策についてはあまり知りません。
ジョナス

12

プラットフォームがUNIX / Linuxであり、オブジェクト/リレーショナルマッピング、セキュリティ、Webサービスの複雑なオーケストレーションなどの豊富なツールセットが必要な場合。
(私たちは単純なWebサイトについて話しているのではありませんか?)


1
このようなものはスクリプト言語からも入手できます-PythonとSQLAlchemyを見てください。RailsでさえORM(ActiveRecord)を使用しており、優れたセキュリティを備えています。
ブライアンD.

3
実際、Hibernate、Spring Framework、BPELフレームワークほど強力ではないと思います。
ソランティス

1
UNIX / Windows以外のJavaで何が問題になっていますか。
トムホーティン-タックライン

2
なし。しかし、Windowsには.NETがあります。
ソランティス

2
-1代替手段のいずれかが適切なツールを利用できないように聞こえます。
レイノス

9

さらに別のJavaチームが私を怒らせるたびに、私はこのような質問を調べることで蒸気を吹き飛ばします。繰り返します。私はクライアント側の開発者であり、5年近くになります。私は、1回限りのほとんどがコンテンツのマイクロサイトから、シアーズのような大規模なサイトまで、本当に深いUIの専門知識が必要なより洗練されたアプリタイプのサイトまで、さまざまなサイトに取り組んできました。私は、Rails、PHP、.net Webフォーム(ew)、. net MVC(はるかに優れています)、Web開発用のJavaソリューションの花束アレンジメントに対処しました。また、Pythonを少し書いて、Djangoを掘り始めています。

Javaチームでの私の経験は、全体的にひどいものです。ツールは常にPITAです。開発者は、自分が何か間違ったことをしたとは決して信じたくないので、あなたが最後に問題を除外した後、自分の芝生を再調査することは、歯を引っ張るようなものです。私の経験上、Javaチームに対処する最初の犠牲者は、開発時間が電子メールの時間に変換されることであり、問​​題が間違いなく彼らの側にある理由について複数の長い説明を書くことです。HTMLは、実際に何らかの制御が必要な場合を除き、通常は問題ではありません。その後、実際にはいくつかの上位レベルのdivを移動したいため、すべてが最後に地獄に行く可能性があります。

私が嫌いな言語についてはありますが、本当の問題は文化と受け入れが広まっているという事実であると思います、あなたは真ん中に平凡のトンを持っています。私が疑う文化は、Javaの販売方法に起因しています。一度書くだけで、どこにでも展開できます。翻訳:「1つだけ学ぶ必要があります!」魅力的なことに気づいた人々は、基本的に、Web開発に関して実際に最小限の技術でホーニングを行い、すべての爪に1つの巨大なハンマーのようにJavaを振る舞います。

したがって、Javaや他の言語を知っているが、実際にはJavaを好む開発者がいる場合は、適切な解決策のように思えたら先に進みましょう。しかし、Javaを知っているJava開発者がいて、他のすべてが履歴書で実際に弾丸にするための基準をほとんど満たしていない場合は、HTML端にさまざまな半複雑なページを持つシンプルなアプリを作成して、これを試してもらいます簡単なテスト。いくつかのHTMLを壊します。何が悪いのかを理解させてください。彼らが解決し始める差し迫った問題が自分自身から責任をそらすことであるなら、彼らをウェブ開発から遠ざけてください!@#$。Web開発は学際的であり、成功するためにはこの分野への積極的な関心が必要です。1つの言語の知識を維持したいだけで、問題を解決することよりも問題に恐ろしい人には適していません。

Java自体が無能の根源であると断言するのではなく、Springが良いと聞いたことがあります。有能なJavaチームがそこにいると確信しています。私はまだ1つに出会っていないし、偶然だとは思わない。Sunはそれと多くの関係があると思います。また、IT部門のような、またはIT部門の下でWebチームを運営することは、それと多くの関係があると思います。


1
あなたが説明したのと同じ問題を抱えていますが、それがプログラミング言語に依存する可能性があるとは考えませんでした。たとえば、PHPでプログラミングする人は、よりオープンで柔軟です。
ВиталийОлегович

PHPは開発者については100%であり、PHPを取り巻く文化についてはそれほどではありません。コアの一貫性の欠如は好きではありませんが、Javaチームを信用しない方法で、Web開発のための中級PHPチームの仕事を信頼します。経験豊富なPHP開発者がWebや学位/資格を超えた経験のために採用される可能性が高いことを除いて、何も使用する可能性が低いことが役立ちます。Javaの問題は、言語固有の硬直性に一部起因する可能性がありますが、Java開発者のトレーニング方法、Javaソリューションの採用方法、およびJava開発者の採用方法の性質に関するものだと正直に思います。
エリックReppen

1
@Erik Reppen:あなたはあなたの経験を一般化しすぎていると思います:Javaチームは他の言語で働くチームより悪いとは思いませんし、少なくとも平均より悪くはないと思います。私は、Javaを大いに活用している2つの非常に良い店を知っています。1つ目は、JavaおよびRubyでプロジェクトを実行します(それぞれ約50%)。2番目は主にJavaで動作しますが、ScalaおよびCommon Lispで個別のプロジェクトを実行しました。
ジョルジオ

@Giorgio私はこれを見逃しましたが、.NET、Rails、Java、およびPHPを介してバックエンドを処理する他の人々と協力しました。私は他の言語での1回限りの経験を数えておらず、くだらない開発者は確かにJavaに固有ではありません。また、私が言ったように、非常に有能なJavaチームが存在することは100%確信しています。誰かがそれを吸う必要はありませんが、IMO、私は一般化しすぎではありません。中間レベルでJava開発者に問題があります。私の経験では文化的な現象です。問題のある開発者を知らない限り、Javaショップでの仕事をやめたほど厄介なものです。
エリックReppen

5

Javaは小さなWebサイトに最適です。たとえば、TomcatなどのJava Webサーバーを使用すると、JSPページを非常に迅速に動作させることができます。

私の経験では、Javaは大規模なWebサイトでより一般的ですが、複雑なサーバー側の処理の必要性が高まっています。この場合、JavaServer Faces(JSF)などのより洗練されたJavaフレームワークが使用されます。

Javaの完全なインストールは、歴史的に多くの安価なWebホスティングセットアップでは利用できなかったため、これらの環境でのPHPなどの他の言語の普及を説明できることに注意することが重要です。


これは、Java Webアプリケーションのホスティングが高すぎることを意味していますか?それとも、たとえばPHPほど安くないですか?Javaの良いwehホストリンクを教えてもらえるので、価格を確認できますか?私は検索しましたが、どれが標準価格を持っているのか分かりませんので、それについての全体像をつかむことができます。
ゴマ

1
Java Webアプリケーションのホスティングは高価ではなく、Javaアプリケーションを実行できるホスティングプロバイダーが必要なだけです。マシンへのログインアカウントを取得するLinuxホスティング環境は問題ありません。JavaホスティングにはAmazon Web ServicesでUbuntuを個人的に使用しています。
ミケラ

2

Web開発でJavaを使用する主な理由は次のとおりです。

  • クライアントはそれを要求します。良くも悪くも、一部のクライアントには「承認済みの技術リスト」があり、そのリストにないものを提案する場合、その理由と、リストにあるものを使用できなかった理由を本当によく説明できます。
  • Windowsで開発し、Unixで展開します。ほとんどの開発マシンはWindowsであり、一部はMacであり、ごく一部のLinuxは通常のクライアントマシンで予想されるとおりです。ただし、サーバー上では、Windowsサーバーであるのと同じように、何らかの形式のUnixを見る可能性があります。Javaはおそらく、どこにでも一度展開すれば最も近い(おそらく完璧ではありませんが、いくつかの代替手段よりも優れています)。
  • 管理の選択。率直に言って、別の言語よりもJavaを選択することは、純粋にその言語のメリットに基づいているよりも、プログラマを見つけてプロジェクトを去るチームメンバーを置き換えることができることと関係があります。

#2について:IDEを正しく構成してください。Eclipseには、Linuxサーバーに大混乱をもたらす可能性のあるWindowishファイルエンコーディングをデフォルトにするというこの愚かな考えがあります。
エルデルシェル

実際、特定のファイルがどこに存在するか、またオペレーティングシステムとやり取りする必要がある場合についての仮定を参照していました。
ベリンロリチュ

「Cはおそらくどこにでも一度展開すれば書き込みに最も近い」私はあなたのためにそれを修正しました。
レイノス

@Raynos、それだけが真実だった場合。残念ながら、すべてのプラットフォームに同じ標準ライブラリがない限り、それは当てはまりません。コアC言語は非常に移植性が高いため、それを提供します。ただし、OS固有のもの(スレッドの作成、ソケットのオープン、UI要素の作成など)のAPIには、単純な再コンパイルでは移植できないものがあります。Javaでは、再コンパイルは必要ありません。新しいシステムAPIを使用するためにコードを変更する必要はほとんどありません。
ベリンロリチュ

@BerinLoritschということは、40年後、クロスプラットフォームで簡単に再コンパイルするだけで動作するOS固有のものの汎用APIはないということですか?しかし、80年代にはそれが真実であると想像できます。
レイノス

2

技術的に言えば:

  • ホットスポットオプティマイザーに適したアーキテクチャを定義できる場合。
  • 大規模なオブジェクト指向オーバーヘッドの必要性を予測する場合、Javaが課します。

Webアプリケーションを開始する場合、Ruby on Railsを使用して、RoRがパフォーマンススケーリングの制限に達したときにホットスポットを交換できるように設計します。

JavaにはCOBOLの明確な匂いがあり、「ローエンドのコーダーがJavaを使用している」ことに固執しており、Oracleの大企業は評判を助けていません。選択肢がある場合は、トップ開発者を引き付ける言語を選択してください。


「トップデベロッパーを引き付ける言語を選択してください。」例?
エルデルシェル

1
@Ubersoldat:Go、Ruby、Clojure、Haskell、Pythonはすべてそれを行う言語です。
ポールネイサン

Pythonは、Javaのふりをする多くのことで実際に成功するため、素晴らしいです。また、他の言語で問題を解決する必要があるときに、他の言語とうまく機能させることは難しくありません。私はRubyについては知りませんが、Railsの開発者は私の経験上で何かがらくたのようなものです。それはJQuery効果です。自分のやっていることを知っている人は、右手で速くて効果的だから好きです。自分が何をしているのかわからない人は、あまり知らなくてもいいので好きです。
エリックReppen

@Erik Reppen:一方、言語としてのRubyはPythonよりも優れた一貫性のあるデザインです。これらの言語比較はしばしば好みの問題であり、より慣れ親しんだ言語を好む傾向があると私は本当に思います。
ジョルジオ

0

簡単です。バックエンドのパフォーマンスが大きな懸念事項である場合はJavaを使用します。コーディング時のオーバーヘッドは大きくなりますが、コードは文字通り1/200〜1/500の時間で実行されます。PHP、Ruby、およびその他の動的に型付けされた言語は、常にjavaまたは.netサーバーよりもずっと遅くなります。

Web用のほとんどのソリューションではこれは必要ありません。Twitterは、例えば人気がピークに達するまでRailsを放棄しませんでした。


-1

唯一の理由ではありませんが、洗練されたアプリケーションのようなフロントエンドを備えたWebサイトを構築する人気が高まっている一方で、サーバー上で「何か」を実行するロジックがあります-Javaが少なくとも他と同等である理由を説明する必要はありませんサーバー側のオプション。しかし、クライアント側で、javascriptがすぐにコードメンテナンスの悪夢に変わり、GWTを使用してそのようなものをJavaでコーディングできるようにすることで、サーバーで両方の長所を活用できます。面倒な作業とクライアントのプロセッサを使用して「経験」を与えます。jQueryのようなものと統合することを学び、あなたが望むすべての目を楽しませることができます。

代替案の専門家ではありませんが、他の誰かが同じ種類の柔軟性と幅を備えたものを提案できるなら、喜んでそれについて聞いてください。


jQueryの +1 :)
アベル

2
「javascriptがコードメンテナンスの悪夢に変わる」ための-1。これは、Java開発者がJavaScriptをトレーニングまたは学習せずにJavaScriptを記述できるようにする副作用にすぎません。GWTの主な欠点は、抽象化が漏れやすいことです。モバイルデバイスでうまく機能するようになることは幸運です。
Raynos

Javaの剛性であるIMOの問題は、コードがそもそも強制的に編成されている理由を理解していない多くの開発者になってしまうことです。すべてがOOPのように見えなければならないとき、避けられない結果は実際には何もないということです。
エリックReppen

-1

Javaを選択する主な理由は、分散トランザクションを使用する必要がある場合です。これは多くの企業にとって大きな懸念事項です。ただし、Web開発には引き続きお気に入りのスクリプト言語を使用でき、速度/分散トランザクションが必要な場合にのみJavaに作業を委任できます。


-1

アプリケーションが非常に複雑になり、多くの人々がそれを開発し、多くの複雑なモジュール、複雑なビジネスロジックを持ち、他の多くのエンタープライズアプリケーションと通信しなければならないときになると思います。

とにかく、Grailsで開発することもできます。Grailsは多くの優れた機能を提供し、開発を非常に容易にし、非常に高速に成熟しています。


-1

Javaは大丈夫ですが、パフォーマンスがそれほど重要でない場合は、他の言語で少ない労力で同じ結果を得ることができます。


2
「パフォーマンスはそれほど重要ではない」場合、JavaではなくCとアセンブリで記述する必要があります。
レイノス

ベンチマークvs経験、Javaサイトは、クライアント側の開発者としての私の経験において最悪のパフォーマーでした。それは、言語の問題よりも、才能レベルの中央値の問題かもしれません。
エリックReppen

2
@ErikReppen:間違いなく才能のあることです。サーバーのJava速度は、C / C ++に次いで2番目です。PHPまたはRailsは比較できません。しかし、Javaのライブラリといくつかのツールを使用すると、無駄に複雑なことを行うと、その速度をすべて失うのが簡単になります。
ザンリンクス

-1

Javaは静的に型付けされた言語であり、MSDNサブスクリプションがない場合、Web開発に使用される他の静的に型付けされた言語、つまりC#およびVB.netよりも安価です。静的に型付けされた言語は、中規模から大規模のプロジェクト、複雑なドメインルール、および多くのバックエンドコードに適しています。クラスをより適切に整理でき、IDEがコード内のエラーを見つけるのに役立ちます。

PHP、Python、Rubyなどの動的に型付けされた言語を使用すると、開発ははるかに高速になりますが、コードのテストをさらに改善する必要があります。時間とお金があまりなく、要件が非常に速く変化し、非常に複雑な計算を行う必要がない場合は、動的言語の方がはるかに優れています。


-2

セキュリティ

大企業が他のソリューションよりもJavaを選択する主な理由は、はるかに安全であると考えられているためです。

これは主に、そのような大企業(現在のオラクル)によってサポートされているためです。

Javaは非常に高いレベルのセキュリティと優れたサポートと分析を提供することを考慮に入れる必要があります(ただし、価格はかかります)。


7
ええと...そして、セキュリティは言語自体から魔法のように来ますか?
-Mchl

1
OracleがJavaサーブレットコンテナの唯一のプロバイダではないことをご存知ですか?
-Mchl

6
聖戦!ファイトファイト!
アベル

2
@Mchlその一部は、言語またはVMに由来します。Javaアプリサーバーを狙ったバッファオーバーランハッキングを見たことがありますか?努力するだけの価値はありません。そうは言っても、Javaは「業界」によってそれよりも安全であると考えられており、セキュリティの誤った感覚が激しく噛み付く可能性があります。
-biziclop

1
ここでの私のポイントは、言語としてのJavaとJavaランタイム環境を区別する必要があるということです。Java言語を他のどの言語よりも安全性を高めるものはありません。一方、JVMは(特に)Javaバイトコードの実行を「サンドボックス」するように設計されていますが、セキュリティは特定の実装に依存します。しかし、誤った安心感についての良い点。
-Mchl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.