愚かなハッカーたれ、利口なエンジニアよりも

地方でフリーでプログラミングスキルで生きていく

車通勤から電車通勤にして通勤中に読書の習慣をつけた時に1年で得られる差

車に乗っているとハンドルを握っているので読書はできない。職場まで車通勤するということは、たいてい30分以上かかる距離でしょう。なら往復1時間。

月20日通勤するとして1年で、1ヶ月20時間 x 12ヶ月 = 240時間。

www.lifehacker.jp

平均的な小説の総語数は、6万~10万語です。仮にあなたの読書スピードが中間レベルの1分間300語で、読もうとしている小説が中間レベルの8万語だとすれば、5時間以内に読破できることになります。

ということなので1冊読むのにかかる時間を5時間とします。

240 / 5時間 = 48冊。

1年で48冊。結構、読めますね・・・電車で30分通勤してた時もあったけど、こんなに読めたとは・・・でも満員電車で席に座れないこともありますからね。

最近はiPhoneKindleアプリに読み上げ機能もあるので、イヤホンで聞くのもいいかもしれない。だったら車通勤でもいいのか(笑)

まだ動的型付け言語で消耗してるの?

最近、Swift、Kotlin、Goでプログラムを書いていますが、だんだんRubyのような動的型付け言語で開発するのは精神的に辛くなってきたと感じる今日このごろ。

アプリ開発はiOSObjective-CAndroidJavaで、最初からコンパイルありきの静的型付け言語での開発が前提だった。これらの言語は今見れば古臭く洗練されているとは言いがたい。回りくどい書き方を強要され、プログラミングを書くコストは高かった。それに比べるとサーバーサイドの開発は、Ruby + Railsで楽で良いという印象だった。

しかし、SwiftやKotlinの登場により状況は変わった。非常に書きやすくなり、アプリ開発でプログラムを書くコストはかなり下がった。そして、相対的にウェブアプリをRuby + Railsで書くことのコストを高く感じるようになったのだ。

まず、苦痛なのは構文エラーや未定義の変数・メソッドとの戦い。実行してそのコードの実行を試みるまでわからない。だから、

  • 実行
  • 未定義エラー(たいていタイポだが)
  • 修正
  • 実行

のサイクルを繰り返すことになる。だからきちんとテストを書けということなのだろうが、静的型付け言語よりもテストを書くコストが上乗せされているように感じるのは気のせいだろうか?おじさんプログラマには時間がないから、テストはロジカルにクリティカルなところに絞りたいのだ。

静的型付け言語ならコンパイルすれば、構文エラー、未定義エラーは自動検出&複数一括で表示してくれる。あとはまとめてバリバリ取るだけだ。そして実行できる段階では、これらのエラーは無いことが保証されている。今さらながら、こういったことがありがたく思えてきた。

それにやっぱり変数も厳密に型定義を必要とする方がいい。これはコストではない。むしろ変数になんでも入る動的型付け言語の方に書くコストがあると思う。数値だと思ったら文字列だったり、文字列かと思ったらシンボルだったり。そして、to_iしたりto_sしたり。

メソッドの引数にどんな型が渡されるかわからないから、コメントに引数の型が何であるべきか書いたり、意図しない型が渡ってきたら例外を投げたりする。不毛な作業である。静的型付け言語ならメソッドを宣言する時に型定義するから、それらを書く必要はない。

そして何より困るのがリファクタリングである。プログラムはある程度の規模になったら、リファクタリングしたくなるものだ。私はクラスやメソッドの名前が気に食わなくなって変更することはしょっちゅうある。

KotlinやGoならIDEリファクタリング機能を使えば、確実に間違いなく名前変更できる。同名の変数やクラスがあっても別物は別と判別してくれ、意図しないところが書き換わったりしない。Xcodeは現状、Swiftのリファクタリング機能はないが、それでも名前変更をしたら、古い名前で参照してる箇所はコンパイルエラーとなるから確実に修正できる。

