SASとオープンソース
さて、先日のSASユーザ総会のOSS関連が(ごく)一部で話題になっていますが、じゃぁお前はどうなのさ?
というところで1つ紹介したいと思います。
それは Git です!(ドヤァ)
個人的には、(既存のBase)SAS (※1) に全く無い機能にも関わらず、SASとかなり親和性が高いものだと思っています。
※1 実は2020年の時点でSAS StudioにはGitが統合されていますが。
documentation.sas.com
Gitとは、ソースコード管理のためのツールで、もともとLinuxのカーネルのソースコード管理のために開発されたものです。
製薬業界では使っていることを余り聞きませんが、一般的な開発業務では必須と言っていいほど広く使われています。
(前職では、布教を始めたタイミングで厄介払い転職となってしまいましたが…)
Github、Bitbucket、GitLab…、これらの名前を聞いたことはあるでしょうか?
すべてGitを使ってソースコードを管理するためのSass、クラウドサービスです。
(私は個人のプライベート(非公開)リポジトリが無料だったBitbucketを使っていますが、現在ではGithubもプライベートリポジトリが無料で作成できるようになっていますね。)
別に上記のサービスを使ってソースコードを外部に出さなきゃGitで管理できない、という訳ではありません。
PC上だけで管理を完結させることだってできます。
そこで、まずは自分ひとりでGitを導入して使ってみることをオススメします。
Gitを用いることで、ざっと以下のようなことが実現できます。
- リポジトリ(管理対象ソースコード全てのこと)のコピーが手元にあるため、ネットワーク障害に強い開発環境が構築できる。
- タイムスタンプに依存しないソースコード管理が可能になる(逆に、ソースコードは変わっていないのにタイムスタンプが変わる可能性がある)
- すべての変更履歴が残り、以前のバージョンを再現することも容易
- 変更箇所について前回との差分を逐一確認できる。
- 変更毎にコメントを残せる。
- ソースコード以外のバイナリファイルも管理することができる(単純に中身ではなく、バイナリレベルで異なるかどうかしか見ていませんが)
一方で、
- ローカルでコードを編集するため、他人と同時に編集すると最終的に競合する可能性がある
- 適切にCommit(変更の確定)しておかないと、どこまでが正しい変更で、どこからが試験的な変更なのかわからなくなる
- 基本的に基準フォルダ以下のソースコードファイルを管理対象とするため、複数の場所に分散して管理、参照しているようなケースでは利用しづらい。(自動呼び出しマクロ、コンパイル済みマクロカタログ等)
という問題もあります。(もちろん対処法はあります)
が、とりあえずGitを使ってcheck_最新.sas とか check_20211127_2.sas とかいうのはもうサヨナラしましょう。
SASの場合、実行ログもテキストファイルですから、Gitの管理対象に設定してしまえば、いつ誰が実行してログの出方がどう変わったか、を検出することも可能です。
極端に言えば、出力結果もlistingにすればテキストファイルですから、データの差分チェックが容易に可能です。
例えば、SASのバージョンが変わってもデータに違いがないことを比較する、
メインとサブのプログラムの出力結果を比較する、なんてことも。
でも、気になるところは
「(学習コストが)お高いんでしょう~?(トーカ堂っぽく)」
というところかと。
確かに、もともとはコマンドですべて管理する仕組みですが、今ではGUIアプリケーションがいくつもありますので、それらを使えば「なんとなく」でも使い始めることができますヨ!
次回は実際にGitを使ったコード管理の環境構築を記事にしたいと思います。