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

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

ただいまの
回答率

88.04%

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

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 3,353
退会済みユーザー

退会済みユーザー

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

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

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


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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/01/01 13:21

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

    キャンセル

+1

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



■好きなところ

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


■嫌いなところ

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/01/01 02:31

    >> O社提供のインストーラーに余計なものが含まれている

    これはずっと前から思ってますwwww

    キャンセル

  • 2015/01/01 13:25

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

    キャンセル

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

  • ただいまの回答率 88.04%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る