動的型付け言語だとこうはいかない。エディタで単なるテキスト置換しようものなら、実体が異なる同名変数や同名クラスも置換してしまう。だから1つずつ間違わないように見ていかなければならない。

名前を変えるだけなら、そこまで苦労はないが、クラス設計を大きく変える時は大変だ。静的型付け言語ならリファクタリングの途中でコンパイラがエラーを吐きまくるかもしれないが、逆に言うとコンパイラが手伝ってくれているのだ。

これに対してコンパイラの助けがない動的型付け言語では、プログラマが最高レベルにまで精神統一してリファクタリングに励む必要がある。シナプスがところどころ断線しているおじさんプログラマに無茶は言わないで欲しい。

学習コストの低さと手軽に書ける利便性。しかし、規模が大きくなるにつれ、その利便性を取ったことへの代償が大きくなっていく。最近、動的型付け言語に対して、そんな風に思うようになってきた。SwiftやKotlinはとても書きやすく、モダンな静的型付け言語は従来のそれと動的型付け言語にあった壁を崩したように思う。そして改めて静的型付け言語の堅牢さが身に沁みるのである。

そんなことを思った1年前。サーバーサイドも静的型付け言語で行こうと、1つの開発でGoを選んだ。確かにRailsに比べると至れり尽くせりではない。しかしそれなりの規模になった今、リファクタリングをする時に、静的型付け言語のGoを選んで良かったと思える。

でもやっぱり例外は欲しい・・・Scalaのが良かったのかな・・・。Rubyはツールスクリプト書くのに今も重宝してます。

誰だってインフルエンサーになれる

インフルエンサー(情報伝達影響力の大きい人)というと、フォロワーを何万と抱えるネットの有名人を想像するだろう。確かに彼らの言葉や情報は多くの人に影響を与え、実際に社会を動かすかもしれない。

けれど、自分個人で振り返ってみた時、自分の考え方や人生に大きな影響を与えた言葉や情報って、必ずしも有名人が発したものではないはずだ。親だったり先生だったり友達だったり上司だったり。読んだ本の内容の場合だってある。その場合、著者の顔も知らなければ名前を覚えてないこともあるだろう。

そういう視点で見たら、特に有名でも何でもない自分の言葉だって、ネットの回線の向こうにいる見知らぬ誰かに刺さることだってあるだろう。だから思ったことは、匿名でもいいからまず書いてみればといいと思う。

セルフブランディングは関係ない。すべては繋がっていて相互に影響しあって世界は成り立っているのだ。みんな一部であり全てである。

 

仕事は修行であるという仏教の話

仕事とは修行であるという見出しの記事がタイムラインに流れてきた。とても良い仏教的視点の仕事観でした。

note.mu

「仕事というのは、修行である」という見出しを見ると、仕事とは苦しみに耐えるものと捉えがちである。でも真の仏教的視点では修行=苦行ではないし、仕事も苦行ではないのだ。

仕事の見返りや仕事に対する毀誉褒貶に一喜一憂しないこと。過去や未来のことに思考をうっかりはまり込ませないこと。
心を平静にケアしていくこと。これが修行であるのです。

ブッダは断食などさんざん苦行をやって、あれ?これ意味なくない?って樹の下でおかゆ食べたら、悟りを開いたのだ(笑) そして自分のための苦行をやめて、人々に真理を説くことを修行とした。ブッダの真理を説くというライフワークは修行であり仕事だったのだ。

正しい理解に努め誠実さをもって人々にインフルエンスしていく。富や名声、自己承認欲求を満たすことを脇において、人や社会のためになることを仕事の目的に切り替えると、心は平穏になるだろう。

 

VALUが普及すると、若者にお金が回り、年金問題も解決したりして

VALUのように個人への直接投資でリターンが得られることが広く認識されるようになると、若者へもっとお金が回るようになるかもしれない。大きな値上がり益が期待できるのは、急激な成長が期待できる若者だからだ。

