はてなキーワード: ライブラリとは
これはデカいと思うんだよな
Unityとか、Unrealとか、物理エンジンもBox2DとかBulletとか、当然昔はなかったので、みんな自前で書いてたはず
例えば、スーパーマリオの物理挙動とか衝突判定は当たり前だけど自前で書いてたはず
でも、今はブロック崩しさえUnityとかUnrealに含まれてる物理エンジンで剛体力学使って書けちゃう
なんかそういうの無駄な計算力だよなと思うけど、まあ書けちゃう、動いちゃう
昔はゲーム作るときって、リードプログラマーが1人いて、他も数人で、少人数で職人芸的に作ってたわけだよ
全て自前でやらなければいけないから、簡易的なものを作るにしても、一応大学でやった物理を再度勉強したりするわけだ
剛体力学とか、流体力学とか、材料力学とか、そのための数学とか勉強し直したりした
あと、ゲーム業界がバブル?だった頃は、海外なんかでは物理とか数学で博士号取ったような奴までゲーム産業に入って来た
彼らはゲーム業界に進まなければ、銀行とか保険会社、証券会社とかもある、もっと高給な仕事がいっぱいあるはずなのに、薄給のゲーム産業に飛び込んできた
彼らが高度な知識で色々な試みをしてくれたおかげで、今のゲーム産業があると言っても過言ではないと思う
だって、日本のゲームってどれも枯れた技術の水平思考ばっかりなんだもん
悪く言えば、保守的、必ず作り上げるという意思から石橋を叩きすぎたようなものを作る
例えば、初代のバイオハザードだったか、カメラ固定だったじゃん
今どきアローン・イン・ザダークかよwって思ったよなw
あの頃、自分はPCでDOSとかで普通にFPSやってたから、あくまで技術的にだけど、アホじゃないかと思ったんだよな
でも、周囲のプログラムとかIT業界に関係のない知人とかは喜んで遊んでる
日本のバイオが固定視点なのに対して、海外勢はFPSとか三人称視点ちゃんと作ってたよな
日本でFPSっぽいの初代PSでちゃんとやってたの、攻殻機動隊だと思うんだよね
今に至るまで、最も原作の意味をくみ取ってたアニメだったし、石野卓球なりの曲も良かった
時は流れて、今の日本のゲームもみんなUnityとかUnrealになった
Godot選択する人もいるかもしれないけど、あれ、良さそうだと思ったけど、情報少なすぎるよね
ソースは公開されてるんだから、ソースを読め的な感じもしたし、今どき?
独自スクリプト勉強するのもなんだな、と思って、ちょっと使う以上に使う気になれなかったんだよな
調べてもらわなくても、まあ、分かるだろうけど、UnityとかUnrealの開発者、日本人とかもいる、はかなり著名なゲームを開発した人も含まれてるよね
彼らは、当たり前だけどUnityとかUnrealがない時代は、当然自分たちで全てを書いてきた人たちだ
リードプログラマーが一人といったけど、かなりの分量をリードが書くはず
ほとんど一人開発と言ってもいい
あと、そういうリードプログラマーは職人みたいなものなので、自分で書いた数学ライブラリとか、物理エンジンとか、持ち歩いて会社を転々としてる人もいたはず
厳密には権利の問題もあるかもしれないけど、そういう優れた人材は引っ張りだこなので、会社を転々として、
その場その場で、自分で1行目から書いた、自分しか持ってない自前のvecmathライブラリとか、物理とか、ノウハウを財産として持って移動しまくってた
で、そうやって業界をサバイバルしてきた人たちのトップランナーが、今はUnityとかUnrealで開発とか営業とかやってる
多分だけど、もうコアな部分を書くことなんてなくなっているだろう
Unity、Unreal以前は、行く場所行く場所で、ゲームエンジンレベルからゼロから書いていた
でも、Unity、Unrealはそれを当たり前だけど共通化するわけで、そしたら一度書けば、それはずっと使われるコードになる、当たり前のこと言ってるけど
で、困っちゃうのは、そんなトップランナーになれなかったゲーム開発者だ
ゲームエンジンを開発するための、数学や物理、コードに関する能力、特にCやC++が多いだろうけど、そういう能力はある
自分は凡人以下だろうけど、かなり凄い人もいるんだろうけど、そういう人も含めて、ゲームエンジンレベルから作る職人芸は無意味、無価値になった
もちろん、まったく無駄にはならない
結局、Unity、Unrealを使うときに、単に使うだけでも中の挙動を勉強しなければいけない
でもね…
もう、ゲーム開発がコードをガリガリ書く仕事というより、コンテンツを作る作業にほぼなっちゃってないか?
3DCGのモデリング、シェーダー、ゲーム本体も含めて、箱と箱を線で繋ぐような作業でゲームができるようになってる、とっくになってる
そうすると、もうC、C++でガリガリゼロから書いていた人とか、
それこそ、PS2の開発はよく知らんが、悪評が高い、あれはOSレベルから書かされたりしていたように聞いてるし、
そういう人たちもゲーム開発の現場でそういった知識が活かされることはもうない
逆に、北欧で生活保護もらったりしてただろうNotchのマインクラフトとかの方が成功しちゃったりしてるよね
あれはゲームエンジン?と言っていいのか分からんけど、あの独特のボクセルの世界はゼロからJavaで書いたものだ
彼は時間制限でゲームを開発するイベントに数多く参加していて、いつもJavaでサクッとゲームを作っていた
だって、プロのゲームプログラマーっぽくはない、Javaでしか書いてないとか、それこそJavaの方が生産性が高いみたいに言ったら、日本のゲーム業界だったら鼻で笑われてただろう
彼はマインクラフトの前に、ゲーム会社に所属していたし、そこで開発していたのは、世界をすべて緻密に構築するようなゲームだったらしいけど、
自分の予想だけど、そんなの全地球シミュレーターの簡易版みたいなもので、無謀な試みというか、かなり複雑な仕組みになっていたはずだ、自分が聞いてたら、実現できるかさえ怪しい、と思っただろう
彼は世界を緻密なボクセルやポリゴンではなくて、大きなボクセルで実現することにした、まずそこが出発点であることは間違いないだろう
そこからセルオートマトンで川とか水を実現できるんじゃないかみたいに発想が膨らむよね、プログラマーなら
話をまとめると、ITがつまらなくなった話はゲーム開発にも置き換えることができる気がしている
昔のゲーム開発に少しでも携わっていた自分のような人たちは、今の時代では老害だということは重々承知しているし、
多分、今、ゲーム開発に興味がある子供とかがゲームに望んでいること、ゲーム開発でやりたいと思っていること、と自分たちの世代のゲーム開発者がやりたいと思ってたこと、やってきたことは、もう全然乖離してるんだと思う
考えてることが乖離してるんだから、話が通じないのはおかしくない
違う世界を生きてる人、偏差値がいくつ違えば会話が成立しないなんて話もあるように、今の子供たちと会話が成立しないのはおかしくない
そして、当たり前だが、現状を正しく認識しているのは、今の子供の方の可能性が高い
基本的にはCやC++で膨大なコードを短期間に書くことが要求される仕事だった
それが今の子供たち、というか、今の時代の環境に慣れた人たちにできる仕事とは到底思えない
そういうトッププレイヤーは、今はAIなり何か、最先端のものをそういった企業のコアの部署で、コアなものを開発しているはずだ
でも、そうなれなかった人たちはどうなる?
高度な彫り物とかするような職人が、NC工作機器とかで彫り物をするようになったら、職人は必要なくならないか?
伝統工芸だの、人間国宝だの、そうやって手で作ったものの方が温かみがあるみたいなオカルトに守られて生きられる人間がどれだけいるだろうか?
その、人間国宝レベルの人たちがUnityやUnrealのような企業に吸収されていく
あとは過去に開発したゲームのネームバリューを活かして講師職になるとか、そういう感じだろう
そうなれた人間がどれだけいるだろうか?
優れたリードプログラマーに触発され、職人になるべく数学や物理、プログラミングの知識習得を重ね、朝から晩までひたすらコードを書いていたのに、
今の生成AIは大したことないと自分も思うが、驚き屋wwwとか馬鹿にしてる奴らは、いつかうっかりAIに職を失われないか、よく普段から考えた方がいい
あと、AIに職を奪われたくないから、プログラミング頑張る、みたいな奴は、俺的には間違った頑張り方だと思うw
そのプログラミング自体がなくなるかもしれない、って言ってるんだって
技術習得とか、自分の技術でマウンティングし合ったりする暇があるなら、別業種のことでも勉強した方がいい
そういえば、優れたアニメーターだった人が、作画として年齢的に限界にあるし、親族にもアニメーター辞めるように言われてたらしいけど、
ある日バイク事故にあって、アニメーターを続けられなくなって、その人は年齢的にギリギリで清掃車運転する仕事についてたはず
立派な公務員になれて、空いた時間で絵を描いては、市役所などで販売してたはずだ
何が人生として幸運かなんて分からないけど、必ずしもアニメーターが庵野とか宮崎駿を目指すのが幸せなのだろうか?
どこかで自分の仕事を辞めて、それを趣味にして、安定した仕事に就いた方が、心の平安が得られるのではないだろうか?
というか、富野アニメなんか、やたら名誉を優先して失敗する人が出てくるよね
長い人生生きてきた老害には、ああいうのなんかよくわかるんだよね…😟
みんなが驚き屋って読んでる人たちは、基本的にPythonとかも書けないし、計算機科学とか数値計算の知識とか曖昧というか、まったくないような輩がいるし、
元の文章である「ITがつまらなくなった」だったかの文章にもあったように、ビジネスのアイディアだけある胡散臭い素人が乱入してきた感があるわけだけど、
でも、老害って若い世代とか新しいものを疑ったり反発しがちなんだよな、自分も含めて
だから、たしかに驚き屋の連中のかなりは胡散臭い、詐欺師みたいな、出まかせで大金持ちになったスティーブジョブズの極小コピーみたいな連中ばかりではあるけど、
でも、生成AIとか、これから汎用AIとかもどうなるのか分からんけど、どんどん素人に有利になってくと思うんだよな
だって、UnityとかUnrealで作ってる世代はガリガリC++書くのなんて馬鹿げてると思ってるだろうし、
プログラミン技術がもっと怪しいのはWebアプリ界隈も同じだと思うんだよな
RailsやPHPで書いてる連中と、C++で書いてる連中の世界は、見えてる世界がかなり違うんだよ
そもそも、そういう輩はLinuxとかWindows上で書いてるわけで、いわゆる家庭用ゲーム機とかでコード書いたことないだろ?
でも、Xbox発売時にビルゲイツが言ったように、(なんかSEGAだかソニーだか知らんけど)所詮ゲーム機なんて機能が制限されたパソコンだよね、
nVIDIAとかGPUカードどんどん作るんだし、パソコンの方が最先端のグラフィックスが体験できるよね、
みたいに言いつつ、Xbox発売したわけだけど、自分もそう思ったけど、あの預言は的中したよね
情弱と信者だけ任天堂Switchとか使ってるんであって、ビルゲイツが言ったように、ゲーム機の中身は機能が制限されたパソコンだよ
昔、TRONというプロジェクトがあって、あれを孫正義がクソミソに言ったという話があったと思うんだけど、
日本だけで閉じたプロジェクトを出発させても、アメリカの豊富な資金で、カネと資源という暴力で作られるオープンな世界に絶対負ける、ようなことを言ってて、
当然、そのあとIntelなりWindowsに日本は負けるし、半導体としては台湾に90年代で既に負け始めてたわけで、
家庭用ゲーム機も同じで、家庭用ゲーム機の新しいバージョンが出るまでのスパン、機能は固定されるから安定して確実に動作するゲームが販売できるとか、
色々利点はあるんだろうけど、でも、その間に日進月歩で、それこそnVIDIAみたいな企業がどんどん進んでいくわけで、
グラフィクスシンセサイザーwとか名前はカッコいいけどさ、名前に準じてたら、今頃ソニーNVIDIAに勝ってない?違うでしょ?
話を戻すと、どんどん素人が参入してきて、その素人が頓珍漢なことを言ってるのが不愉快だ、許せない、驚き屋氏ね、みたいな気持ちは分かるけど、
素人が参入できるようになった、というのは、世の中の流れが変わったわけで、そういう若い世代をただバカにするというのは、老害しぐさだよね
気持ちは分かるけど、ドラえもんのように生暖かく見守るとともに、老害も新しい技術とか、素人が驚いていることをちゃんと咀嚼して、吸収していく必要があるんじゃないの?
ちゃんと大学、大学院で計算機科学、情報科学をやってきったわけだし、あやふやな知識でイキってる若者に対して老人が取るべき態度ってそういうもんじゃないの?
例えば、子供が初めて何かを見て驚く、それを大人が見て、そんなのはありふれてる、驚き屋wwwと思うだろうか?
子供は素人だから初めて体験したわけで、なぜ子供がそれを見て驚いたのか?とか、子供の目線でちゃんと考えられる人は、教える人に向いてる人だと思う
他人に教えることがうまい人は、自分の経験、能力も整理することがうまい
米国を参考に、製造業からソフトやサービスに産業移行を目指してきたけど、駄目だったのではないだろうか。
米国のように軍事力を背景に、米国外への法律が効力を持っていたり、ビジネス面での情報収集能力は日本にない。
ソフトやサービスが力を持ってきたといっても、それを支えているのは膨大なサーバーで、物量で勝負している。
他社企業が出してきたクラウドやライブラリの使い方を覚えることで精一杯でリソースが取られてしまっているという現状もある。
標準に合わせるといっても、グーグルのように次から次へと標準に追加していった場合についていくのがやっとという戦略にも乗ってしまっている。
他の業界だとセールスマンが宣伝だが、エンジニアも宣伝の片棒を担いでいる。
YouTube、Uber、アフィリエイトといった、金をばら撒けばそれなりに人が入ってくるわけだが、胴元が一番儲かるのは変わらない。
なにより家内制手工業に戻っていないだろうか
人手不足で自動化は、スマホやソフトで色々やっても物を移動できないので、機械の進歩が必要になってくる。
多くの人が既存のビジネスに対して、中間マージンがけしからんとネットやソフトで効率化出来るはずだと認識していると思うが、
個人の利便性は高まっているが、少し広い目で見ると売上向上に貢献しておらず、負担だけが増えていっている。
従業員の給料が高くなっていくにしたがって、メンテナーも雇えなくなった。
そして何より作った物の価格を上げられてない。BtoBはあるが、最終的には何処かに価格転嫁しなければならず、それはソフトやサービスではない。
ソフトエンジニアですら、ハードには数万円出しても、ソフトにそれだけのお金は払わない。
ゲームは単価高いが、ソフト部分というよりかは他の部分にお金を払っているだろう。
この人は可哀想なことに「学校の言うことに従っておけば人生が幸せになれる」という
恐らくこの先20年ぐらい同じような失敗を繰り返してしまうのだと思う
副業で食っていけるようなITエンジニアを簡単に教育できるとは思えないし
そもそもなんだが、スクールや学校の言うことを全て丸暗記すれば大丈夫、というレベルの教育は小学生の早い段階で終わっていて
を知るためであって、塾で丸暗記を教わるために出しているのではない
興味を持って調べたことというのは誰かに教えて貰ったこととは違って記憶への定着や新しい着想に繋がるので
大学には興味・好奇心を持った人が更なる高等教育を受け、新しい発見をするために進学する
プログラミングやITに関する技術も同様で全てをスクールで教わるというのは非現実的で不可能だ
例えばよく使われるプログラミング言語だけでもC,C++,Java,JavaScript,TypeScript,Rust,Python,PHP,Ruby,Perl,ShellScript ぐらいはあって
これらの言語仕様を覚えるだけでも大変だしよく使われるライブラリなどが組み合わされるととても現実的ではない
なのであくまでもスクールや教育機関ではどれか1つの言語を選んでプログラミングの概念や思考法を教えているに過ぎないし
お金を貰えるレベルになるには少なくとも3年は自分でプログラムを書いていないと到達できない
興味がないものを3年も続けられるわけがないので、スクールや学校で「興味が無い」と思ったのならやめた方が良い
つまりスクールに通ってITエンジニアになるにはスクール外で興味を持って学習することが必要なのだが
残念ながらこの法則は小学校高学年から同様で、ちゃんと学校外で勉強してきたような人は大人になってからスクールに通ったりはしない
IDviewは、一般的には特定の分野やコンテキストに依存するため、詳細が書かれていないと具体的に何を指しているのかはわかりにくいです。ただし、一般的に「IDview」という名前が使われる場合、複数の用途が考えられます。
1. **セキュリティシステム**:個人認証やアクセス管理を行うためのシステム。たとえば、生体認証やスマートカードを利用してユーザーのIDを確認し、アクセスを制御するツールが考えられます。
2. **データベース管理システムや分析ツール**:特定のデータベースやシステム内のユーザーIDやその他の識別子を視覚化し、管理・分析するためのツール。
3. **ソフトウェア開発におけるモジュール**:特定のアプリケーションやプラットフォーム内で、ユーザーIDやその他の認識情報を表示するための機能やライブラリ。
具体的な情報がもっとあれば、より正確な説明ができると思います。もし特定の用途やコンテキストについて知りたい場合は、もう少し詳細を教えてください。
いやぁ〜、テキストエディタの世界、めっちゃディープでんねん!聞いてくださいよ〜。
まず、テキストエディタの心臓部、バッファ管理システムについてや。これ、単なるテキスト保持やないんですわ。例えば、Emacsのガベージコレクション機構。マーク&スイープ方式採用してて、バッファ内のLispオブジェクトを効率的に管理してんねん。これがあるから、長時間の編集作業でもメモリリークせーへんのや。
次に、レンダリングエンジン。これが曲者でんねん。Unicode標準のUAX #9に準拠した双方向アルゴリズム実装せなアカン。さらに、合字処理のためにOpenTypeのGSUB/GPOSテーブル解析も必要や。Harfbuzzライブラリ使うんやけど、カスタムシェーピングエンジン組み込んで、特殊な文字体系にも対応せなアカンのや。
構文解析エンジンも侮れまへんで。LR(1)パーサーじゃ複雑な言語構文に対応でけへんから、GLR(Generalized LR)パーサー実装するんや。これで曖昧な文法も扱えるようになるんですわ。Treesitterライブラリ使うと、インクリメンタルな構文解析ができて、巨大ファイルでもリアルタイムにハイライティングできるんや。
差分アルゴリズムも奥が深いんですわ。Myers差分アルゴリズムだけやなくて、Histogram差分アルゴリズムも実装せなアカン。大規模リファクタリングの差分表示に効くねん。さらに、セマンティック差分アルゴリズムも組み込んで、構造的な変更も検出できるようにするんや。
非同期処理システムもめっちゃ重要や。単なるPromiseやasync/awaitやのうて、Reactive Extensionsベースのストリーム処理実装するんや。これで、複雑なイベントシーケンスも扱えるようになるんですわ。さらに、アクターモデルベースの並行処理システム組み込んで、マルチコア活用した並列処理も可能にするんや。
最新トレンドもめっちゃアツいんですわ。例えば、Language Server Protocolの拡張や。単なる静的解析やのうて、シンボリックAI使うた意味解析まで可能にしてるんや。これで、コードの意図を理解して、より高度なリファクタリング提案ができるようになるんですわ。
WebAssembly統合も進化してるんや。Single Instruction, Multiple Data (SIMD)命令セットサポートで、テキスト処理のパフォーマンスが爆上がりしてんねん。さらに、WebAssembly System Interface (WASI)採用で、ファイルシステムアクセスも可能になってるんや。
AI支援機能も侮れまへんで。単なる補完やのうて、プログラム合成(Program Synthesis)技術導入してるんや。部分的な仕様から完全なコードを生成できるようになってんねん。さらに、説明生成AI組み込んで、生成されたコードの詳細な解説までしてくれるんですわ。
リアルタイムコラボレーションも進化してるんや。Conflict-free Replicated Data Type (CRDT)のカスタム実装で、ネットワーク遅延があっても一貫性保てるようになってんねん。さらに、意図ベースの競合解決アルゴリズム導入して、複雑な編集操作の衝突も自動解決できるようになってるんや。
拡張性アーキテクチャもすごいんですわ。WebAssemblyベースのプラグインシステム採用して、言語に依存せんプラグイン開発可能になってんねん。さらに、サンドボックス化されたランタイム環境提供して、セキュアなプラグイン実行も実現してるんや。
性能評価も厳しくなってるんですわ。起動時間は、コールドスタートだけやのうて、ホットスタートも測定せなアカン。メモリ使用量も、物理メモリだけやなくて、仮想メモリの使用状況も追跡するんや。CPU使用率は、マイクロアーキテクチャレベルの最適化まで求められるようになってんねん。レンダリング性能は、GPUアクセラレーションの効率も評価せなアカンのや。応答性は、入力レイテンシだけやのうて、知覚的な応答性(Perceived Responsiveness)も測定するんですわ。
いや〜、テキストエディタの世界、マジでディープすぎて、もう頭おかしなるで〜!こんな感じで、テキストエディタの最深部まで潜ってみましたけど、いかがでしたか?テキストエディタ、侮れまへんで〜。ホンマに。
会議で会話したりするならまだしも、まじ黒子と化して議事録つくるのもいや。
今にも流れそうな言葉を拾う、リアルタイム議事録は会議時間という制限も相まって、聞き漏らし書き漏らししないように精神を研ぎ澄まされてちょっとゲームぽさもある。また、会議に参加しているメンバーがいることで、さみしくない。
だがしかし、録音された会議から議事録を起こすとなると、その全てが失われる。
空虚な上に、自分の完璧主義が顔を出して一言一句書き起こしたくなる。
※議事録としては適切ではありません
そこで、以前有能増田にアドバイスをもらったwhisperをローカルに構築した。
pipでライブラリインストール中にブルースクリーンになったときはし絶望感しかなかった。
再起動も乗り越えて、ちまちま構築。
とりあえず、1本の打ち合わせ動画解析までこぎつけた。が、とにかくCPUつかうはずなので、終わるまでスマホで時間つぶそ〜とおもったんだが、まあ、止まる。
すごく細かくメッセージ書いてあったが、最新版はとりあえず非対応らしい。一旦pipからnumpyアンインストールして、1.xの最新版インストール
みたら、Pythonさんのバージョンがあってない?からライブラリよめてなかったぽい?
3.PF16がのってるCPUはサポートしてないのでなんたらこうたらエラー
これがなんだかはわからん。
正解が「数学的」に決まるところ。たとえば「1■1=2 のときに ■を答えなさい」というときに競プロは■を答えるだろうし、それを早く答えて悦に入るだろう。
それもいいけど、いちど数学的に答えが決まっちゃう問題はライブラリにまとめられて、一般的なコーダはなにも考えなくてもインポートして処理できちゃうわけ。上の例えだとふつーのプログラマなら「枯れたライブラリをインポートして、正しく答えが出ると確信できるなら『答えは正しいとか考えなくても』それを使って対処する」ので、データの振る舞いとか気にしないで済む。たとえば SQL なんて、実行時計画という「アルゴリズムを常に指定するなら不要な」話題があるのだけど、データ量によって適切なアルゴリズムが変化するから仕方ないし、概ね RDB は賢いのでヒューマンが考慮するのは問題がある場合だけなのだ。よって、競技プログラマが生産性を確実に上げるという根拠はない。
もちろん、アルゴリズム知識を身につけるのは大切だし、クヌース先生も書いてたけど分散処理アルゴリズムはフロンテイアだろうよ。というか、暗号分野やセキュリティの領域や、条件が過酷な場合(宇宙線の影響下とか、メモリの少ないエッジコンピューティングとか)だと、アルゴリズムの研究や追求は大切なのは今も同じだ。でも、競技プログラマが新規にアルゴリズムを開発したり、セキュリティに向上したという話は聞いたことがないが、レッドコーダー諸君は自前で創造して使われた実績はあるのだろうか?
ついでに聞いてみたいのだが、競技プログラマたちは「マルチスレッドなコードで早く書こうとしないのはなぜ?」「そもそも、競技プログラミングで使うコードは便利なスニペッツがあるけどそれってチートでは?」「ときどき正規表現で解く問題があるけど、そのときの計算量は無視してない?」という矛盾を抱えているのてはないか?と思うのだが如何か。
究極的には競技プログラミングに必要な知識というのは、産業用途で要求される知識の一部でしかないのが問題なんだと思うよ。ほら、アレだよ、むかし話題になった「数学だけデキる人向けの東工入試をやったら、英語ができなくて卒業できなかった」という童話に近いんだよ。競技プログラムってインとアウトしか見てないブラックボックステストだから、ここだけしか計算機科学の知識が無いというヤバ人材の育成しかなってないのだろうな。
業務で機械学首(データマイニング)、Web(業務システム)、組み込み(産業インフラ設備)の経験があるので、分野ごとの相違点と発生しがちな軋轢を書いておく。
- | 機械学習 | Web開発 | 組み込み開発 | 発生する軋轢 |
コードの寿命 | 半年間 | 20年間 | 40年間 | 組み込み開発er「産業系の組み込みは発売から40年後にアップデートするケースもあるので、ドキュメントは、開発担当者が全員退職して誰も残っていなくても理解できるように書いてください!」 |
コードのアップデート頻度 | 試行錯誤しつつ随時 | 2週間に1回 | 半年~5年に1回 | Web開発er「組み込みはどうしてそんなに時間がかかるの?アジャイルを導入してください。ウォーターフォールは硬直的でデメリットばかりですよ」 |
アップデートの提供方法 | -(コードは少人数の同僚だけで使用) | サーバに自動デプロイ | 技術者が現地訪問してアップデート | 組み込み開発er「アジャイルだから最初は若干のバグを残して発売し後日アップデートするって?グローバルで既にXXX台受注しているけど、誰が現地に行くの?費用を負担する部署はどこ?」 |
開発者の属性 | 数理系の修士~博士、少数精鋭 | 専門学校~修士、文理混在、大人数 | 電気系、機械系、情報系の修士~博士 | 機械学習er「数式で表現できない知識は民芸品です。エンジニアを名乗っちゃダメでしょ」 |
関係部署 | マーケティング・企画 | 顧客 | ハード開発・工場 | 組み込み開発er「納期3カ月前なのにソフトが完成していないの?生産立ち上げを工場に相談していない!?スケジュールをゴールから逆算できなかったの??今回は船便での輸送になるけど、それも計算に入れてあるよね?」 |
計算資源 | 潤沢 | 予算次第 | 貧弱 | 組み込み開発er「データマイニングやってたKさんがOSSを使うらしいけど、サイズが5MBあるんだぜ。5MB全部必要なのか聞いたら一部機能しか使わないんだって。で、他チームとの容量調整は丸投げされたの。感覚を破壊されるよな。」 |
3rdパーティライブラリ | OSS | OSS | 買ってくる | 組み込み開発er「OSSに不具合があったらどうやって修正して顧客にデリバーするつもりなんだろう?リスク移転の考えで、不具合の補償契約込みで買えばいいのに」 |
通信プロトコル・データフォーマット | 生データが王様なので、生データに従う | 最新のものを取り込む | 実績重視 | Web開発er「HTTPの実装がないの?TCPを直接使う!?暗号化や認証はS社の独自プロトコル?古いプロトコルを使い続けているから開発効率が低いんだよ」 |
電源OFFタイミング | 任意にコントロール可能 | 定期メンテナンス | コントロール不可 | 組み込み開発er「ファームウェアアップデート中に電源OFFしたらどうなるの?ファイル書き込み中の電源OFFは?状態遷移図って知ってる?」 |
性能 | 出来高 | 顧客要件、常識、予算に従う | ミリ秒~マイクロ秒単位のタイムスライスで管理 | Web開発er「性能改善でXX関数の10ミリ秒を1ミリ秒以下に短縮するために2週間も試行錯誤したって?プロパ社員の人件費は7万円/日だから70万円を消費したね?AWSでEC2の性能を調整すれば2000円/月で解決だよ。損益分岐点は350カ月だけど顧客のこれまでのリプレース実績から判断してこのシステムはそこまで長期間使われない」 |
学会発表・特許 | 結構ある | ほぼなし | 年1件の特許出願ノルマ | 組み込み開発er「学会発表も特許出願もなく、何を開発したの?ドメイン知識をソフトウェアに翻訳してAWSでポチポチやっただけなの?開発行為ではなく作業だね」 |
分野ごとに要求される製品特性が異なるから、異分野に移ると文化摩擦が起きるという話だと思う。製品特性の違いを理解し自らの行動に反映できるようになるには、ベテランでも数年かかるケースがある。開発期間10年のテーマを経験したことがあるが、そうした場合だとワンサイクルを経験するのに10年かかるので。経験から学ぶのが愚者、歴史から学ぶのが賢者ともいうが…。
あのさぁ、君ANNを実装したライブラリとか使ったことないでしょ、faissとかElasticsearchとか
君は「KNN」と勘違いしてるみたいだけど、sklearn起動してmodel.fit(X, y)みたいなことをするんじゃないんだよ、ANNは
index.add(vectors)とかやってインデクシングした上で、index.search(vq, k)みたいにベクトルで検索するのがANNね
レコメンデーションエンジンなら、コンテンツをベクトルに変換して、インデクシングして、クエリベクトルでサーチするって話
だからさ、それならなんで「フレームワーク何使ってる?」なんて質問をしてきたのかって話ね
なぜWARCファイルで保存しているかと言うと、その方法なら複数サイトで統一的に書けるから
クローラからデータを抽出する部分は別途作ってあって、その部分だけ使い捨てになってる
言ってること分かる?
根本の知識だったり大元のライブラリ(tsとか)はほぼ変わらないから何とか食らいついてるけど、自分も最近はrustだったりc++周りを勉強しているよ。一緒に頑張ろうね
フロントエンド開発を始めて早4年、界隈の雰囲気も好きになれないしトレンドを追いかけるのも疲れたよ。
Twitterを開けば否応なしに口論しているツイートが流れてくる。
あるいはライブラリのバージョンアップや新規ライブラリの公開ツイートであったり。
社内でもフロントエンドといえば私、みたいな立ち位置になりつつあって
有難いことだけどその分情報のキャッチアップから離れられない。
フロントエンド分野だったらなんでも分かるわけじゃないし、実装に時間がかかることだって多々ある。
期待に対しての成果を出すのが辛くなってきて、そんな風に捉える自分も好きになれない。
バックエンド担当の同僚と話していても、大きな変革もそこまで無くなんだか羨ましく感じる。
結局自分がコードを書くことに向いてないだけかもしれないけど。
始めた頃はちょっとしたコードが書けるだけで嬉しかったり、新しい情報が出ると一目散に駆け寄って自分で試したり出来たのに
いつからこうなったんだろう。