はてなキーワード: ciscとは
第一に、発端となった元ツイートには「非エンジニア新卒女子」とはっきり書いてあるのに
《旧式言語を学ばずに関数型言語一本槍でエキスパートを目指すような感じの方》
《「まず軽く触れてみよう」とか「趣味でやってみるか」といった程度ならいいのですが》
《実際には肝心なことを何も知らないのに、なんか知っていると思い込んでいる状態が、私いわく「脳味噌膿んでる」》
ひどい書きっぷりだよね。
もし自分が当事者だったら「見ず知らずの人になんでここまで言われなきゃいけないの」と傷つくと思う。
第二に、下位層のレイヤーについて知っていなければ上位層のことをちゃんとやる資格がない
という態度が明らかに本人のダブルスタンダードっぷりを示している点
と言いたいのだと思うけど、最近のCPUはマシン語に書かれていある命令をそのまま実行しない。
インテルの場合もCISCの命令セットで記述されたコードをRISC的なマイクロコードに分解・解釈して実行する。
さらに内部はパイプライン化されているため、単純に「1命令ずつ逐次実行」されてもいない。
外側から観察するとあたかもマシン語の命令列をひとつずつ逐次実行しているかのように振る舞っているだけだ。
マシン語のコードで記述されたプログラムが、命令通り入力と出力を繰り返すなら、内部でどのような先読みや予測分岐を繰り返していても問題ない?マシン語の忠実な実行装置とみなしてよい?もちろん回路の設計ミスで誤動作するかも知れないけど、それがプログラマの「根本的な過ち」になる?
OCamlの世界で記述されているロジックが、OCamlの仕様通りにちゃんと動作すれば、その下位層にあるマシン語がどういうパラダイムで記述されていても関係ないと考えていいと俺は思う。
余談1
くだんの女子について、周辺のツイートを見てみると(完全に部外者の憶測だけど)Railsを主力とするソフトウェア企業に非エンジニアとして新卒で入社した新人がプログラミングに興味を持ったのに対して上司がOCamlの本を教科書として渡したのでそれを学んでプログラミング考え方を身につけた。その後Railsについても学んでみようとしたが、考え方のギャップに強い違和感を覚えた。…という経緯みたいだ。
余談2
https://twitter.com/camloeba/status/611051620877537281
https://twitter.com/sessoh/status/611052396161183744
このやりとり、拙僧さんが「肝心なこと」と思ってることを卯之助さんは「重要でない」と言ってるんじゃないですかね。