ここ数十年のコンピュータの進化って凄いですよね!
高速化、、
これって一言で言うと何もやらないことで高速化を実現しています。
無駄なことを一切やらない、、これを徹底したから高速化が出来た訳です。
ーーー
4月の発表で新しい、iPadが発売されましたが、恐らくこいつのお陰で
こちらはやらなくて良い作業をやらされています。
コンピュータが高速化出来たのは、キャッシュというシステムが発明されたからです。
ここに計算結果を保存して、コンピュータが計算を始める前に、そこにデータが保存されていないか確認に来る訳です。
そこで見つかったら、コンピュータは計算をしません。
そういう動作、システムは理念として素晴らしいですが、正しく動いているウチは、、
ーーー
今時、ハードウェアを直接触ってプログラムする人間なんていません。
ほとんどの開発者は高級言語を用いて、コンピュータが理解出来るプログラムに変換してアプリにする訳ですが、、
この作業を行うコンパイラーがバグっていたら、、
自分が用意した関数の内部で、その馬限りの変数を使用します。
それはそのば限りの物です。
関数の外では使われない変数の筈なんですが、、
たまに、コンパイラーがとち狂った動きをして、それを外に漏らしてしまうことがあります。
ーーー
内部変数の名前なんて適当です。
普通、他と被らない様にとか、そんなことは考えません。
プライバシー保護されたデータで、それが外部に盛れることはない筈なんですが、
今回、それが漏れたとしか思えない挙動が発生し、アップルの方から、レベルの低いアプリを出すなと、、却下されたんです。
でも、調べてみてもそういう挙動は起こしません。
ーーー
そして、開発者が現行品、全ての実機を持っている訳ではありません。
開発機に付属するシミュレータで動作確認するのがほとんどです。
そこで指摘された不具合を確認しても見つからないんです。
今度は、それならばと、、これを意図的に発生させてみたのですが、、
ーーー
正攻法では再現出来ませんでした。
どう考えても、別の関数のデータを参照しているのです。
半端なものを作るな巻き込みな、とアップルに声高らかに宣言したいのですが、
それをアピールしたところで、現状が変わる訳ではありませえん。
ーーー
要は同姓同名の変数を使っているから混線する訳です。
内部変数の名前を変更しました。
他にも、同じように混戦している箇所が無いとも限りません。
自衛のため、使用頻度の高い関数の内部変数は固有の名前に変更し、、
混線の発生に備えようと思います。
ーーー
本来、こんなことは私の仕事じゃありません。
開発元の不手際です。
対応しなくても良い話の筈ですが、一番早く動けるのは自分な訳です。
そして、今回は結構、大きい致命的なバグを修正するために動いているのですが、
その足止めをされている訳です。
困っているのは自分です。
理不尽な訳ですが、動かざるを得ません。
いくら何でも、5月中盤までこんな作業を行うつもりはありませんでした、
自分のシステムの不具合対応に、アップルの不始末をさせられる訳です。
ーーー
くだらない仕事なんてやりたく無いんですが、仕方がない事なんでしょうかね!