はてなキーワード: コンパイルとは
で正直なところ ロリポとか やろうと思えばできることはわかったし 下手すりゃPHP3に最新の8の関数を1個だけついか という要望も 受けられるっちゃぁ 受けられる
C言語のライブラリーを直接古いPHPと同じコンパイラでコンパイルしてから PHPの3についか というのは できなくはないし そこだけ技術移管してもいい
だから 本当にこまったのなら 銀座の魔法で 本当に ザオリクしてやる そこまではPHPエンジニアに伝えてもいいと思う ただ なんというか ミナデイン級の魔力は必要
ほんとうに 大切なものなら PHP3にPHP8の機能を追加することは可能 でも それが 何年もいきのこって という話になるから やりたくはない
とりあえず動くソースコードでそれなりの規模のが欲しければGitHubからcloneしてくればいいんだよなあ。
と言っても、元増田が「gitって何?」のレベルだとそこで話が折れてしまい、
gitとは?バージョン管理とは?ハッシュ値とは?みたいになってしまうので説明する側も辛い。
自分が説明される側でも説明する側でも辛いのは、それだけ専門性が高い分野ではあるのだろうけど。
自分だって自分の専門外のことをそれ専門の人にまくし立てられて説明されるの辛いw
ソフトウェアの命名規則が天邪鬼でなければ、スタート地点はmain.cppみたいに類推もできるはず。
デバッガでメインルーチンからブレークポイント打つなりしてポチポチ動作させたり変数の中身の変化を確認していく。
色々なクラスとかソースコードを眺めて全体像を把握し、そこからコアとなる機能、自分が知りたい箇所を目指す。
ソースコードがある、デバッグ情報があるなら、当たり前だが変数名や関数名があるので類推しやすい。
(Javaとかで難読化してると、逆コンパイルできても変数名や関数名は分からなくされていて読み辛かったりする。
いや、だから難読化なんだけどwでも、.classファイルしかなくてもそれで中の肝心のアルゴリズムは読めてしまったりする)
自分には大した技術はないと自分でも思ってるけど、普段やってることをまったく知らない人に説明するのは難しいだろうね。
というか、できる人やプロだって新しいビルド方法なんて分からない。
C++ならcmakeやpremakeは分かるけど、ninjaってなんじゃ?みたいなw
そこで新しい道具に手を出して躓くことも多々あるし、
<追記>
https://doc.rust-jp.rs/book-ja/title-page.html
って書かれてたわ
一年に二回くらいコンパイルが通らなくなった記憶があるんだが・・・なんかのクレート(パッケージ)だったかもしれない
いま昔のプログラムを適当にチェックしてみたら明確にdeprecatedって言われたのはtraitにdynをつけろ(Trait objects without an explicit 'dyn' are deprecated)って部分くらいだ
https://qiita.com/maeda_/items/d765d514e7c72778f29f
に
ここまでのまとめ
Rustには記述をシンプルにする仕組みもあり、ライブラリ実装者も気の利いた作りにしてくれたりするが、実際に裏側で何をやっているか把握しないとハマることがある。
また、例外処理や非同期のような基本的なところでも活発に議論されているし、ライブラリも刻々と変わっている。他の言語以上に流行り廃りが激しいことに留意しておくことが大切に感じた。
って言ってるから感想としては間違ってないと思うが・・・あまりエビデンスのはっきりしないことは言うべきでないな
ごめんなさいRust
どんなに優れたツールや設計思想などがあっても、使う奴がダメだと全く無意味。弊社もWebアプリを作ってて、RESTだのFluxアーキテクチャだのいろいろ導入を試みたが、ほとんど無駄に終わった。
どんなクソ組織でも効果があると確信持って言えるのは上の3つだけ。1つ目は初歩的すぎると思われるかも知れないが、筆者の想定するダメな組織・ダメなプログラマというのは、このレベルの連中を含む。
静的型付け言語(サーバーサイドならJavaやC#、フロントエンドならTypeScript)を使わせれば、少なくともコンパイル時に分かるエラーは修正させられる。
というか、ダメなプログラマに動的型付けの言語は触らせてはいけない。必ずそのプロジェクトは半年後には保守できなくなる。
テストは強制的に書かせるし、テストのないクラスや、通らないテストあったらコミットできないようにする(それは容易にできる)。
もう一つの方法は、そもそも優秀なエンジニアしか参加できないようにすること。たとえば、Scala、Haskell、Erlang、Common Lispなどで書かれていれば必然的にそれが分かるエンジニアしか開発できないし、こういう言語を自主的に学習しているエンジニアは優秀である可能性が高い。