スクリプト言語の安心感 [日記]
仕事では 10年以上 Python しか書いていない。
・・・が先日、Go言語のコードをちょっとだけ修正することがあった。
コンパイルして、本番環境に実行バイナリをコピーして開始する時に、ちょっとだけ
「今まで動いていた実行バイナリ、俺の思っているやつだよな・・・」
と心配になった。
ほとんど書き換えられることがない想定のものだったので、
今、動いているもののソースが、 git リポジトリの自分の修正前のリビジョンをビルドしたものである絶対の自信がない。
スクリプト言語では、そこにあるソースコードの処理が動いていることがわかって、これって安心感のあることなんだなぁ、と感じた。
20年以上前には、自分も C や C++ でコードを書いていたが、
Webシステムではなかったし、スクラッチから書いていて、自分が一番よく知っていたから、そういう不安はなかった。
昔は、Webシステムでもなかったし、プロジェクトが完了したら動くバイナリを実行するだけで、
それを改修するという発想がなく、やるなら作り直しってことで、先を考えてなかったのかもしれない。
実際、次期バージョンが1から企画開発されて、僕が書いたものはそのまま自然消滅的に使われなくなった可能性は高い。
(もしくは、次のバージョンなしで使われなくなったらおしまい)
考えてみたら、C や C++ で書いていた頃のあれらは、最後に自分がコンパイルして納品した後、
(ソースコードは付けていたが)
プロジェクトは完了となって、あれを引き継ぐことになった人がいたとしたら、コンパイルできるようにできていたんだろうか?
やってたのかもしれないが、お客さんがコンパイルしていた記憶がない。
しかし、21世紀の今は、継続的に改善や機能追加をしていくことが当たり前になった。
よく、 Go や Rust は、
- 型が定義されているので、発生する不具合の一部を先にコンパイルエラーとして検知している
- 実行速度が速い
なんてことを言われるが、スクリプト言語の、「今、そこにソースコードがある」メリットはあまり言われないな。
今どきは、コンパイル言語でも、ビルド&デプロイを自動化してるから大丈夫。そうなってないほうが悪い。
・・・という理屈はわかるが、世の中、そんなに完璧に進むもんでもないと思うよ。
・・・が先日、Go言語のコードをちょっとだけ修正することがあった。
コンパイルして、本番環境に実行バイナリをコピーして開始する時に、ちょっとだけ
「今まで動いていた実行バイナリ、俺の思っているやつだよな・・・」
と心配になった。
ほとんど書き換えられることがない想定のものだったので、
今、動いているもののソースが、 git リポジトリの自分の修正前のリビジョンをビルドしたものである絶対の自信がない。
スクリプト言語では、そこにあるソースコードの処理が動いていることがわかって、これって安心感のあることなんだなぁ、と感じた。
20年以上前には、自分も C や C++ でコードを書いていたが、
Webシステムではなかったし、スクラッチから書いていて、自分が一番よく知っていたから、そういう不安はなかった。
昔は、Webシステムでもなかったし、プロジェクトが完了したら動くバイナリを実行するだけで、
それを改修するという発想がなく、やるなら作り直しってことで、先を考えてなかったのかもしれない。
実際、次期バージョンが1から企画開発されて、僕が書いたものはそのまま自然消滅的に使われなくなった可能性は高い。
(もしくは、次のバージョンなしで使われなくなったらおしまい)
考えてみたら、C や C++ で書いていた頃のあれらは、最後に自分がコンパイルして納品した後、
(ソースコードは付けていたが)
プロジェクトは完了となって、あれを引き継ぐことになった人がいたとしたら、コンパイルできるようにできていたんだろうか?
やってたのかもしれないが、お客さんがコンパイルしていた記憶がない。
しかし、21世紀の今は、継続的に改善や機能追加をしていくことが当たり前になった。
よく、 Go や Rust は、
- 型が定義されているので、発生する不具合の一部を先にコンパイルエラーとして検知している
- 実行速度が速い
なんてことを言われるが、スクリプト言語の、「今、そこにソースコードがある」メリットはあまり言われないな。
今どきは、コンパイル言語でも、ビルド&デプロイを自動化してるから大丈夫。そうなってないほうが悪い。
・・・という理屈はわかるが、世の中、そんなに完璧に進むもんでもないと思うよ。
コメント 0