各プログラミング言語の特徴
こんにちは。
少し時間が空きましたが、
今回はプログラミングの主な9言語をご紹介します。
簡易的な判断で個人の偏見満載です。
1.Java
何でもできる言語といった感じです。自作ゲーム、ツール、Webページ、Webアプリにandroidアプリまで作れて、エミュレーターや実機すぐに動作確認ができるので、感覚で理解できる。
オブジェクト指向と呼べる技術の代表であり、汎用性が高い上に、
歴史が長いために調べると大体のことがわかる。
宣言の縛りがそれなりになるため、
2.PHP
簡単なWebページからブラウザゲームまで幅広く作成可能で、開発に要する時間が比較的短い為にWeb系サービス開発に向いている。メディア、EC,ソーシャルゲームのバックグラウンド問わず、様々なサイトが開発できる。データベースやAPIとの連携、cookieへのアクセス駆使することで幅広いコンテンツやWebシステムの作成が出来るうえ、Javascriot等の言語を併用できるので、動きのあるリッチなコンテンツやwebページに仕上げられる。
動的なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのシフトウェア群である「LAMP」の「P」である。
Wordpressなど、全てオープンソースであり、無料で使えるワンセット言語担当として普及。CakePHPやZendFramework、FuelPHP、Symfonyなど、フレームワークが多いのが魅力で、ライブラリも豊富。
CGIよりは速いが、基本的には呼ばれて動くので処理は速くはない。
Web系の開発に強いが、それ以外で使用されないために汎用性が低い。
一般的に広く浸透している為、学習はしやすい。
ルールが比較的少なく、型の宣言が少ないコード量で書けるために覚えやすい。
勉強を始めたばかりでも比較的すぐにHPの作成が出来る。
ある程度直観的に動作を進めることができ、
実際にコードを書いて実装する感覚が他言語に比べて容易である。
しかし、ここからスタートすると、CやJavaは型がしっかりしている言語は難しく感じるかもしれません。
しかし、XAMPPなど、ローカル環境開発が簡単に構築できる。
3.JavaScript
オブジェクト指向型、関数型、命令型へのプログラミングへの対応が可能。ブラウザ側で動作する言語で、Webサービスで高機能な画面動作の実現に必須。Unityというゲームエンジン上で開発も出来る。HTMLに様々な動きや機能をあたえられる。開発環境なしに、テキストエディタを使ってプログラミングできる点もうれしい。3DCGのレンダリングもできる。
Web開発において幅広く利用されている。
サーバーサイドでの利用もでき、バックエンド、フロントエンド両方が実現可能であり、Unityでの開発にも用いられる。
ライブラリもjQueryやnode.js、Angular JSなどのフレームワークがあり、実装も簡単になってきた。
ただ、ブラウザによって動作に差が出ることがあるので、動作確認やプログラミング自由度の高さ故の不具合がある。
同じスクリプト言語のPHPtp記述形式が似ているため、合わせて学習するとよい。
ライブラリの存在は大きく、HTML、PHPなどのフロントエンド側とセットで覚えて、マークアップエンジニアや、フロントエンジニアになれる。
4.Ruby
簡単なWebサービスから大規模なものまで開発でき、Twitterやクックパッド、自治体業務システムも運用している。手早くかけてすぐ動かせるためにバグ対応やコーディングのサイクルが早い。組み込みのクラスライブラリが高性能であり、重要でないところは自分でしなくてよい。
柔軟性が高く、文法に縛られない。
インタリプタ言語なので、実行速度が遅くなるが、その差は比較的少ない。
短文で多くの機能が実行できるので、
シンプルで美しい文法は解析がスピーディーで保守性も高い。
テキスト処理が強力であり、システム管理系において効果的。
チームで開発する際は、
ルールを決めて記述しないと処理がかみ合わなくなる。
5.C#
パソコン、サーバー用プログラムによく利用されているうえ、ゲーム、アプリ開発などにも幅広く使用されている。企業向けの業務システムで利用されることも多い。最近はやりのUnityはこれで記述もできるので、個人でゲーム作成が出来る。
C言語を拡張してC++なら、C#はC言語の名を冠したJavaである。Javaと文法が似ている。
.NET環境で主に利用されている言語である。
C++で問題となったメモリ管理の問題が解決されている点が魅力。
ただ、Windows環境でのみ利用が可能という制限付き。
Visual Studioを使うとかなりのサポートが受けられる。
6.C++
コンシューマーゲームから生産性ソフトウェア、ロボット工学から電化製品まで組み込みシステムも手広く開発できる。
基本的にC言語と同じ作法のため、大抵の言語で通用する。
夢のような機能を実装できるが、膨大な知識と時間が必要。
コンパイルすることで機械語に翻訳されるため処理は非常に速く。プログラムでパソコンを制御することを学ぶには適している。
Cよりも少ないが、コード量は多い。
メモリ管理など複雑な処理が必要で、コンパイルが必要。
C++と一括りにされているが、開発環境とOSに合わせて種類が多く、
環境に依存するためOSが変わるとソースコードの大改修が必要。
7.Objective-C
iOSアプリ開発のための言語。実機を所持ししていれば実装を進められる。
C言語で記述されたものを制御しやすくしたもの。ソース自体はC言語の上位互換的なもの。
8.Python
海外のWebサービスは幅広く使用されている。Webアプリケーション、デスクトップアプリケーションなどの開発が可能。システム用のスクリプト、各種自動処理、理工学・統計開発ツールとしても使用可能。
C、C++とも仲が良く、何でもそれなりにできる。C言語やC++のライブラリも利用可能。Rubyのライバル的存在。
データ解析や自然言語の解析などの数字を扱うことを得意としており、分析を任せやすい。
少ないコード量で簡潔に記述が出来、読みやすく書きやすいと言われる。
生産性、保守性が高く、海外では頻繁に利用され、最近は急速に伸びている。
Googleでも使用されているとのうわさ。
日本には余り馴染みがない。
9.C
OSの開発に役立つ。機会に近い言語であり、ハードウェアに近い部分を触れる。
汎用性が高く、非常に多くの分野で採用されている。
様々な言語の元になっており、元祖プログラミング言語。
ここで学んだ言語は、大体使用できます。
C++でも使用できるため、非常に便利だ。
C言語は記述通りに動く。
つまり、全てコーディングしないといけない為、
プログラマーに大きく依存する。
C++同様にプログラムでパソコンを制御することを学ぶのに適している。
環境に依存する。
とまあ、書いてきましたが、
これはかなりこのサイトを参考にしています。
これを書くだけで疲れたのに、
この記事を書いた人にリスペクトの意を。
これから言語を学ぶ人に、
少しでも参考になったなら。