月別アーカイブ: 2013年9月

アクチュアリーに必要/有望なプログラミング言語

独断と偏見により、アクチュアリーに必要/有望なプログラミング言語についてまとめてみました。
(2013/9/29時点)

Excel/Excel VBA

  • 基本。とにかくよく使う。
  • プロジェクションの計算を回したり、テキストの変換をしたり、貼付マクロを作って作業を簡略化したり。

SQL/Access/Access VBA/SQL Server

  • データベース周り。
  • Accessのクエリしか使えないと、データベースが複雑になった時の保守性が悪くなる。

    (ずっと間違っているクエリを使い続けても誰も気づかなかったり・・・)

  • SQLを理解すると、AccessのクエリのSQL文をExcelのセルで生成して貼り付けたり、VBAで出力して中身の理解に使ったりと幅が広がる。
  • Accessは自動化できます。これで1日かけて作業していたものが30分になったり。

    http://threeprogramming.lolipop.jp/blog/?p=260

  • Accessは2GBまでしか使えなかったり、勝手にSQLを書き換えたり、データと操作を切り離しづらかったりと何かと微妙。
    ある程度業務が大きくなってくると、SQL Serverなどのちゃんとしたデータベースの検討が必要か。
  • SQL ServerとPowershellのコンボは結構強力かも。

Powershell

  • スクリプト言語と呼ばれ、1つのファイルにコードを書いてそのまま実行して使えるので、ちょっとした作業に便利。(VBAやC#では、ワークブックやプロジェクトファイルとくっついてしまうので、ちょっとした作業には扱いづらい。)
  • 実はかなり有用な気がします。私の中で使用場面が急上昇中。
  • Windows7ではデフォルトで入っており、インストールがいらないのもメリット。
  • .Net Frameworkの関数が使えるので、C#/VB.netの知識が活用できる。
  • 文法やコマンドの使い方に癖あり(関数の書き方とか演算子とか・・・)。
  • 複雑なプログラムには、クラスが作れないしちょっと力不足か。C#やPythonを使った方が良いかな。
  • “get-childitem -recurse -name”と1行であるフォルダ以下のファイル名がまとめて取得できたり、Windows周りの強力さがある。

C#/VB.net/C++

  • 王道のオブジェクト指向言語たち。VBAより言語の性能が強力。
  • C#がお奨め。習得しやすい・人気が高い(人気が高いほど日本語資料が増え、トラブルに強くなる)・型付けが強いので変なコードを書いたときに検知しやすい。
  • 速度が求められ、あまり頻繁に修正しない性質のツールに非常に有効。プロジェクション・金利モデル生成・大きなテキストファイルの変換など。

Python

  • スクリプト言語であり、オブジェクト指向言語でもある。Powershellより言語の性能は高く、使用者も多い。
  • C#より手軽にやんちゃできる反面、型付けがないので変なコードを書いたときに気づきづらい。
  • Numpy/Scipyといった数値計算・科学計算ライブラリがある。
  • 私も研究中。プライシングや発生率の作成に使える気がする。
  • Rubyも似たような特徴がありますが、Pythonの方が勢いがありそう。

R

  • 統計解析向けの言語
  • 他の言語とはちょっと毛色が違う感じ。文法やコマンドの使い方は癖があるよなぁ…
  • 損保中心に使われているらしい?

ついでに、プログラミング アクチュアリーという概念を提唱してみます。

プログラミング アクチュアリー

プログラミング技術を習得することにより、高い質で業務を行う(ことを目指す)アクチュアリーのこと。

  • ツールの作成が速いので、速く業務ができる。わかりやすいツールを作れるので間違えにくく、正確性の高い業務ができる。
  • わかりやすいツールを作れるので、他人の時間や将来修正する際の時間を節約できる。
  • 数値の確認をする際にも、チェック用のツールをささっと作れてしまうので、速くて正確。
  • 業務の自動化を進めて、ほとんど手を動かさずに定例業務ができてしまう。
  • C#やPythonなどの強力な言語を使って、VBAでは作成が難しい複雑なツールを作成できる。