我輩はブロガーではない。ネタもまだない

SASとかDelphiあたりの人様の役に立たないネタを提供します

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を使ったコード管理の環境構築を記事にしたいと思います。