フロイドの狂気日記

時は流れ、曲も終わった。もっと何か言えたのに。

PR

プログラミングの面白さとは車輪の再発明と見たり

PR

必要に駆られてElectronとjavascriptの勉強をしている。jsと言っても何のライブラリも通さないヴァニラjsという奴だ。スモールビジネスを拡大するにあたって、ソフトウェアが必要なことは知っていた。問題なのは作業だけではなく、それにともなう外注費用などが今より遥かに必要になる。迷っていたがついに動かざるをえないと思ってコーディングしている。

 

10年以上プログラミングしてきて今が一番楽しいな、と思えている。誰かの発注で納期が決まり、彼らのコントロール下の中での作業というのは全然おもしろくない。いざ自分が完全にコントロールできる状態でプログラミングをするとこれが驚くほど楽しい。ようするに手詰まり感が出てきたときにいかなるオプションを使っても良い、という自由こそが素晴らしい。

 

僕はプログラミング楽しい!って思うより、楽しくねえな、と思うほうが多かった。これは理由がはっきりしていて、仕事で仕方なくやっているからだ。もう一つは大量のライブラリの存在だと思う。

 

例えば日付を取得する、という行為一つをとってもどんな言語にもデフォルト関数があって、さらにフレームワークがデフォルトだと使いづらい部分を改良した小さいプログラムを用意していたりして、取得した値をobjectやjsonにしてくれたり、昨日の日付を取得するみたいなちょっとした計算もしてくれたりする。つまり僕がやることと言えば、書き方を検索していい感じにコピペするだけだ。一事が万事その繰り返しとなる。

 

もちろんそこにはエレガントさみたいなものもあるし、しっかりしたプログラマと適当な人の差は間違いなくある。そうなんだけど、うるう年を計算にいれたカレンダーの作り方、みたいなものは自分の頭で考える必要がなくなってしまって、大量の誰かが作った便利関数が使えるようになるファイル群をgithubから落とすなりしてきて、後はそのライブラリに自分の脳みそをあわせていくというのは、退屈なものだ。そこにも不具合があったり、作りたいものとの不整合があって、ライブラリの不自由さとの格闘になることは少なくない。

 

Appleのwebサイトみたいなデザインを作ろうとする。Appleiphone紹介ページにあるような、ここ何年かずっと流行っているデザインだ。でかい画像一枚が表示されて、スクロールするたびに中央に文字が浮かび上がって、さらにスクロールすると画像が切り替わり続けるというやつだ。あまりにも流行りすぎたから、そういうデザインにしてくれるCSSとjsのライブラリが作られているほどだ。URLをrequireすれば適用されますよ、みたいな。だが本当におもしろいのは、それを自分で一から作ることなんだな。画面に画像をまず置くとしても、ブラウザウィンドウサイズに合わせてキレイにリサイズするロジックを考えないといけない。次にスクロールするたびに文字を浮かび上がらせる処理ってなんだろうか?と考える。位置情報を取得したり、文字画像の位置を調整したり。

 

予算があって納期があって、プロジェクトマネージャーの好みがあって、会社の都合がある中で作るってのは、思ったより楽しくなくて、本当は自分だけの世界に引きこもって自分好みのプログラムを組めたら最高だ。

 

今僕はフルスタックフレームワークを使わないでソフトウェアを作っている。だからエラーハンドラとかディレクトリ構造から自分好みにコーディングしているわけなんだけど、やっぱりこれが一番楽しいなと思った。必要だと自分で気づいて自分で作る。これが醍醐味だったんだと思う。一番ミニマルな環境だから、ありとあらゆることは自分の手の中にある。納期が短いからプラグインを探そうとはならない。むしろそのようなプラグインが必要な設計そのものを勝手に変更していいのだ。なんせ一人で作っているから。誰かにコーディングの書き方で文句を言われることもない。

 

自分だけの好みの空間がここにはある。後は金になれば万事OKではあるのだが。