コーディングする環境

前回はRubyプログラムを実行する環境を整えました。
続いて、今回はRubyプログラムのソースコードを書く環境を作ってみたいと思います。
まずは、関連する用語についてきちんと確認してみます。


・コーディングとは?

プログラミング言語を使ってソフトウェアの設計図にあたるソースコードを作成すること。「プログラミング」とほぼ同義だが、仕様書やフローチャートなど抽象的な設計文書の内容を、プログラミング言語を使って具体的なコードに変換していく、という意味合いが強い。

相変わらずカタカナの多い説明ですね。
しかし、ポイントはおそらく『ソースコードを作成すること』というところ。
そもそもコーディングはcode + ingですから、とにかく目的は『コードを作ること』なのでしょう。


ソースコードとは?

ソースコード (source code)、ソースプログラムとはソフトウェア(コンピュータプログラム)の元となるテキストデータ。 プログラミング言語に従って書かれており、コンピュータに対する一連の指示である。 単にソースという場合も多く、また、誤解を受ける恐れがない場合、コードと呼ばれる場合もある。また、プログラムリストと呼ぶ場合もある。

対義語としてはマシンコード、バイナリコード(単にバイナリとも)、オブジェクトコードなどがある。これはすべて機械語を意味する。

なるほど。
箇条書きにしてみます。

  1. ソフトウェア(プログラム)の元になるもの
  2. テキストデータである
  3. プログラミング言語に従って書かれる
  4. 対義語は機械語を意味する言葉たち(バイナリ、オブジェクトコード)

こんな感じでしょうか?
それにしても、そもそもソースコード(source code)のソース(source)とは何でしょうか。
私は英語さっぱりですので、このような場合もネットの力などを拝借します。

地球人ネットワークを創るアルク:スペースアルク
http://www.alc.co.jp/

source
【名-1】 もと、源、起点{きてん}、水源(地){すいげん(ち)}、原因{げんいん}
【名-2】 情報筋{じょうほう すじ}、関係筋{かんけいすじ}、消息筋{しょうそくすじ}、関係者{かんけいしゃ}、情報源{じょうほうげん}、(話の)出所{でどころ}、出典{しゅってん}、発信元{はっしん もと}

とりあえず、何かしらの源・元になるもの、という感じらしいです。
では何の元なのか、という話ですが、『ソフトウェア(コンピュータプログラム)の元となる』と書かれています。
つまり、

ソースコードプログラミング言語)
 ↓ 翻訳(コンパイル、変換)
