当サイトの『プログラミング入門』シリーズでは
Javascriptを使ったプログラミングについて説明していきました。
そんでもって、プログラミング言語には他にも色々あることは、
冒頭で説明しました。
今回は、Javascript以外のプログラミング言語について説明していきます。
様々なプログラミング言語の共通点
世の中には多種多様なプログラミング言語が存在するものの、
基礎のあたりはどの言語も大体一緒です。
例えば、以下のプログラムの書き方をそれぞれ違う言語で記述していくと・・・
Javascript
var list = []; for (var i = 0; i < 5 ; i++) { if (i < 4) { list.push("No:" + i); } else { list.push("Last No:" + i); } }
C#
var list = new List<string>(); for (var i = 0; i < 5 ; i++) { if (i < 4) { list.Add("No:" + i); } else { list.Add("Last No:" + i); } }
Java
List<String> list = new ArrayList<String>(); for (int i = 0; i < 5 ; i++) { if (i < 4) { list.add("No:" + i); } else { list.add("Last No:" + i); } }
Visual Basic(.NET Framework)
Dim list As new List(Of String) For i = 0 To 4 If i < 4 Then list.Add("No:" & i) Else list.Add("Last No:" & i) End If Next
Javascript,C#,Javaあたりは大体似ています。
そもそも、この辺の書き方は全てC言語がベースにあるので、
似ているものになっています。
配列やリストの使い方がちょっと違うのが特徴的でしょう。
Visual Basicだけ雰囲気が違うのが特徴的です。
頭文字を大文字にして、カッコはあまり使わず、
セミコロンをつけないみたいな書き方を主にしています。
Visual Basicに関しては、元々はBasic言語をベースにしているので、
これだけ書き方がちょっと違います。
ただ、そんなに覚えづらいものではないし、
違いに対応していけば使えるものになっています。
他にも、RubyやSwiftといった様々なプログラミング言語があり、
この辺もまた、基礎的な所の書き方がちょっと違ったりしますが、
大きく変化するわけではないです。
理屈上は、プログラミング言語の書き方を置き換えていけば、
他のプログラムで書くことが可能なわけです。
なので、新しいプログラミング言語を学ぶ際は、
プログラミング言語ごとの微妙な違いを理解して、
共通している基礎の部分は書き方を置きかえるだけ、というように覚えていきましょう。
「型指定」の注意点
Javascirptから他の言語を学ぶ使う際に注意するべきなのは、
変数や関数を使う場合、他の言語では「型指定」をちゃんとする必要があるということです。
Javascriptでは変数や関数を使う場合は以下のように書いていました。
//変数の宣言 var xxxx;
//関数の使用 function xxxxXxxx(xxxx) { **(処理)** }
とりあえず、変数に関してはvarと書いて置けばなんとかなる、
みたいなスタンスなのがこの言語の特徴です。
関数は「fuction 関数名」と書いていくだけです。
復習すると、変数や関数がこれでなんとかなることを「動的型付け」と言います。
一方で、C#やJavaでは変数や関数を使う場合は以下のように書きます。
//変数の宣言 int xxxx;
//関数の使用 int function xxxxXxxx(int xxxx) { **(処理)** }
変数が整数専用だったり、関数の元り値が整数だったりした場合、
整数用の型ということでint型であることを明確に書いておきます。
文字列型の場合はstringで、小数を使いたい場合はfloatです。
Javascriptと比べると面倒かもしれませんが、
厳密なプログラミングをしていく場合はむしろちゃんと書いていく方が正解です。
あと、補足するとC#の場合は以下のような書き方もできます。
//変数の宣言 var xxxx = 5;
「var 変数 = 5」と書くと、
「この変数はint型だ」と勝手に予想してくれて、
「int 変数 = 5」と書いた場合と同じ動作をしてくれます。
これを「型推論」と言います。
Javascriptの仕様である「動的型付け」と「型推論」の違いは、
「動的型付け」の場合は、「var 変数 = 5」と書いた後も、
「変数 = “文字列”」というように書くことができるし、
変数には必要に応じてどんな値を入れることもできます。
しかし、「型推論」の場合は、「var 変数 = 5」と書いた後は、
変数はint型とみなされるので、
「変数 = “文字列”」というように文字列を入れることはできません。
このような「型推論」と「動的型付け」の違いも理解しておきましょう。
ただ、こうした「型推論」はC#では使えるけどJavaでは使えず、
Javaでは「int 変数」と書いていくのが基本なので、
そうした細かい仕様の違いにも注意していきましょう。
「オブジェクト指向」を理解する必要性
あと、大半のプログラミング言語は「オブジェクト指向言語」になっているので、
「オブジェクト指向」というものを理解する必要があります。
コンピューターが登場して当初にあったプログラミング言語は
BasicやC言語といったもので、これはシンプルなものでした。
大体、今回のJavascriptでやったようなシンプルさです。
ただ、大きなシステムを扱うためにはそれでは不十分だったため、
「オブジェクト指向」を導入した高度なプログラミング言語が作られるようになりました。
Javascriptでもオブジェクト指向を使うことがありますが、
これまで「プログラミング入門」でやっていったみたいにシンプルなプログラムも書けるため、
Javascriptはどちらかというとシンプルよりです。
こういうものは「プロトタイプベースのオブジェクト指向言語」と呼ばれています。
図示して整理すると以下になります。
厳密に言うと「オブジェクト指向言語」の中にも色んな種類のものがありますが・・・
要は、大体のプログラミング言語はオブジェクト指向言語になっています。
この中でJavascriptだけは特別みたいになっていますが、
Javascriptの場合はオブジェクト指向も使えるけど、
ブラウザにちょっとだけ組み込んでおくだけ、みたいな使い方もできるので、
初期のものに近いシンプル書き方がされることが多いです。
だから、Javascriptは基礎を学ぶのには良いのですが、
他の言語をやる場合は「オブジェクト指向」についてよく理解しなければなりません。
「オブジェクト指向」を理解するということは、
簡単に言うと「クラス」という概念があって、
クラスを使えるようにするということです。
この点については『オブジェクト指向入門』のシリーズで
別途じっくりとやっていきます。
コメント