先日プレ公開した開発版ですが、さっそくバグが見つかりましたので
アップデート版(Ver 0.4.0129)をプレ公開します。
ドキュメントを作成し、サンプルプログラムを動かしている訳ですが、each述語でバグが見つかりました。
ADPのドキュメントページをADP(正確にはADPのWEBページ拡張)で構築しているのですが、やはりというかなんというか細かいバグおよび仕様変更を行っており、まだまだ改修をしています。
ので、このあたりはお含みおき頂ければと思います。
私は今でも顧客の元で仕事をしたりするので、この手の話題は避けたい面もあるのですが、たまには、ADP以外の記事を書いてみます。
私はかれこれ20年近くITエンジニアとして働いていますが、今ちまたで問題になっている以下の話題ですが、IT業界では昔からありました。
・鬱
・派遣切り
・モンスターカスタマー(パワハラ)
鬱は、昔からテクノストレスという言葉があり、私も十数年前にストレスに悩まされたことがありました。
今では結構気軽に鬱という言葉が使われますが、昔はそういった認識もあまりなく、ただひたすらいらいらする毎日でした。。。そういえばストレスチェッカーなるサイトをよくみていました。
派遣切りも昔からありました。もともとIT業界自体がはやくから派遣が可能だったというのもありますし、ソフトウェア開発プロジェクトは労働集約型になる為、プロジェクトが佳境に入ると人を集め、プロジェクトが終了すると人も減らすということが行われていので小規模ながら派遣切り(というかお役御免)ということが行われてきました。
モンスターカスタマーというかパワハラも昔からありました。私が受けたもので一番印象に残っているものですが、もう15年程前の話になりますが、風邪で休んでいるところを、無理やり出社させられて、
出社すると顧客の担当者は満足そうに笑みを浮かべており、
私がそのまま、イスに座ってボーといたら(風邪をひいているのでとうぜんなのですが)
『ぼさっとしないで、ちゃんと仕事をしろ!』
とお客の担当者に怒られ、そのままありがたい講釈を聞いたことです。
別にトラブルがあった訳でも、カットオーバー等のイベントがあったわけでもなかったので、今でもなんでこのようなことをされたのか理解に苦しみますが、まぁご自身の力を誇示したかったようです。
それ以降、幸いにして今現在に至るまで皆様良いお客様で感謝しております。
あと、35歳定年説というのもありました。35歳を過ぎるとITエンジニアとして価値がなくなるという都市伝説ですが、今これを転職市場に置きかえますと確かに35歳を超えると転職も難しと聞きます。
ということは現在ITエンジニアがおかれている労働環境は、20年後の日本の労働環境を占うことになるかと思いますが、ITエンジニアの皆様の労働環境は明るいでしょうか?、暗いでしょうか?
最近では、C++にも導入が検討されているガベージコレクションですが、
なんとADPには実装していません。で、
『どうやってメモリ管理しているのか?』
という疑問が沸くかと思いますが、普通にスタックを使用しています。
細かいことを言いますと、正確には述語の評価を行うクラス内で作成(new)したオブジェクトを記録し、そのクラスのデストラクタで解放(delete)しています。評価結果を伝達する場合はオブジェクトをコピーします。深いコピーを行うので配列等は結構時間がかかります。
ガベージコレクションを実装しない理由ですが、ADP(Prolog)の実行環境(インタプリタ)はスタックで実装できるのでガベージコレクションをする必要がないということが1つ。
もうひとつの理由はパフォーマンスで、どのような実装方法を用いても、今日の大容量メモリで動作する場合、一度ガベージコレクタが動くとどうしても動作が遅くなるだろうと思います。
64ビット時代でさらに大容量のメモリが搭載される場合、ちまちまガベージコレクションするよりも贅沢にメモリを使ったとしても許されるかな?というもくろみもあります。
ADPは、論理型の言語であるPrologをベースとしていますが、代入やnext述語など、通常の手続き型の考え方も積極的に取り入れています。また、まだマニュアルに書いていませんが、ADPでは、
$value.method
のようなメソッド呼び出しもサポートしています。のでオブジェクト指向プログラムの考え方も取り入れていると言えば取り入れています。もっともメソッド形式の呼び出しを採用した理由はその方がコードがシンプルになる場合があるからです。
ADPの開発目標の1つの目標ですが、マルチパラダイム言語を目指しています。
もう少し噛み砕いでいいますと、特定の考え方に縛られずに便利なものなら何でも取り入れましょう。というスタンスで開発しています。
ADP独特のプログラミングパラダイムというのもないので、そういう意味では、借り物ばかりですが、『エンジニアが開発した言語』らしいかと思います。
先週からちまちまブログとドキュメントページを書いていたのですが、
本日みましたところアクセス数が地味に伸びていたので、今のうちにWindows版だけですが、
開発版(Ver 0.4)をプレ公開します。
ドキュメントも充分でないですが、ドキュメントの一部に実行例を出しているので、ものがあればイメージがつかみやすいかと思います。
ADPのドキュメントページをADP(正確にはADPのWEBページ拡張)で構築しているのですが、やはりというかなんというか細かいバグおよび仕様変更を行っており、まだまだ改修をしています。
ので、このあたりはお含みおき頂ければと思います。