プログラミング入門講座(Scala編)

このページは無線部開発班の内部で実施している初心者向けのプログラミング講座のウェブ資料です。内容には厳密でない部分があります。ご意見は@nextzlogまでどうぞ!

こちらの中級者向けコンテンツもどうぞ

Course of Scala Programming

基本方針

1日目

今日やること

テキストエディタって何?

テキストエディタとは、Windowsのメモ帳やMacOSのテキストエディットのように、飾りのないシンプルな文書(テキストファイル)を書くためのソフトウェアです。通常、プログラムを書くための高機能なテキストエディタを指し、プログラミング言語の構文を色分けしてわかりやすく表示したり、検索機能が充実していたり、自動的に補完入力してくれたりします。今回はMeryというテキストエディタが便利そうなので、ダウンロードしてインストールします。また、Scala用の構文ファイルを導入しましょう。

コンパイラ(インタプリタ)って何?

プログラムをテキストエディタで書いても、それはただのテキストファイルです。プログラムを解釈して、機械語の命令列に変換して、実行ファイルを作るソフトウェアがコンパイラです。コンパイラの亜種で、実行ファイルを保存せずに、その場でプログラムを実行してくれるのがインタプリタです。今回は、Scalaというプログラミング言語のコンパイラとインタプリタをインストールします。

環境変数の設定

以下、Windowsの場合です

  1. Windowsメニューからコントロールパネルを開き、システムからシステムの詳細設定を開く
  2. システムの詳細設定のダイアログ下部の環境変数ボタンをクリックする
  3. 環境変数Pathがなければ新規作成
  4. 環境変数Pathに呼び出したいコマンドへのパスを追記 (既に他のパスが記載されている場合は、;を挿入し、直後にパスを書く)

人生初のプログラムを書いてみよう

テキストエディタを開き、以下のプログラムを書いてください。

println("Hello, world!")

そして、「hello.scala」と名前を付けて保存してください(hello.scalaでなくとも好きな名前でOK)。次に、以下の手順でプログラムを実行します。

  1. スタートメニューからコマンドプロンプトを起動します。
  2. コマンドプロンプトに以下のコマンドを入力してエンターキーを叩いてください。
$ scala hello.scala

ちなみに、「$」はプロンプトと言って、コマンドプロンプトに表示される記号です。コマンドプロンプトがコマンドを受け付ける状態であることを意味します。にしても、Hello, world!だけじゃつまらないな。他の文字列も表示させてみよう。

println("おーい!ローカル各局聞いてるかぁ。")

ふぅ。

2日目

今日やること

GUIって何?

GUIとは、Graphical User Interfaceの略です。大昔のコンピュータは、モニタに文字しか映らなかった(というと語弊がありますけど)。今時は、Youtubeやニコ動を見るのも、あなたがこのウェブサイトを閲覧するのも(w3mのようなブラウザを使わない限り)、みんなウィンドウを開いたりボタンを押したり、スマホをスワイプしたり、といった近未来SF的な操作をしていると思います。それがGUIです。

とりあえずウィンドウを開こう

心を無にして、以下のプログラムをテキストエディタに打ち込み、「window.scala」と名前を付けて保存します。

import javax.swing.JFrame
val window = new JFrame
window.setSize(364, 364)
window.setVisible(true)

コマンドプロンプトで以下のコマンドを実行してください。

$ scala window.scala

おかわりいただけるだろうか?

1行ずつ何をしているのか解読

先ほどのたった4行ほどの可愛いプログラムは、しかし見た目に反して、コマンドとHello, world!だけが表示される無味乾燥のコマンドプロンプトから突如として近未来SF的なウィンドウを現出させると思う。プログラムの各行が言わんとしていることは実に簡単である。

  1. javax.swing.JFrame」という機能を使いますよ!と宣言する。
  2. 新しいウィンドウ(JFrame)を作り、できたてほやほやのウィンドウに「window」という名前を付けてあげる(そのままじゃん)。
  3. windowちゃんに縦364ピクセル、横364ピクセルの大きさになってね、とお願いをする
  4. windowちゃん、隠れてないで出ておいで、とお願いをする (windowちゃん「見たけりゃ見せてやるよ」)

あなたがプログラマとして一人前になるために、この4行の意味を暗記する必要はない。なぜなら、プログラムの中にメモを書き込むことができるからである。これを「コメント」と言う。

// javax.swing.JFrameというクラスを使うためにインポート宣言をする
import javax.swing.JFrame

// JFrameのインスタンスを作り、変数「window」に代入する
val window = new JFrame

// 変数「window」に代入したJFrameのインスタンスを縦横364x364に設定
window.setSize(364, 364)

// 変数「window」に代入したJFrameのインスタンスはデフォルトでは非表示。なので、表示させる。
window.setVisible(true)

コメントはプログラムの各行が何をしているのかを書き込むメモ書きです。初心者のうちは(そして職場によっては一人前になってからも)とにかくコメントを書きまくりましょう。本日はここまで。

3日目