Go言語入門

社長:はぁ… っクション。

基盤:大魔王。

開発:昔は誰かがくしゃみをすると必ずその相の手が入りましたね。

基盤:朝方より暖かくなったと思いますが、現在、室温20.3度です。

社長:何か一枚羽織るとちょうど快適な感じになる気温ですね。

開発:ただ、今週いつからか既に、ちょっと手がかじかむ感じが始まっています。

経理:指先だけ出ている手袋とかってありますよね。掌のタコ対策にもなると思います。

基盤:ちょっとした暖房ならUSBファンヒーターとか無いですかね。手元だけなら1Wくらいで十分な気もしますが。

社長:咽喉の粘膜が乾くとヤバいと思います。

開発:お一人様用の加湿器を買いましょうか。部屋全体を加湿する必要は全然ないと思います。

経理:マスクをかけるという手段もありますね。花粉症対策にもなります。

社長:気持ちが悪いので却下。

開発:思うに、ヒーターを仕込んだマウスパッドがあれば良いのではないでしょうか?ほかほかマウスパッド。そもそもマウス自体が暖かくなるという手もあります。

社長:それは効率的ですね。

基盤:有線マウスにするか、マウスパッドからの非接触給電ていう形ですね。

社長:でも、もう一方の手は?

基盤:キーボードにヒーターを仕込むんじゃないですかね。

開発:そもそもマウスだけか片手だけで全てが操作できる状態が長時間継続できれば、もう片手は懐で温めるとかできますよね。

経理:ほかほかになるUSBリストレストがあると良さそうです。

基盤:というか、触ってみたら、MacMiniは今もかなり排熱してますね。あれの排気口を手元に誘致するというのはどうでしょう。

経理:粘膜が乾燥しそうです。

開発:排気口の前に濡れタオルか何か垂らして加湿器にすると良いと思います。昔エアコンの吹出口でやってましたが、一日に5リットル以上蒸発してました。

社長:細いホースで自作の給水路を作って蛇口から給水してましたね。まああのころは暖房に2万円掛かっても気にしないような生活スタイルでした。

開発:年をとるとヒートショックも気になります。

基盤:赤いちゃんちゃんことかどうですかね。NASAが開発して宇宙ステーションでも使ってる羽根のように軽い。

社長:アポロ13を思い出しますね。

開発:ベランダの太陽光を利用して室内に蓄熱するか蓄電する系は?

経理:もとがとれるかどうかですね。

社長:電気ファンヒータだとどうしても冬場1万円は行きますよね。かといって石油は面倒だから、ガスファンヒータかな。

開発:1ルームなら引き回しの距離も短くて簡単なんですけどね。

基盤:ガスホースを引き回すのは嫌なので、台所で沸かしたお湯を室内に持ってくるのが良いよいように思います。ついでに加湿もしちゃう。

社長:それだ!それで行きましょう。ガスで沸かしたお湯を社内に循環させて、必要なところに放熱器をつける。こたつもそれでやれますかね。湯たんぽみたいな。

開発:気をつけないと低温やけどしますよね。子供の頃にやった跡が消えません。

基盤:体温程度のお湯なら安全なのでは。

開発:ただ、室温の話は冬まで余裕がありますけど、手が冷たいのは早急に対策したいです。

経理:ほかほかUSBマウスパッドで検索… いくつかありますね。価格帯は2000円〜4000円です。消費電力10W程度。

基盤:暴走したプロセスより食わないですね。

開発:なにもキュートで無くても良いのですが。

社長:ハックション…

基盤:おっと、ただいまの室温、19.7度。

開発:充電式の懐炉があると良いと思います。

経路:これは2000円くらいでいろんな種類が売ってますね。5000mAh程度。8時間程度の持続。

社長:形状的にはマウスも懐炉みたいなもんですよね。懐に入れて胸の中で操作するマウス。

開発:そういえば昔、腕組みしたりポケットに手を突っ込んで操作できるキーボード付きマウスっていうのが夢でした。

