やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

「楽したい→ツールやフレームワーク使う→環境構築や学習コスト増大→一向に進まず苦」のネガティブサイクル

に陥りつつあると気づいた。むしろ楽から遠ざかっていく。

前回まで

Python学習したい。修正コストを減らして楽しく新規開発する時間を増やすため。学習したことは記録して検索できるようにしたい。サイト構築を検討する。

  1. 静的サイトジェネレータ
    • ブログしか作れない
    • ブログ以外も作れるがフレームワークの全容を学習しないと思い通りのものが作れない
      • Python学習どころではなくなる
  2. AsciiDoctor
    • いい感じで書けるが、HTMLを直接書くことができない
      • たとえばテンプレートにDBからデータを流して大量生産などができない
  3. HTMLテンプレートエンジン(pug)
    • include, extends, mixinなどでHTMLをDRYに書きやすい
      • 変更部分のデータを渡すところが弱い
        • 最も複雑にできるのはmixinだが、それでも直列データしか渡せない
          • ('param1', 'param2', 'param3', ...)
        • HTMLはツリー構造なので、jsでいうobject, pythonでいうdict型で渡したい

どうせHTMLなんて文字列だし、Pythonスクリプトで書いたほうが早くね?という気がしてきた。

フレームワークは甘い罠?

フレームワークで楽をしようとすると、逆にコストがかさんで負荷が高くなることが見えてきた。

pugならpugの構文さえ覚えればいいと思っていた。しかし、node.jsのインストール、周辺ライブラリ、起動方法など、もろもろの知識がかなり必要になる。とくに、ruby, python, node.jsなど複数の実行エンジンはそれぞれ異なる成り立ちで、異なる文脈、異なる構文を持っている。それらを把握せねば利用すら難しい。インストールにはOSも関わってきたり、コンパイル環境を整えるなどの余計な作業まで強いられる。パッケージ管理ツールなどが完璧にこなしてくれることのほうが少ない印象。ググって調査する羽目に。

もはや手軽な手段として使えるものではない。それ自体の学習を目的にしないと使いこなすことすら困難な代物。

所感

楽するために楽でないことをして楽になれる状況を作ろうとする。矛盾している。ネガティブからポジティブへ逆転するまでの過程でくじけてしまう。うまいこと目的と現状把握をしてバランスを取りたい。