プログラム(機械語

という関係だと思います。
ところで、対義語としてバイナリやオブジェクトコードという名称が出てきています。
ここでは、オブジェクトコードの『オブジェクト』についてまた英和辞典をあたってみます。

object
【名-1】 物、物体{ぶったい}、物件{ぶっけん}
・ There are glass objects in the case. 箱の中にはガラス製のものが入っている。
【名-2】 目的{もくてき}、目的物{もくてきぶつ}、目標物{もくひょう ぶつ}、《文法》目的語{もくてきご}
【名-3】 対象{たいしょう}、被写体{ひしゃたい}
【名-4】 客観{きゃっかん}
【名-5】 おかしなもの
【名-6】 《コ》オブジェクト

思った以上にたくさん意味があります。
オブジェクトと聞くと、1番目の“物”という意味で考えていましたが、“目的”という意味も重要なようです。
そう考えると、ソース(元の物)に対するオブジェクト(目的物)という対応ができるのですっきりします。


また、対義語にはもうひとつ『バイナリ』という名称が挙げられています。
まずは英和辞典。

binary
【名-1】 2値、2進法{しんほう}、2元、2成分{せいぶん}、双対{そうつい}◆【略】BIN
【名-2】 《天文》<→binary star>
【形】 2値の、2進法{しんほう}の、2元の、2成分{せいぶん}の、双対{そうつい}の◆【略】BIN

続いてIT用語辞典。

 テキスト形式(文字データ)以外のデータ形式全般のこと。バイナリ形式のデータをバイナリデータ、バイナリデータで構成されるファイルをバイナリファイルという。実行可能形式のコンピュータプログラムや、画像や音声、動画などのデータなどがバイナリデータにあたる。コンピュータが直接解釈して実行できるフォーマットで記述された実行ファイルの形式を特にバイナリコードという。バイナリの原義は「二進数の」という意味。

これはわかりそうです。
以下自分解釈。

  • バイナリとは元々2進法を表すもの
  • コンピュータは2進法で物事を捉える
  • なので、コンピュータが直接扱える形式をバイナリコードと呼ぶ
  • これはテキスト形式以外のデータ形式全般を指す
  • すなわち、テキストデータと対比する言葉でもある

これで、(テキストである)ソースコードとの対義語としての立場もすっきり確認できました。


そんなわけで、自分の頭の中でのコーディングの作業とは、『プログラミング言語をもちいて、プログラムの元となるテキストデータを作成すること』に落ち着きました。

テキストデータを作るには?

それでは、テキストデータ(テキストファイル)を作るにはどうしたら良いか考えてみます。
またまたIT用語辞典のお世話になります。

 文字データだけで構成されたファイル。どんな機種のコンピュータでも共通して利用できる数少ないファイル形式の一つ。

 ワープロソフトなどで文書を作成した際には、テキストファイルに変換すれば、他の機種やソフトウェアでもそのデータを利用することができる。

 ただし、テキストファイルは純粋に文字データのみで構成され、修飾情報や埋め込まれた画像など文字以外のデータは表現することができない。

 また、改行やタブなど、文章の作成に必要なものを除いて、制御コードを含むことはできない。このため、他の形式から変換する際には注意が必要。

 テキストファイルの編集のみを行なうためのソフトウェアをテキストエディタという。

最後の行に答えがありましたね。
どうやら、テキストファイルを編集したい場合はテキストエディタと呼ばれるソフトウェアを利用するようです。
そして、Windowsユーザにとって最もなじみの深いテキストエディタといえば……そう、メモ帳ですね。

メモ帳を試す

それでは、ここでひとつ先走ってメモ帳でRubyプログラムを書いてみちゃいます。
[スタート]→[すべてのプログラム]→[アクセサリ]と進み、メモ帳を起動します。

そこに、次のような文章を打ち込みます。

# ハローワールド

print("Hello, world")


これをhello.rbという名前で適当なディレクトリに保存します。


保存が出来たらコマンドプロンプトを起動します。
そう、『Win + r → cmd → エンターキー』ですね。
起動したら、今hello,rbファイルを保存したディレクトリへ移動します。移動するコマンドはcdでした。

cd 

dirコマンドを使ってhello.rbの存在を確認します。

dir

間違いがなければ、rubyインタープリタを使って、先ほど書いたプログラムを起動します。

ruby hello.rb


『Hello, world』と画面に表示されれば成功です!
これでプログラミングの第一歩を踏み出しました。

プログラマの使うテキストエディタ

何を使って書けば良いのかわかったので、あとはRuby言語を覚えてプログラムを書くだけ……なのですが、ちょっと疑問です。
普通のプログラマはどんなテキストエディタを使ってコーディングをしているのでしょうか?まさか皆が皆メモ帳フリークとも思えません。
そんなわけで、ちょこっと捜査開始です。


はてなダイアリーを使って書いているので、まずははてなを利用してみましょう。
最近、はてなでこんなアンケートがされていました。
人力検索はてな - プログラマの方に質問します。 メインでどのエディタを使ってプログラミングしていますか?

まさに聞きたいことずばりです。
しかしその集計結果は……

  1. その他(102)
  2. 秀丸(40)
  3. emacs(27)
  4. vim(15)
  5. Em Editor(12)
  6. メモ帳(12)
  7. eclipse(10)
  8. Visual Studio(9)
  9. xyzzy(8)
  10. サクラエディタ(8)
  11. vim以外のvi clone(4)
  12. 萌ディタ(3)

その他多すぎ。


同じことを思った方が次のような質問をなさっています。
人力検索はてな - プログラマの方に質問します。 メインでどのエディタを使ってプログラミングしていますか? http://q.hatena.ne.jp/1157680174 という質問で、 「その他」の方が多かったで..

あー……
結論:みなさんそれぞれこだわりがありすぎ


仕方ないので、アンケート上位のものからチェックしていきます。
思ったより長くなりそうなので、別枠でテキストエディタについて確認していきたいと思います。
進行がやたらと遅い気がしますが……大丈夫でしょうか。