社長:袋せりか袖の下みたいな。

基盤:指先にトラックボールですかね。

開発:8指以上同時に使えますからね。vi互換のUIをキーコマンドで操作する感じ。

社長:指ごとに別れた軍手状の手袋で、筋電センサーで動かすっていうのもあるんじゃないですかね。保温も出来て一石二鳥。

開発:まあ視線か念力で動かしたいところですが、精度が出なそうです。神経疲れそうですし。

基盤:そもそもスマホはかなり発熱しますから、あれを懐炉だと思えば良いようにも思います。

開発:となると課題は、ライトを切ってブラインドタッチで操作できるようにすることですね。

経理:あったかマウスパッドが喫緊の課題では無いかと。

社長:マウスに非接触給電するマウスパッドで、加熱機能あり、マウスもあったかくなって懐炉にも使えるというのが理想かと思います。

基盤:オプションで加湿機能も。

経理:そういうの、まだ売ってないと思います。USB 加熱で商品検索すると、指先の出てるUSB給電加熱の手袋が結構あります。1000円で、プライム対象です。

開発:非接触給電なら良いのに。

社長:つけ心地ががどうかですが、効率面では一番理にかなってる気はしますね。じゃそれを試しに買ってみましょう。

経理:ではストライプブラウンのを。見積書は不要ですよね?注文をぽちっ。明日午前中に届くそうです。

開発:楽しみですね。

基盤:しかしこれ、カスタマーレビュー、最低ですね。いわゆる粗悪品みたいな。

社長:まあ、お試しお試し。

* * *

開発:ふぁ… ああ、また暗くなってしまいました。

社長:お昼は久しぶりにさたぽんに行ったんですが、オヒサシブリネーとか言われてしまいました。

基盤:おばちゃん、そういう日本語は知ってるんですねw

開発:肌寒いですね。

社長:はじめてウィンドブレーカーを着て外出したのですが、ちょうど良かったです。

開発:Window Breaker なら何かに使えそうな名前ですね。石破みたいな。

社長:Stone Breaker は RDB の大御所でしたね。

開発:ブラウザ間の壁を破るっていうのが良いかもですね。

基盤:こういうやつですね。

基盤:さっき見たら、南向きのもう一つの部屋のガラス戸が空けっぱなしになってました。現在の室温は少し上がって19.4度。どうも人間が活動すると零コンマ何度か上昇するようにも見えます。

開発:私達が部屋を暖めてるってことですかw

* * *

社長:ところで、昨日のWindowsへの移植の時、一度Go言語をちゃんと勉強してみたらどうかなと思いました。

基盤:スマホの使い方とか一度も勉強した事ないですけどね。

開発:まあ、Hello World 以降、オンデマンドで読みかじりしかしてないですからね。結局、ほぼCだけど、可変長データが簡単に扱える、ネット系のライブラリは充実気味、くらいの認識です。

開発:その点、JavaScriptはかっ飛んでますね。HTML、CSSとの関係も面白いと思います。

社長:専門に特化した複数の言語の相互関係が面白いんでしょね。

開発:データ記述言語とアルゴリズム記述言語は別にあって組み合わせられるのが良いのだと思います。

基盤:ガス台が何かピコピコ行ってますが。

開発:ああ、大家さんにもらったクリを茹でてたんですが、空焚き状態になったんですね。温度センサーで止まった模様。

基盤:あの機能が無かったら、何度か燃やしてたかもですね。

* * *

開発:それで、Goについての簡潔な紹介としては、日本語版のWikiが良いなと思いました。言語としての特徴を知るのに、簡潔な実例付きで。

基盤:あのマスコットはやはりGopherだったんですね。リスのような顔をしていてモグラのような生活をしていると。「地下に広大なトンネルを彫ることで知られている」「網目状につながったトンネルと巣穴を掘り」「繁殖期以外は単独生活者で、縄張りを持つ」「最長寿命は5年である」。

