2020.10.05
so

生涯プログラミング

こんにちは、soです。

今は主にインフラ周りの仕事をやっているのですが、元々コンピュータの世界に興味を持ったのは、プログラミング(=ソフトウェアを作ること)でした。

当時はまだ中学生だったので、仕事というものを知りませんでしたし、コンピュータで仕事をするなんて全く想像もつきませんでしたが、唯一知っていたのはゲーム業界。今はゲームも制作規模が巨大になり、完全に組織・分業の世界になっていますが、当時のゲーム業界の花形はプログラマー。パソコンが持っている性能を余すところなく引き出すプロの技を見て、自分もゲームを作りたい!と憧れたものです。

結局ゲーム業界で仕事をすることはありませんでしたが、IT業界に入ってからもプログラミングは仕事でも趣味でも楽しんで取り組んでいました。

プログラミングにおける私の楽しみ方としては「出来るだけコードは後で書く」ということがあります。ソフトウェアの作成には、要件定義→設計→実装→テスト、という大まかな流れがあるのですが、私の場合は最初の2工程がメインで、そこを楽しみにしています。頭の中で組み立てたものをその通りに実装して、テストが一発で通ると、すごく達成感を感じたりします。

プログラミングしたもので思い出深いのは、携帯電話でアプリケーションを動作させることが出来る様になった時。僅か10KBとか30KBといった非常に小さいサイズながら、携帯電話の小さな画面でJavaで作ったアプリを動かすことが出来たのです。

中学生の頃に触っていたパソコンは8ビットで、メモリも64KBという非力なものだったのですが、その分機能やリソースのすべてを掌握してソフトを作ることを楽しめました。携帯電話のJavaアプリケーションはまさにそれと同じで、リソースが厳しいという制限があることでプログラミング技術が要求されて、逆に面白かったのです。

その内、アプリを作ってほしいという仕事が入ってくる様になりました。
ゲーム系、ツール系など色々なものを作りましたが、ある時海外の携帯電話で動作する日本語対応のコンテンツブラウザを作って欲しいという依頼が来ました。海外の携帯電話ですから当然日本語の機能はありませんし、日本語の入力等もできません。
そこで、日本語のフォントデータを作って、かな漢字変換機能やメール送受信機能を実装して、海外の携帯電話でも日本語でコンテンツを見たり、日本語メールの送受信ができるアプリを実装してリリースしました。少ないメモリの中でデータの圧縮等も駆使しながら、実用的な速度で動作させることができました。

並ぶものはこの世に存在しない!という程に結構な自信作だったのですが、ある時「海外で似たアプリがあるよ」という話を聞いて見てみたら、確かによく似ています。というか、同じなのです。

そこでゴニョゴニョして確認してみると、私が作ったアプリを一部だけ変えてリリースしていることが分かりました。ビルド時の設定にも依るのですが、Javaのバイトコードは元のソースコードを復元することが技術的に可能なので、どうやらこっそり復元して文字等を一部変えてリリースしていた様でした。復元できない様な対策はまだしていなかったので「やられたな~」と思いつつも、同じものを実装することが出来ずに盗用したのだろう、と少し誇らしい(?)気持ちになったのを覚えています。

最近、非常に小さい規模ですが久しぶりに仕事でプログラミングをして、楽しさを少し思い出しました。
新型コロナウィルスの影響もあり、通勤等がなくなった分隙間時間を作り易くなっているので、久しぶりに個人プロジェクトをやってみたいな~と思います。

so

一覧に戻る