匠の相駕籠

ソフトウェア開発会社の日常とオピニオン - メメントモリ公式ブログ

新しい技術を勉強している話

今日は朝から新しい技術の勉強をしていた。

ちょっとしたWebアプリケーション(ブラウザで使えるWebシステムのようなもの)を構築する必要があり、どのような方法でやろうかなと考えていた。今まで使ったことがある技術でやるのもいいのだが、サーバーを構築したり、メンテナンスにもコストがかかる。

大規模なものではなく、ほんの数人が使える程度のシステムでよいのだ。コストも手間も最小限に抑えたかった。

 

クラウド技術には代表的なものに、Amazon Web Services や Google Cloud Platform と呼ばれるものがある。どちらも非常にテクノロジーの進歩が早く、矢継ぎ早に新サービスがリリースされている。

いろいろ調べてみた結果、Google Cloud Platform の App Engine というのを使うことにした。これを使うことで、Webアプリケーションの構築とリリースは、とても簡単になりそうだった。言語は、Go 言語というのを使うことにした。

 

Go 言語ははじめて使うことになるが、プログラマーというのは大抵、新しい言語を覚えることにあまり抵抗がない。他のプログラミング言語で培ったカンみたいなものを、大抵の場合はそのまま持ち込むことができる。

もちろん、深く使い込んでいくうちに、言語特有のいろいろな問題に直面することにはなるが、いまどきプログラミング言語を固定していても、スピード感を失ってしまうと思うようになった。

 

App Engine と Go 言語を、ほんの少しだけ触ってみたが、これはクラウドを前提として設計されているようにみえるため、アプリケーションをリリースするまでの手間が、とても少なく済むようになっている。

ほんのすこしのコマンドを叩くだけで、アプリケーションのリリースができてしまう。サーバーを特別に構築する必要もなく、料金もアプリケーションを使った分だけ請求される仕組みのようだ。

 

こういう新しい技術、とくに特定のベンダー(Amazon や Google など)が提供しているプラットフォームを使ってアプリケーションを作ると、その開発したものを、別のところに移動しようとしても、移動ができなくなる。

これを、私たちはこれをベンダーロックインと呼んで、忌み嫌っている。私も基本的には、それを避けてきた。

 

だけど、それを避けることで、折角非常に便利なサービスがあっても活用できないということにもなってしまう。

私は色々考えたけれど、ベンダーロックインを受け入れることにした。

 

物を作ること、それを人に提供すること。

スピードが重要になるケースはある。

全ての業務を、こういったサービスでカバーしようとは考えていないが、使えるものは使っていこうと思う。

 

新しいことを覚えていくのがしんどいという話もあるが、ソフトウェア技術者は常に新しいことを覚えていかなければ、時代にあっという間に流されてしまう。

新鮮なものを、もっと気軽に取り入れていく姿勢を持とうと思う。