今まで開発者の珍宝堂さん任せにしてきた、ラジコタイムフリー用ツールの開発ですが、開発者とタイムリーに連絡を取ることが出来なくなってしまったため、自分の趣味を兼ねて私が作ってみることにしたわけですが、今まで珍宝堂さんが相当苦労していたんだと実感しました。
プログラム開発の苦労は、新しいものを作り出す苦労なので、大変とは言え楽しみでもありますが、その他に、
- 開発ツールが思うように使いこなせない
- 動作確認にイライラする
- ルールを守らない奴がいる
てなことに悩まされます。
1は、最近の開発環境の肥大化。
機能が増えるのはいいのですが、ゲームもなんも入れていない開発専用のPC( core i5, 8GB RAM)のリソースが足りなくなります。
わずか200行程度のBasicプログラムのデバッグの途中で、一行をコメントにしたり、コメントを外したりで、いきなりわけのわからない動作不能に陥ります。プログラムを書き換えたのだからエラーが起きるのはいいのですけど、エラーが起きた行やブロックを表示してくれよ~。なぜか編集業を元に戻しても解決せずエラーが出続ける。数時間悩んで、Visual Studioを再起動したり、ソースを開き直したら、同じプログラムがちゃんと動くのよ。これはプログラムのせいじゃなく、環境のせい。
8GBで動作しない開発環境って何よ!って私は言いたい。まあ、これはVisual Studioを責めるのじゃなくて、プログラム開発しようとすると、横に参考書を開いて行うわけですが、そのためにWebブラウザーを使います。Chromeの事が多い。30サイトくらいを開くと、Webブラウザーもメモリをバカ食いする。通常のブラウジングでは何も問題ない8GBの環境が、1時間も使うとリソース不足になってしまうようです。
そして機能が多すぎて、デバッグが完了した後何をすればいいのかがわからん!(というかまだ勉強中。)プログラムロジックを考えるのが私の役目のはずなのに、環境のメンテナンスに時間を取られてしまう不合理。ため息が出ます。
2は、上記の苦労をしてようやく動くようになったプログラム。リスナーにダウンロードしてもらえるようにサーバーにアップします。事前動作確認用としてメールやWeb利用しているPCでダウンロードして、コマンド画面を開いて、radikopadコマンドを入力。エンターキーを押して「さあ、どうだ!」と思うと、いきなり見たことが無いエラー。どうも、.NETライブラリが無いような感じ。どうすんのこれ?
そういえば、Win7や32bit Win10でも動作確認しないといけないな~と、電源Offにしてある環境を立ち上げてテスト。動かない、、、、、、、、
先ほどの「あ~終わった~」という気分が一気にどん底に。Web検索で調べまくるけど、気分は公開を優先させたい。
Publishというキーワードを見つけ、理解もせずにPublishして、なるほどライブラリをインストールできるようにパッケージを作るのね。他PCで動くことを確認できたのはいいけど、プログラムサイズが大きくなるし、ファイルが増えてる。この増えたファイルたち、何よ?
RadikoPad_cmd のためにインストールされてしまったライブラリも、今後どうするの?
プログラムじゃない点の勉強再開です。やることが増え続ける。
3は、今回の事じゃないのですが、今まで珍宝堂さんとRadikoPadの不具合で意見を交換した中で遭遇した、放送局担当者のマナーの悪さ。というかICT教育不足。
番組表の中に、本来は使うべきじゃないキャラクターや文字コードがいっぱい入っているんです。自分のスマートフォンやPC上でしか正しく表示できないキャラクターコードや絵文字が番組表に使われている。番組表を元に、ファイル名を作っていると予期せぬ文字コードにぶち当たり、予期せぬ結果になってしまう。これは、ファイル名を例にした一例ですが、RadikoPadってプログラムを組む技術者が、コンピュータとネットワークの基本ルールを知らないラジオ局で放送プログラムを作っている人の生活や仕事ぶりに影響を受けざるを得ない世界なので、その乖離感にイライラする作業だと実感。
そして、恒例のサーバー仕様変更。これは、そもそも非公式アプリの宿命なんですが、ある日突然動かなくなる。ヤダヤダ。
今のプログラム開発の世界ってこんなんだ~。
プログラムによる自動化、省力化っていうのは、大雑把に言って、
- 自分で作って自分で使う、自分が便利になる。
- 自分が作って、環境や生活スタイルが近い人が使う(例:職場で仕事の生産性が上がる。)
- 自分が作って、全く知らない誰かが使う
という目的の違いがあります。
私は過去、上記の1と2 を主にやって来ました。3はやりたくなかった。
しかし、RadikoPad は、もろに3の世界。みずほ銀行の取引システムトラブルなんかをみると、他人事とは思えない。「こうあるべきだ!」と思う人が、「物理法則の中ではここまでしかできない」とわかっている人に対して、物理法則の外側を実現せよ と命令するわけですからね。
「は~~~~」ため息。私は、上記2の立場の人が作ったものを、文句を言わずに使わせてもらいたい。
でもまあ、とりあえずは、いったん休憩。
私が過去に使っていた開発環境は、ただの端末、エディター とアセンブラー・コンパイラー。
エディターでプログラムを書いて、デバッグして、仕上げ。全部手作業。手作業なので何が起きているか全部わかる。
今は統合開発環境なので、プログラムを書いているとき以外は、何が起きているのかよくわかんない。今後も開発環境を使っていった場合、今の感想がどう変化するのか?