社長:めぐる季節を二三回しか経験できないのは可愛そうですね。

基盤:ほとんど地下生活なので、季節感はあまり知らないかも知れません。

社長:ネズミ目(齧歯目)、ビーバー下目、ホリネズミ科、ですか。「目は小さく」。Goのマスコットとは違う種ですかね。

開発:英語版のWikiにはイントロ部分に、JavaScriptに変換するGopherJSというのがあるってありますね。GCCのフロントエンドという処理系もあるみたいなので、それならCとの組み合わせがもっと簡単かなと思います。

社長:同じWikipediaでも日本語版と英語版の作者ではまるで視点が違うのが面白いですね。英語版はタイムラインを軸に、どういう機能があるかわかるのが良いと思います。

開発:readabilityがってあるんですが、セミコロンやカッコを省略できる事でしょうかね?Cで書きなれてると無い方が不安だし、JavaScriptでは悪習とされてるし、並行して書いていると混乱するんですが。いずれセミコロンフル装備に書き直そうと思っているくらいです。

社長:人間の目にも冗長性は必要なんだと思います。

基盤:で、結局Goの魅力って何なんでしょう?

開発:わたし的には、ケン・トンプソンが原型を設計してGoogleが実装・展開してる事ですね。

社長:そろそろボウリングの試合に向けて心の準備をしたいと思います。

* * *

社長:今日は久しぶりに余裕をもって出かけられます。

開発:それが吉と出るか凶と出るか。

基盤:今日の目標は。

社長:まあボウリングのパーは200ですから。でも凹んだ時に170は切らないというほうが重要。最近はハンデが減ってしまったのでチームのために180がノルマと考えています。

開発:今日も途中でガス欠にならないように。

社長:勝負メシに梅園セブンのハムカツサンドを食べていきます。おっと、爪が少し伸びてるので切らなきゃ。ぷちぷち。

開発:まだ30分くらいありますね。

基盤:早めに出てって練習ボールするとか。

社長:最近はもう、試合で投げるだけでおなか一杯です。

開発:昔は一日40Gとか平気で投げましたけどね。

経理:それっていったいいくらかかるんでしょうか?

* * *

開発:そういえば昨日、syscallパッケージの機能を一部差し替えるの時に思ったのですが。syscall.XXX の syscall はクラスと言うかタイプの名前ではなくて空間の名前なので、XXXの種類によって差し替えとか追加が一律に出来ないという厄介さというか。美しくないなと思っています。つまり、変数とメソッドと定数なんですが。

社長:昔ながらの物理的なファイルという単位に束縛されたパッケージって単位はいかがなものかという気はしますね。パッケージ内にインラインでパッケージが書ければよいのに。

開発:ファイルという概念というか単位は確立しきってますからねえ。

基盤:でも、ファイルシステムを差し替えて物理的には一つのファイルを複数のファイルのようにGoの処理系に見せることはできますよね。何が物理的な実体とか単位なのかって事になると思いますが。

開発:まあ、動的リンクで open / read の差し替えくらいなものですね。でも、それならそもそも、リモートファイルシステムから取ってくるのを前提にしてくれたほうが良いですね。HTML, CSS, JavaScript / HTTPみたいに。サーバ側でリソースを切り出すのが簡単です。

社長:Cみたいにプリプロセッサでマクロが書けると良いのですが。

開発:自分でプリプロセッサをかぶせるのは自由ですけどね。gsh.go みたいに単一ファイルなら簡単です。分割されてる場合には、go の run とか build がファイルを開く前にそれを呼ぶように出来ると良いのかなと思います。

基盤:それこそ open システムコールを差し替えるだけで良いのではないかと。

社長:おっと時間です。行ってきます。

* * *

社長:ただいま。

基盤:どうでした?

社長:ハムカツサンドは売り切れでした。(^-^;

-- 2020-1019 SatoxITS