Software Design の2023年5月号について、
- ざっくり内容紹介
- 個人的に気になった記事やポイント
をまとめている記事です。
サマリー記事の一覧はこちら。
特集①:Python x 数学ブートキャンプ
- ソフトウェアエンジニアリングの観点としては(個人的に)どうしても興味を持てない内容なのでほぼ読み飛ばしてしまった
- もし数学的な計算をプログラムで扱うときがあるならリファレンス的に思い出して見てみるのはよさそうに思えた
- それこそ仮想通貨bot書くならめちゃくちゃ有意義になりそうなんだけど、最近Pythonは意図的にやめてるのもあって葛藤
- 逆に他のプログラミング言語における数学的計算についてのまとめとかあったらぜひ読みたかった(結局ソフトウェア側脳)
特集②:WebAssemblyの可能性を探る
- こちらはちょっと楽しみにしてた
- WebAssemblyでできること、できないこと
- 2019年、JS以外で唯一ブラウザで動くプログラミング言語として標準化
- プログラミング言語という扱いなのね
- WebAssemblyとWasmは同じもののことでいいらしい
- wasmへのコンパイルはRustのほかにC/C++がメイン、ほかがダメな理由は、後述するファイルサイズの件でランタイムライブラリがでかくなりやすいから
- ネイティブ実行ではなく仮想マシンを実行環境とするので、特定のCPUなどの専用ハードウェアはない、ここはC/C++/Rustから持たれるイメージと大きく違うところ
- 仮想マシンはWasmランタイムと呼ばれ、ブラウザに組み込まれているものが代表
- そのほかにも一応いくつか種類はあるらしい
- 組み込み関数はない
- ブラウザ内におけるJSのような非常に危ない扱いがなされないよう、サンドボックスという形で多くの制限(あまり不便ではなさそうだけど)によって高いセキュリティが実現されている
- ぶっちゃけJSと比較してぶっとんで速いというわけではない
- もちろんやることによる
- 最近はJSもかなり速いしね(特にブラウザの最適化が凄まじい)
- これは結構イメージしていたのだけど、わりと正しかった
- JS側とのやりとりコスト
- ファイルサイズは意外と小さくないのも注意
- ランタイムライブラリも入ってる
- 実例
- Figmaの話がおもしろい。もともとはC++で書いたデスクトップアプリをWasmの前進であるasm.jsにコンパイルして動かしていた。でもこれをWasm自体に移植し、asm.jsがまさに課題と思ってWasmになった初期ロード時間が見事1/3になったとのこと
- Docker、Kubernetes
- 高セキュリティでポータビリティがあるという意味で、もはやブラウザうんぬんという感じではなくなっているのかな。
- 2019年、JS以外で唯一ブラウザで動くプログラミング言語として標準化
Extra Feature
- ソフトウェアのセキュリティ&品質管理の新要件SBOM
- Software Bill Of Materials
- 定義は、「ソフトウェアコンポーネントやそれらの依存関係の情報も含めた、機会処理可能なインベントリーです」
- 現実は、「あるソフトウェアについて依存関係を含めた構造を調べ、特定のフォーマットに従ってJSONやXMLなどで記載したテキストファイル」らしい
Column
- 結城浩の再発見の発想法
- なんと10年も続いていたこの連載、今回で最後だとのこと
- 「部屋をガベージコレクトしなきゃ」は言う人いるのか…?
- 時代ごとに話題になる技術用語が変わっていく、もしくは言葉が同じでも意味合いが変わっていく、というのは改めて考えるととてもおもしろい。こういう部分に着想を得た特集だったのかな。
- エンジニアのためのやる気UPエクササイズ「目指せ!シックスパックエンジニア」
- 悪いこと言わないのでさっさと腹筋ローラーを買うか懸垂器を買うかするのをおすすめします(なんで腹筋で懸垂器なのかはこのツイートでちょびっと書いた)
Software Design 2023年5月号
この号の分のみ単品で読みたい方は、普通にAmazonで買うのがおすすめ。
紙 or 電子書籍で選べます。