今年はRかpythonに関しての記事を書いていこうと思っていたのですが、なんかSASの使用者?SAS社の関係者?なのかよくわかりませんが、陰で私に対して文句言ってる
方がいるようで、そういう方に対してもう少しSASの現状を客観的に考えていただきたいので、SASくそシリーズを追加することにしました。
自分の慣れ親しんだ言語の欠点指摘されていい気持ちではないのはわかるけど、所詮はただの道具です。道具以上の価値を見出すのは自由だけど、そこまで行くともはや趣味ですよ。
少なくとも後輩や部下に対してご自身の趣味を押し付けるようなことはないようにしていただきたいですね。それやっちゃうと立派な老害なので。
また去年のSASユーザー総会はオンラインということで時間が取れれば聞こうかなと思っていたのですが、結局無理だったので発表資料を確認したところ、非常にがっかりした件についてもほぼ私の
日記みたいな感じになりますが残しておくことにします。
「 SASこそわが人生」という危険人物
なんか、SASとは長い付き合いのせいなのか、SASに対して仕事道具以上の感情をもっている人が少なからずいらっしゃるんでしょうね・・・まさに「SASこそわが人生」って感じなのかな。
個人的には意味不明ですが。
主張を要約するとこんな感じです。
- 「SAS言語やその使用者、SASコミュニティを批判するのはやめてほしい!!」
- 「SASのデータステップは古い技術だけど、処理内容によってはパフォーマンスが優れている!!」
- 「SASだってハッシュやproc ds2といった新しい試みを実施している!!単に日本ではその有用性が認知されていないだけ!!」
1番目については、コミュニティや言語仕様の欠点、改善点に対して目をつぶって、SASを趣味とする同士で実施するオフ会のようなものを理想としているのでしょうか?そういうことは身内だけでやってください。欠点を理解しているからこそ適切な言語選択ができるのですよ? SASはただの道具であって愛でる存在じゃないです、少なくとも多くの人たちにとっては。
そもそも言語仕様設計もコミュニティ運営もすべてSAS社が主体でやってることなんだからユーザー自体は批判の対象ではありません。ユーザーはSASと所属組織の方針に従っているだけでしょ?SASと自分自身を同一視しているんでしょうか?
SAS歴長いからって自分がSASコミュニティを引っ張っていると勝手に勘違いしてません?SAS社の人間かユーザー総会世話人でなければそんな権限はないと思いますが。なんかSAS社よりも自分のほうがSASに精通しているみたいな謎の自信を胸に秘めていそうですね。
2番目については確かにその通りだと思います。SASは行ごとに逐次的に処理する行指向の言語であり、1行ずつ処理する場合であればSASは高いパフォーマンスを発揮できるでしょう。SASが使える環境でそのような処理を実施する頻度が多いのであればSASを使うのが理にかなっています。コード量も少なく済みますからね。というか私これでもSASの記事書いてんだからそこは別に批判はしてないですよ。
ただSASのデータステップは行指向の処理に特化した分これ以上の機能拡張は望めないので、行指向ではできない処理はあきらめてデータステップ以外でやったほうがいいですし、行指向の処理をたまにしかやらないのなら別にSASにこだわる必要はないと思います。
データ解析業務全体をみれば多分行指向の処理はあまり多くはないと思いますよ。多いのならRやpythonも行指向の設計を採用しているはずです。実際は両者とも列指向の設計ですし、SQLは集合指向で設計されていますよね。
行指向だと行列やテンソルに対する処理やデータの圧縮が難しいのでデータ量がどんどん増えている現代だとあっていないのでしょうね。仮に行指向の処理が必要になったとしてもRやpythonでも行ごとの処理は可能ですから、SASよりも汎用的に活用できるRやpythonを採用することになると思います。
3番目は新しい技術仕様を普及させてから言ってください。まあ過去コードコピペマンがいるので新技術の勉強不足というのはあながち間違ってはいないと思いますが、普及しない最大の理由は単に導入メリットがないからだと思いますよ。
有用なのに認知されていないというのであれば、それこそSASユーザー総会の存在意義ないのでは?過去にユーザー総会でも発表されてますよね?総会で発表しても何も変わらないのなら総会なんかやらないでポケモンやってたほうが有意義なのではないでしょうか。あと新技術を普及させる主体はユーザーじゃなくてSAS社だからな。ユーザーは開発には参加していないんだから。
このブログを読んでいる方の周りにもこのようなSASを趣味にしている人がいるかもしれません。別に人様の趣味は自由ですが、彼らの主張内容がみなさんにとって本当に妥当なのかはよく考えましょうね。
まあ私の主張についても正しいかどうかは各人の判断に任せるけどな!
SASユーザー総会の資料を読んでがっかりした件
実は去年のSASユーザー総会でオープンソフトウェア(以下OSS)の利活用についての発表があるということで、聴講しようと考えていました。ちょうどpandasの使用頻度がだんだん増えてきていたので。
実際は業務の都合上参加できなくて発表資料だけ確認しました。でもその内容がまあひどくて・・・はっきり言って参加しなくて正解でした。
とはいえSASに関連する発表の場なのでSASに何かしら絡ませないと発表しずらいのは明白で、このテーマ選定だと発表者は苦戦しそうだなとは思いました。なんでこのテーマで発表の機会を設けたんだろう・・・
一応リンクを張っておきますのでご確認ください。
「クリニカル・データ・サイエンス分野におけるOSSの可能性と今後の展望」
「テクノロジー業界を中心に普及しているOSS製品を紹介し、それらの製品のクリニカル・データ・サイエンスへの応用についても議論する。」とはいっているものの、実際は自身のgithubで公開しているプロジェクトの宣伝だと感じました。あとは一般的なOSS利活用の説明でした。従来のSASが開発の主体である環境のなかでOSSを導入した事例(特に導入の課題や効果について)は全然ありませんでした。ぶっちゃけSASユーザー総会の趣旨とずれているのでは?
「申請業務におけるOSSの利用について」
直近のOSSの利用実態について発表がありました。やっぱりSAS以外の開発環境(とくにR)は増加傾向のようですね。OSSの利用に対する当局の見解は紹介されたのですが、具体的にどのように対応するのか、特にRパッケージの信頼性の担保はどうするのかについて具体的な言及はないみたい。
「SASプログラマから見たOSS」
4つの発表の中ではぶっちぎりで意味不明、OSSのセクションなのになんで発表の大半がSASの機能紹介になるのよ?「新しいプログラム言語を学ぶ際の障壁を、Base SASが提供する多様な機能を積極的に活用することで軽減する可能性を探った。」っていうけど、最初から各言語の開発環境を触って覚えたほうがずっと早いだろう。回りくどすぎ。
発表者はpythonの経験があるのだからそのあたりはわかっているはずでは?proc ds2やハッシュを使いこなせるとpandasやtidyverseをすんなり理解できるとほんとに思っているの?私一応両方とも触ったことあるけど全然違うし、もっといえばpandasとtidyverseも全然違うよ?(データ構造的にはpandasのほうが複雑)
個人的な意見ですが、現時点でSASしか使っていなくてOSSに対して全然興味持っていない人とか、pythonやRというもの自体を知らない人に対して、SASを通じてOSSの概念を理解してもらおうとするのは無駄だと思うよ?
OSSを使うプロジェクトがあったとしても、SASを通じて勉強したものの結局自力では対処できなくてOSSを理解できる社員に丸投げするのが関の山です。会社としても最初からOSSを扱える適性のある社員に任せるか、OSSを扱える技術者を雇えばいい話です。
あと可能性を探ったとはいうけど結局結論は何なのよ?スライド見てもわからんのだけど。
「SASプラットフォームにおけるOSS活用」
宣伝目的の発表なのでしょうがないかもしれませんが、聴講者の多くは製薬関係なのに製造業?での事例を紹介して何になるのでしょうか?製薬分野におけるSAS プラットフォームでOSSを活用した事例を紹介すればいいのに意味が分かりません。会場の人の属性に合わせていないのはどういうこと?これじゃ会場の人はSAS viya導入したいと思わないでしょう。SAS社も会場の人も両方とも得をしない発表だと思いました。
要は机上論しか語っておらず、実際にOSSを製薬関連実務で活用した実績に関する言及が全く皆無なんですよね。これで発表実績として職務経歴書に書くのでしょうか?恥ずかしすぎるだろ。
SASシステムに関する発表は今後厳しい
余談ですがSASはあまり頻繁にアップデートしないので、SASシステムに言及している発表は今後難しいと思います(あくまで発表を評価されるかどうかという意味です)。SASをテーマにしているブロガーももはやネタ切れなわけですから、発表しても過去の発表と重複する可能性が高いです。なので最新の法令対応とか統計手法に着目したテーマであれば表彰されるんじゃないかなと思いました。
実際今回のユーザー総会で表彰されたのも統計手法の紹介と、最新の法令対応でしたからね。