VALUで1個人に投資することは、証券市場で企業の1銘柄を買うのと同じくリスクがある。投資した企業の業績が悪化すると暴落して、大きな損失を被ることになるからだ。だから複数の銘柄へ投資してリスクを分散する分散投資が推奨される。

VALUも同じで1個人に投資するのではなく、複数の人に分散投資した方がリスクを下げられる。今は安く買えて値上がり益が期待できる若者に分散投資するのは良い選択かもしれない。もしそうする人が増えれば、お金がある年配者から若者へお金が回る流れになる。

証券市場では分散投資を突き詰めた結果、世界中の株式を抱き合わせ販売したグローバルインデックスファンドという金融商品もある。世界経済は浮き沈みあれど、人類の成長は長期で見れば右肩上がりであり、長期投資ではグローバルインデックスファンドが安定して利益を上げられると言われる。

VALUも有名な人から将来期待できる若者まで色々な人の個人銘柄を抱き合わせたグローバルインデックスファンドのようなものもできるかもしれない。こういった個人銘柄の抱き合わせ金融商品が一般化すると、老後年金の基盤として積立投資対象になるかもしれない。

もしそのようになれば、若者と高齢者どちらかが犠牲になるような仕組みから、双方に利益がある仕組みへ移行できるかもしれない。

 

 

陰と陽のバランス

通っているヨガの先生が陰と陽のバランスが大事という話をしていた。身体を動かす系の陽のヨガばかりやっていると、気持ちが陽に偏りがちになり、排他的になることもある。だから同じポーズを取り続ける陰のヨガもやってバランスを取ることも大事と。なるほど、納得。

行動力はあるけど何かの思想に取り憑かれていて排他的になったり、理屈ばかりで考えすぎだ!と言って論理性を無視する人。逆に行動する前にあれこれ考えすぎて動けなくなり、日々のルーチンから抜け出せなくなる人もいる。

行動したら立ち止まって考えてみる。そして、論理性を持って次の行動を補正していく。そうやって柔軟性を得ていくものだと思う。行動ばかりで論理性を欠いてはいけないし、論理性ばかりで愚直な行動をしなくなるのもよくない。

ものを作ることも、まずは理屈抜きに色々作ってみてから、うまくいったこと、いかなかったことを論理的に分析する。そして次に作るものへ活かしていく。これも作る=陽、分析=陰みたいなものかも。

私の日常はデスクワークで基本は陰だ。だから無意識に遠出して飲み歩いたり陽のバランスを取っているのかもしれない(笑)

今話題のVALUで積立投資してみる

ネット有名人のVALUはすでに高騰していて、1VAL10万以上はする人ばかりだ。毎月10万定期積立するの厳しいしリスキーである。VALUというサービス自体どうなるかわからないし。

それにVALUで1ユーザーに投資するって、証券市場で企業の個別銘柄に投資するよりはるかにリスキー。ユーザーが未成年とごにょって逮捕とか、不慮の事故でお亡くなりになられることもありうる。そうすれば価値はゼロになるだろう。縁起でもない話だけど、こういうリスクは考慮して投資するべきである。

投資の世界で損失リスクを下げる王道、積立投資。毎月決まった金額で銘柄を買い続けることによるドルコスト平均法効果。VALUでも積立投資をやりたいと思った。

先に書いたように有名人は毎月10万以上するから対象外。そこそこ有名人で有意義なことをやっていそうな人なら、1VAL=数百円〜数千円で買える。こういう人たちを何人かピックアップして、毎月1万円を限度として分散投資していこうかと思う。

仮に1年後VALUEというサービス自体がネットの藻屑になられても、10万損するだけなので、いい夢見させてもらったで終わりである。宝くじみたいなものだと思えばいい。でも宝くじ買うよりも、証券市場で1株10円とかのボロ株買うよりも、夢があるかもしれない。

※ 投資は自己責任で