OutSystemsの紹介で、コードを書かないということが強調されることがあるかもしれません。では、OutSystemsでアプリケーションを開発するときにプログラミングスキルは必要ないのでしょうか?
OutSystemsを使っていくつかのプロジェクトをやってきた感想としては、
- プログラミングスキルは必要
- 通常の開発言語(C#やJavaなど)よりは、習得に必要な時間が少ない
です。
OutSystemsでの開発イメージ
OutSystemsとVisual Studioで同じ機能の開発がどのように変わるのか見てみましょう。
ボタンをクリックしたイベントに応じて、画面で入力した文字列を大文字にして、画面に表示するコードです。
まずはOutSystemsで書いた場合。
こんな感じの画面があって、Buttonをクリックしたら、Inputに入力した文字列を大文字に変換して、Expressionに表示します。
入力した文字列を、組み込み関数のToUpperに渡して、ExpressionのValueに紐付けた変数に編集しています。
同じ処理をVisual Studioで書いた場合(ASP.NET+C#)
[cs]
protected void Button1_Click(object sender, EventArgs e)
{
var textUpperCase = TextBox1.Text.ToUpper();
Label1.Text = textUpperCase;
}
[/cs]
ユーザの入力を受け取って、組み込まれた関数(メソッド)を呼んで、結果をUIに戻す部分がほぼ対応していますね。
もちろん、これは非常にシンプルな処理だからですが、OutSystemsで行うのはただの設定ではなくて、プログラムの開発であることがわかるのではないでしょうか。
アイコンをつなげて作ったActionも、配置時にC#のソースコードに変換されるので、Action内のC#で作るのと同じ処理の流れがある。処理の流れは自分で作らなければならないのです。
学習コスト
非開発者がOutSystemsでの開発スキルを身につけるのは、C#+ASP.NETなど他の言語でWebアプリケーション開発スキルを身につけるよりは楽だと思います。
例えば、C#のメソッドに当たるActionの編集中に使える要素は、下の画像分くらいしかありません。
オブジェクト指向の対応がないこともそうですが、開発要素がシンプルであるために、学習しなければならないことも限定されます。これで、通常の業務アプリケーションであれば十分に開発です。
規模が大きくなったり、特殊な外部I/Fやハードウェアの利用では不便に感じることもありますが、そこはより専門性の高い開発者がF/W整備やExtensionなどを使って部品を用意することで対応できます。
なお、開発をしてみた実感としてはOutSystemsを使って開発するのは、同じ機能をVisual Studio+ASP.NET(MVC)で作るときよりも、楽ですね。