質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4149閲覧

JavaとPHPの好きなところ、嫌いなところ

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2014/12/31 11:39

PHP、Javaでの開発経験をお持ちの方(できれば両方)で、
それぞれの好きなところと嫌いなところがあれば教えて下さい!

ちなみに私の場合、
Java
【すきなところ】
・宣言とかスコープとかしっかりしている
・エラーおきたら、何かしらの例外を吐く
・サイトだけでなく、Androidとかにも使える
【きらいなところ】
・いちいちめんどい(struts時代はビルドからの再起動とか)

PHP
【すきなところ】
・初心者にもとっつきやすい
(ちゃんとしたもの作る場合は、本質を知る必要があるけど・・・)
・MySQLとか連携しやすい
【きらいなところ】
・宣言とかないところ
・例外はかず、落ちる
・途中から急にクラスが現れたので、バージョンが異なると全然違う
(バージョン違いのサーバー同士が連携してるとめんどい、JSON使えなかったり)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

PHPに関しては欠点を挙げだすときりがないですね…

[利点]

  • テンプレート機能が標準で整備されている。
  • 外部ライブラリを入れなくても多くの機能を組み込みで実現出来る。
  • 遅延静的束縛がたまに便利。
  • オブジェクト指向を理解していなくても書ける。
  • 多くのレンタルサーバでサポートされている。

[欠点]

  • クラスや関数の命名、また引数の順序に一貫性が無い。
  • マイナーバージョンアップでも大きな変更が行われるので、互換性を常に意識する必要がある。
  • 例外をスローせずにWARNINGなどを発生する関数が非常に多く、例外処理方法に難があるケースが多い。
  • タイプヒンティングが導入されているが、スカラー型に対しては使うことが出来ない。
  • インターフェースが導入されているが、返り値の型を定義することは出来ない。
  • プロパティに対してfinalキーワードを使うことが出来ない。
  • バージョン4からの互換性を維持するためであるが、インスタンスメソッドをエラーを吐きながらも静的コールすることが出来てしまう。
  • バージョン4の頃にリソースはガベージコレクションとともに自動解放されるようになったのにも関わらず、リソースを解放するための関数が存在しており、C言語とは何もかも違うのに「お作法」というよく分からない理由でこれらの関数が採用されるケースがある。
  • foreach構文を利用する際に参照で変数を展開した場合、ループ終了後にunsetで参照を解除する必要があり、不格好である。
  • 名前空間やクラス、またそのオートロードなどを活用して適切にWebアプリケーションを設計しないと、可読性やメンテナンス性の悪いコードになりやすい。
  • バージョン5.3から無名関数が採用されたが、外部の変数を使うためには全てをuseキーワードで列挙する必要があり、冗長な記述になりやすい。
  • $_GETや$_POSTを利用するためのisset構文を使った記述が冗長になりやすい。また、外部から受け取る変数型には文字列/配列の2種類があるのに、型や配列構造についての考慮が全く為されていないコードが非常に多い。文字列型を強制するために便利なfilter_input関数も存在するが、これについて触れている参考書は非常に少ない。
  • セキュリティやバージョンアップに関心の無い利用者が多い。

投稿2014/12/31 12:49

mpyw

総合スコア5223

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/01/01 04:21

年末にご回答ありがとうございます。 PHPを触り始めて半年程度の若輩者なので、大変参考になりました!
guest

0

PHPは好き嫌いを語れるほど知らないので、Javaだけです。

■好きなところ

  • WORA(バイナリーがマルチプラットフォーム)
  • 後方互換性
  • JDBC

■嫌いなところ

  • NullPointerException
  • チェック付き例外
  • デフォルトがfinalでない class然りフィールド然りローカル変数然り
  • C言語に似た構文(セミコロンが嫌い)
  • 後方互換性の維持のために進化が遅い
  • 標準ライブラリーが少し残念(ツリーが整理されていない, 基本で用意されているべきメソッドが無い, などなど)
  • セキュリティーホールの問題
  • O社提供のインストーラーに余計なものが含まれている

投稿2014/12/31 15:52

argius

総合スコア9390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mpyw

2014/12/31 17:31

>> O社提供のインストーラーに余計なものが含まれている これはずっと前から思ってますwwww
退会済みユーザー

退会済みユーザー

2015/01/01 04:25

年始にいきなり回答ありがとうございます。 Javaは忘れかけてるんで、参考になりやす。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問