いろんな言語のメリット・デメリット まとめ
今までプログラミング言語として、JAVAやjavascriptなんかを仕事で使ってきたけど、
今後Webディレクターとして必要なのはどの言語ができるかじゃなくて、
それぞれの言語の「メリット」・「デメリット」を知っとくことが大事なんじゃないかと思い、
やったことない言語(ほとんど・・・)も含め、調べてみてちょっとまとめることにしました。
とても参考になったサイト:メリットデメリット
言語だけではなくいろんなモノについてのメリットデメリットを見れます。面白い!!
そしてこれ開発した人スゴイ!
言語 | 説明 | メリット | デメリット |
---|---|---|---|
C | ・OS開発言語。 ・ハードウェア寄りの低レベル言語。 |
・移植性が高い。 ・実行速度が速い。 ・とてもシンプル。 ・サンプルコードやライブラリが豊富。 ・ほとんどのことはC言語で実現できる(汎用的言語) 。 ・メモリーや周辺機器等を簡単に直接制御できる。 ・拡張子が[.exe]で、それ単体で実行させることができるアプリケーションが作成できる。 |
・たくさんソースを書く必要があってめんどくさい。 ・メモリ開放忘れによるメモリリークバグが発生しうる。 |
C++ | ・汎用プログラミング言語。 ・C言語に、オブジェクト指向プログラミングをサポートするための改良が加えられたもの。 |
Cとの互換性あり。・クラス、仮想関数、多重定義、多重継承、テンプレート、例外処理あり。(メリットというか特徴?) | GC機能なし。 |
C# | ・Microsoftが開発した、.NET環境向けソフトウェアを開発するためのオブジェクト指向プログラミング言語。 ・Java と C++ と VB のいいところを集めてきたような言語。 |
・自動メモリ管理機能があり、メモリの割り当て・解放が不要。 ・インターフェースのサポートあり。 |
・動作環境が限定される(フレームワークに依存)。 ・リバースエンジニアリングで、内部ソースが丸見えになる。 コンパイル時にチェックしてくれる検査例外がない。 |
COBOL | ・1959 年誕生。 ・事務処理用に開発。 ・英語の文章に近い記述方法。 ・主流言語(2000年の世界の民間企業の8割)。 |
・シンプルで習得しやすい。 ・バッチ処理が高速。 ・ビジネスロジックにマッチした処理が書きやすい。 ・大規模なシステム開発によく利用される。 ・規格統一が図られ他OSへの移植が容易(OSへの依存低)。 ・歴史があり信頼性、安定性が高い。 ・汎用機のサーバがダウンすることはほとんどない。 ・銀行・保険会社などでも採用され堅牢性に優れている。 |
・コードが冗長になる。 ・計算機能、論理制御機能が弱い。 ・関数がない。 |
Java | ・オブジェクト指向プログラミング言語。 ・Java仮想マシンのもとで動作。 ・構文は C および C++ から多くを引き継いでいる。 |
・プラットフォームに依存しない。 ・ソフトウェアの開発効率と保守性が高い。 ・例外処理機能がある。 自動ガベージコレクションの機能がある。 ・ライブラリが充実。 [JAVAアプレット] ・ゲームなど、動的なコンテンツを作れる。 ・サーバの環境に左右されない。 ・ソースコードの解読が困難(素人には不可能)で機密性がある。 ・コンパイルするため、エラー発見が簡単。 [JAVAサーブレット] ・データベースを用いた双方向コンテンツ(掲示板など)を作れる。 ・サーバ側に設置するため、機密保持能力は非常に高い。 ・ビジネスで使われるレベルのセキュリティ。 ・表示される結果はHTMLなので、ブラウザに左右されない。 |
強い静的型付けを採用している。 ・開発環境を整えなければならない。 [JAVAアプレット] ・ダウンロード時に時間がかかる。 ・対応ブラウザが限られる(携帯不可など)。 ・コンパイルするため、修正を加えるのがやや面倒。 [JAVAサーブレット] ・対応しているレンタルスペースが少なく、自分でサーバ構築する必要が出てくる可能性が高い。 ・専門書や解説サイト、扱える人間の少なさから、習得が困難。 |
JavaScript | ・スクリプト言語。 ・主要なWebブラウザのほとんどに搭載。 ・独自の拡張を施したJavaScriptには独自の名称を付けている(Microsoft社は「JScript」、Macromedia社は「ActionScript」)。 |
・サーバの環境に左右されず、JavaScript対応ブラウザならばどこでも動く。 特殊な開発環境を必要としない。 ・コンパイルが不要。 |
・対応ブラウザが限定される。 ・実行時にやや重い。 ・ソースコードの機密保持が難しく、セキュリティ面に不安。 |
Perl (パール) |
・インタプリタ(ソースコードを逐次解釈しながら実行する)方式の言語。 ・CGIの開発によく使われる。 ・テキスト整形、出力に最適な言語。 |
・強力な文字列演算機能がある。 ・許容度の高い文法。 ・変数の管理が厳密でない。 ・柔軟な拡張性。 ・サンプルやモジュールが豊富。 ・CPAN(プログラムや文書を収集しているWebサイト)がある。 |
・自由に書けるので書いた本人もわからなくなるようなことも。 ・保守性が悪い。 ・コードの可読性が低い。 ・Webサーバと別のプロセスで動作するので、速度、負荷で劣る。 |
Ruby (ルビー) |
・日本人が開発したオブジェクト指向スクリプト言語。 ・インタープリタ型。 |
・汎用性が高く、多くの環境で動作可能。 ・変数に型が無い。 ・変数宣言が不要。 ・シンプルな文法。 ・メモリ管理が不要(ガベージコレクションの機能あり)。 ・全てのデータをオブジェクトとして統一的に取り扱う。 ・Perlをお手本とした強力な文字列操作や正規表現検索の機能がある。 ・OSへの直接アクセスが可能。 ・例外処理機能あり。 ・非常に大きな整数の演算も可能。 ・日本人が開発したので、原典が日本語で手に入る。 ・日本語資料が多い。 |
・プロフェッショナルな技術者が少ない。 ・GUIアプリの開発に弱い。 ・パフォーマンスが遅い。 ・Perlと比べると、まだまだ開発途中感がある。 |
PHP | ・HTML埋め込み型のサーバサイドスクリプト言語。 ・インタープリタ型。 ・CGIをサポートするWebサーバ上で実行。 ・C,C++,Javaに似た文法。 |
・標準関数が豊富。 ・WEBに特化している。 ・DBアクセスに強い。 ・Cで書かれているので比較的高速。 ・各種ライブラリが充実。 ・大抵のレンタルサーバーにインストールされている。 ・習得が簡単。 |
・標準関数が多すぎて名前が長い。 ・プログラマの力量の差が他言語よりも激しい。 ・セキュアでない。 ・インストールされていない環境では動作しない。 ・メンテナンスが困難。 |
python (パイソン) |
・オブジェクト指向スクリプト言語。 ・汎用の高水準言語。 |
・利便性の高い大規模な標準ライブラリを備えている(言語自身の機能は小さい)。 ・コードの可読性が高い。 ・割と広く使われ始めている。 ・公式マニュアルの日本語訳は質量ともに◎。 |
・インデント強制 ・self記述省略不可 ・日本語の本が少ない |
※20100124 python追記
言語 | OSの対応度 | 処理速度 | コードの書きやすさ |
C/C++(VC++) | S | A | C(シンプルだが覚えることが多い) |
C# | A | B | A+ |
Visual Basic.NET | A | B | A- |
Visual Basic | B | A- | B+ |
Delphi | B | A | ? |
JAVA | A+ | B | A |
まとめるのに結構時間かかった(;´ρ`)
でもかーなーり勉強になりました。
なんとなくわかった気でいたものがいかに多かったか・・・。。
サーバについても勉強したいんですけどね。
ちなみにネットワークの勉強してたころまとめてた日記があるので、CCNA合格したいって方は参考にしてみてください。
goldengenmaishaの日記
よくわかるJava | |
おすすめ平均 すらすら読める 色々読んだが・・ 良書だと思いますが 痒いところに手が届く 初心者から経験者まで Amazonで詳しく見る by G-Tools |