学習で利用してる環境
学習で利用してる現在のPC環境をかいておく。
PC
- Lenovo legion 5i 9th Gen/ Intel 14170HX/ GPU: RTX 4060 - 8G/ RAM: 64G/ SSD: 1T+512G
- Ryzen 7 3700X/ GPU: GTX 1660 - 6G/ RAM: 32G/ SSD: 512G
ノートPCのほうがデスクトップ環境より速く強くなってますね。色んな諸都合でノートのほうがそれなりに強力になってます。デスクトップ環境はちょっときつく感じるようになってますね。ノートPCは暴騰する前に環境を整えてるんですが。当時はRAMは64GとGPUで8Gあれば小さなローカルLLMやBlender などの3D CGでも扱えるなぁ。ということを意識してたかな。当時の価格の倍くらいかかるくらいおかしな時代になってしまったんです。持つものと持たざるものの差が大きくなるだけでいいことではないですね。現状ならちょっとしたことはローカルで実験はできます。
OSとプログラミング環境
これらのOSは Windows11になってて開発環境はWSL2のubuntu にしてますね。 これらに、基本的にneovimを使うことが多かったけど、日本語環境との相性の悪さから、Pythonを扱うところはZEDを使ってますね。そんな状況なのでlspは動かしていますね。
Pythonはuv, Rustはcargoで管理していますね。データサイエンス関係の環境はよく紹介されてるのを見てると、アナコンダを使ってることが多いけど、あれ大げさすぎてね。dockerもよくつわずに基本はuvですべて環境を作ってますね。
Jupyterもuvで環境を作って動かしておりますが、基本はJupyter noteは使わずにZED-REPLを中心に使ってる感じかな。common lispを扱ってた時のemacs+slimeくらいのことは簡単に構築できるのは時代を感じますね。pythonのバージョンは現在は12.3をそのまんま使ってますけどね。
uvやcargoを使うと大げさにしなくてもProject管理が簡単なんでいいですね。この手のものはhaskellを扱ってたときにstackを使ってたんで。
プログラミング
言語に関してはもともとCommon Lispを扱ってたけど、長く触ってなかったからね。C++も扱ってたことはあるけど、あの乱雑で(以下略)・・・苦手なんですよね。OOPや手続き脳の方法が性に合わなくてね。Rustの皮を被ったC++みたいなソースを見ると止めてくれーと心で叫んでます。😁
現在はP5.jsで遊んでたこともあるのでJavascriptやPython, Rustというところが扱う中心じゃないかなと思う。低レベルプログラでも今はRustが幅を利かせ始めたのはいいことですね。😁 だからぼくのプログラミングスタイルはCommon Lispの影響が大きいと思う。
どんな言語でも気にしないですよ。詳細が違うけど基本的な扱いはどの言語も違和感は持たないかもしれません。たぶん全くついていけないのはsmall talkやprologue辺の方向かもしれない。Haskellもモナドの以上は怪しいですが。😁
こっちでBlenderのことも書くかもしれない。Blenderの制作もすこし遊んでたので。P5.JSやBlenderのジオメトリノード界隈を見てて思うけど、カプセル化というのかな抽象化を活かして拡張性を大事にすることを意識した作り方をする方かなり少ないように感じてますんでね。昨年なら対話AIと相談しながらだけどジオメトリノードつかって万華鏡の再現を考えたもの作ったことあるんだけどね。