第一印象で避けていた
プログラミングをやってみようと思った当初、名前は知っていましたが、ぱっと見ややこしそうというだけで避けていたjavaですが、プログラミングに少し慣れてきた今日この頃、なんとなくやってみようかという思いになり、手をつけました。まずはご挨拶から
/*
* filename: Hello.java
*/
class Hello {
public static void main(String[] args){
System.out.println("Hello, world!");
}
}
当初、この長ったらしいコードの第一印象がよろしくなかった。プログラミングをしたことがない方々にとっては、まさに暗号である。しかし、なぜか今は何とも思わない。いろんなプログラミング言語を試したので、見慣れたということだろうか。Rustのコンパイラ先生の厳しいご指導ご鞭撻のおかげだろうか。とにもかくにも、これは勉強には良い兆しである。まだ詳しく本なども読んでいないので、正確なことは言えないが、読み解いてみるに、
class
?「ほほう、Pythonのクラスみたいなものか」public
?「ほほう、どこででも使えるやつだな」static
?「これは何かが静的なものということかな(要勉強)」void
?「Cのvoidと同じ感じかな」main
?「CやRustのmainと同じ感じかな」String[] args
?「String型の配列かな?」System.out.println
?「Python風に読み解くならSystemライブラリのoutモジュールのprintlnメソッド的なことかな?」となんとなく予想がつけられます。(正解かどうかは本格的に学ぶ必要がある)お初なことは、ファイル名が大文字から始まること。クラス名と同じにすること。なんとなく違和感がある。
もう少し進めて、入力を受け取れるようにしてみる。
/*
* filename: Hello2.java
*/
import java.io.*;
class Hello2 {
public static void main(String[] args) throws IOException {
System.out.println("Hello!");
System.out.print("Please input your name: ");
String name;
BufferedReader rd =
new BufferedReader(new InputStreamReader(System.in));
name = rd.readLine();
System.out.println("Hello, " + name + "!");
}
}
throws
?「なにか投げるのか?これは学ぶ必要がある」ほかはなんとなく分かる。食わず嫌いであった。むしろ長ったらしい分、読みやすいのかもしれない。書くのは面倒だけれど。ここで、はたと気づく
一般的に、一つのプログラミング言語ができれば、他の言語の習得も容易になると言われている。結局のところ、特殊な言語でないかぎり(Brain*uck、lazy_k、Prolog、forthなど)、共通点がいくつもあるので、私のようなど素人でも上記のような大体の予想がつけられる。したがって、学ぶことも少なくて済むといったことかもしれない(勝手にそう思っている)。使いこなすには当然勉強が必要ですが。ひょっとして外国語も同じような考え方で良いのではないか?
例えば、スペイン語・フランス語・イタリア語。大本は同じ俗ラテン語。ならば何か共通点があるはずである。一つ勉強すれば残りの言語も身につきやすいかもしれない。
語学に限らず、様々なジャンルでこのようなことが適用できる気がします。やはり勉強は楽しい。