ITで遊ぶ

ソフトウェアは進歩し続けなけりゃならんのか?

ここ10年くらい不思議に思っていること。

有償・無償を問わず、ソフトウェアはアップデートされ続けなければいけないのか?
ものすごく疑問に思う。

おそらくユーザーの無理解が原因なのだと思う。
プログラムを開発する人以外はソフトウェアを作る苦労を知らないと思う。
コンピューターを相手にしているのに、IFだ、WHILEだと一つづつ入力して書くのだ。

しかしユーザーは「ソフトウェアって農産物みたいなものでしょ。」と思っている。
その証拠にソフトウェアを容赦なくけなしたり、Windowsマシンを誰から買った、譲ってもらっても、前のユーザーが購入したソフトウェアは俺も無料で使えると思っている。

一方で、その認識は正しいよな、と思うこともある。
たとえば今どきのエレベーターはタッチ式ボタンだと思う。
あれのメカニズムを知っている人はいるだろうか?金属板を触れることにより静電容量が変化する。
その変化が一定基準を超えるとタッチされたと認識するのだが、多くの場合、マイクロプロセッサが使われている。マイクロプロセッサが使われているということは、そこにはプログラムが存在するということになる。
こういうプログラムがバージョンアップだ、ライセンスだ、と言われてもめんどくさくて仕方なくなる。

同様のことは定番ソフトウェアというものにもあると思う。

パソコンでプログラマーや、ちょっとパソコンを使いこなしている人はエディターを使うと思う。
Windowsに標準で搭載されている「メモ帳」のジャンルのソフトウェアである。
これ、DOSの時代からの定番がいくつかある。日本だとTerapadなどがそうだ。
エディターとして必要な機能を備えているので、もうバージョンアップの必要などない。

もう少し高度な例をあげてみる。
Microchip Technologyの開発ツールMpLabXという開発環境はどんどんバージョンアップし、同時にCコンパイラーやアセンブラーの仕様が変わる。
これは深刻な問題で、古い時代に開発されたプログラムはコンパイルできなくなる。
Microchipは移行ツールも出さない。PICシリーズはユーザーが多いが、だんだん使いたくなくなってきている。
私はV5.35を使い続けている。

Arduinoというシングルボードコンピューターのくさ分けといってもいいものがある。
イタリアの大学で開発されたが、教育用のみならず業務でも使われていて便利だ。
具体的にはATMELのプロセッサーに小さいブートローダーが付加されているだけだが、最初から親切な開発環境(IDE)が用意されていたおかげで、世界中に爆発的に広まった。
多くの種類のボードが作られ、開発環境が便利なのでサポートされるCPUもものすごい種類となった。
この結果、開発環境自身が変化を遂げた。
しかし、この文章を書いている理由のひとつなのだが、Arduino IDE V2はもともとのArduinoのためのコンパイル、デバイスへの書き込みでエラーを起こしやすくなってしまっている。
私の場合、Arduino Pro miniへの書き込みトラブルがけっこう起きる。バージョン1.8を使っている。

Microchipの開発環境もArduinoの開発環境も、私は古いバージョンをわざと使っている。
私がPICチップそのものに大変興味があり、動くだけで楽しいと趣味にしている、とか、私がArduinoのいろんなボードにふれるだけで楽しい、ならばそれぞれの開発環境をどうやって動かすかについても労力をかけるだろう。
しかし、私にとってはエレベーターのボタン同様の道具にすぎない。
おかしなトラブルにかかずりあうよりも、それを使って成果をだしたい。

そうなるとトラブルが起きない安定したバージョンでよくて、最新バージョンなんて関係ないのだ。

もっと範囲を広げてみよう。
たとえば経理業務などでも、税制の変化にはあまり関係しない部分がる。
そういうところってソフトウェアのバージョンをあげたからカネをくれ、と言われても嫌だと思う。
まぁ、21世紀の魔術のひとつサブスクリプションにしてしまえば、会社の会計上は困らないのでいいのかもしれない。
が、その関係ない新機能のせいで操作が変わるとユーザーはたまったもんじゃないだろう。
やはりバージョンアップなどしたくない分野がありそうだ。

関連記事

  1. DockerでLAMP(Laravelが動く)環境を作る

  2. CakePHP(3)

  3. 新世代コンピューターシンセサイザー

  4. カラーミーAPIを使う(発送データ作成)

  5. Windowsスクリプト

  6. お気に入りのエディター(SublimeText3)

  7. WooCommerceからB2Webへ(2)

  8. CakePHP(1)