2024/12/13(金)おじさんがGoを学ぶ3

Rustに片足程度入門した事があるけど、GoはRustより好きかも。

Rustは厳しい。厳しさにC#と似た感じがある。 Goはゆるい。

Goも書きっぷりに差が出る言語ではある。なのでベストプラクティスというか、マナー的なものを学ぶ姿勢が大事そう。動けば正義、という姿勢だといくらでも汚く書ける。

RustはC++やJavaの先にあるものという感じ。 GoはC++ではない方向に進化したCという感じ。※個人の感想です

2024/12/06(金)おじさんがGoを学ぶ2

インターフェース

シグネチャが合致していれば明示的に宣言や定義がなくてもいい。シグネチャは返り値や引数の型の事。これが一致していればシグネチャが合致する、という。

意図があるなら明示したほうが良いよね。明示せずにたまたま同じデータ構造だから突っ込め!みたいなのはどうなの。合成した結果このインタフェースに合致したから使える、とか怖い。

インターフェースを受け取り構造体を返す は良い哲学だと思う。そらそうだ、とも言えるけど明文化する事は大事。ロー出しハイ受けみたいなものか。

X11のクラスのselfをマクロで隠してるような感じ?と思っていたらほんとにそんな感じ?かと思ったけどそれもいまいち違うかな。クラスというものはないと考えたほうが良さそう。

2024/12/02(月)Rakuten Kobo

楽天Koboで書籍を買ってみたりアプリを入れてみたりした。
色付きe-inkに興味津々。

まだ購入したりインポートした書籍の数も少ないのでこの先はわからないけど感想。

いいな、と思ったのが、EPUBリーダーとして使える点。
オライリーの書籍は他の電子書籍ストアで販売されていない物が多いけど、EPUBとPDFでダウンロードできる。タブレットならPDFでもいいんだけど、微妙なサイズ感の違いや扱いにくさを感じる事がある。EPUBならそのあたりは吸収してくれるのでEPUBが扱えるならその方が良い。

kindle アプリはローカルのファイルを開くのがめんどくさい。ファイルを開くときにkindleを指定して開けるけど、kindleを開いたときにそのファイルを選ぶことはできない。インポートするには send to kindle でメールで送るとか amazon のサイトからゴニョゴニョする必要がある。
Kobo だとファイルを開くときに Kobo を選べばアプリケーションにインポートしてくれる。

EPUB のレンダリングも上手い気がする。今のところの感触では。

技術書を読みたいという需要には Kobo がちょっと上という気がしている。

ライブラリの分類もできてる。ここはまだかなり不明だけど、kindle よりよくできていそう。
kindle はいくつかの本が一つの続巻としてまとまっていなかったりする。雑誌は一切まとまらないのがめちゃ不満。

読み上げ機能はない。
kindle はそれ自体の読み上げはいまいち、alexa に読ませると若干マシだけどスマホでバックグラウンドに回せない等欠点はある。今のところ高いお金を払って audible を使うしかないが、あるにはあるので。


サービスの存続は...流石に大丈夫だよね?

2024/11/29(金)おじさんがgolangを学ぶ

プログラムはなんとなくできるけど、ちゃんとやったのは C, Perl, shell というおじさん。

オブジェクト指向だったりパラダイム的なもの

  • 複数の返り値を返せる
  • エラーの補足がCほど原始的ではないが例外を強制する言語とも違う
  • クラスではなくレシーバ
  • 可変長引数の書き方 ("..." っていうやつ)
  • go routine と context

文化的なもの

  • 変数はキャメルケース、関数はスネークケースを使うようだ
  • 戻り値や引数の型とインターフェースと構造体

実装は全然違うと思うけど、X11 くらいのオブジェクト指向を言語仕様にまとめた感じ。C#のガチガチに縛ってくる感じではない気配。(個人の印象です)

返り値や仮引数の宣言が今まで見たことがない順番になってる。それが根本的に良いということなのかレシーバの宣言のために組み替えたのか。そういうものだと受け入れられて、混乱するわけではない。

Rust をちょっとかじったらメモリ管理を自分でやらされたけど、go はそこを意識しなくていいので書いていて安心。

未知の構文や考え方はあるけど、今のところクセはない印象。