はてなキーワード: フルスクラッチとは
リーナスがLinuxを開発したというのは、どれほど「技術的に」すごい偉業だったのでしょうか?
生越 昌己
回答日時: 2022年4月23日 · 執筆者は841件の回答を行い、180.3万回閲覧されています
なんか呼ばれてる気がした。
「技術的に」はどうってことないものです。別の回答で私の書いた記事が引用されているので、その辺の歴史的なことはそっちを読めばわかると思います。「やればできる」範囲のことです。実際、あの記事には書きませんでしたが、そのちょっと前くらいに私の知人(日本人)がフルスクラッチのUNIX互換マイクロカーネルOSを独力で書いてます。これも彼に言わせれば、「教科書通りに実装しただけ」とのことです。なお、UNIX系OSの実装は、いくつか教科書が出ています。また、「NET2」という4.3BSDのフリー(ってことになっていた)な部分のコードも公開された後です。つまり、参考にするものは結構あったんです。
実はOSそのものは、「技術的にすごい」必要はないです。もちろん、いろんな点で「技術的にすごい」ことをする必要性のあるところはありますが、「普通の実装」であれば「教科書通りに実装しただけ」で作れます。「ぼくのかんがえたさいきょうのプロセスモデル」なんてものは必要ありませんし、「マイクロカーネル技術」なんてのも、あればあったでメリットありますが、なければなくても困りません。UNIXのその辺は普通の人達が思っているよりもずっと単純で、実装もそんなに難しいものではありません。ですから、特に「何かの互換品を作る」というのであれば、動かすだけであればそんなに大変ではありません。バランス感覚が要求されて難しい部分は既に他人が実装しているわけですし、「教科書」や「参考コード」はいっぱいありましたから。
Linuxが凄かったのは、一つは「運」です。多くの人が求めているタイミングで、まがりなりにも動くものを出すことができた。これは多分最大最強の「すごいこと」です。
Linuxがリリースするちょっと前に、AST(Andrew Tanenbaum
)はMinixの「次のバージョン」についての「やらないことリスト」を作っていました。野良で作られたMinix386を使っていた人達を始めとする「MinixがもっとUNIXになって欲しいと思っている人達」は、それを見てガッカリしたものです(私も)。Minixを実用品にしようとする流れに完全に背を向けた形で「教材としてのOS」に力点を置いたもので、ASTの立場を考えれば当然とは言え、いろいろ残念な思いをしました。Linuxがリリースされたのは、そのショックから覚めやらぬ時期だったので、それを見た人達は、まさしく
キタ――(゚∀゚)――!!
その次に凄かったのは、「それを実用品に持って行けた」ことです。「動く」ということと「実用品になる」ことの間には、とんでもなく深い「谷」があります。これを超えるのは、「運」も大事だし「技術」も不要じゃないんですが、それだけでできるものでもありません。そもそもLinus自身が「最初はそんなつもりはなかった」的なことを言ってますからね。それでもどこで気が変わったか、あの「隙だらけのカーネル」でも、なんとなく実用品として使えないことはない程度にはなっていた。
そして、「隙」も凄かった。Ver 0.01のカーネルなんて、本当に隙だらけ。たとえば、システムコールのエントリテーブルがあるのですが、その先の「実装」部分には「未実装」ってコメントが1行書かれているだけなんて状態だったのです。これは結構後の版でもありました。でも、その「隙」ゆえに、多くの人に愛され、「俺が何とかしてやろう」と思わせる。当然意図したものじゃないにせよ、これがなかったら「今」はなかったかも知れない。
等々、いろんな「凄さ」はありますが、それは技術そのものではありません。「凄さ」は別のところにあったのです。
独自に似たものを作ってた人達(私も含まれる)が、一斉に自分の作っているものを投げ出して協力しようと思うくらいには「凄く」また、「隙」があったんですから。「マイクロカーネルこそが」とか、まぁとりあえずマトモに他人の使える自前実装作ってから言ってよね。ちなみに当時の私はMach
をいろいろいじくってました。Ver 3.0になっていろいろいじれるようになってて、MS-DOSの上からbootする版を作った人がいたんで、「これでユーザ空間でOS書けるじゃん」って。
そんなわけで、「ぼくのかんがえたさいきょうのOS」を作らなかったのが、Linusの偉かったところ。愚鈍に「どうにかこうにかUNIXとして使える程度のもの」をちゃんと作っていいタイミングでリリースした。そこが全ての始まり。
「毒にも薬にもならない昔話」とはこのことではないだろうか。
老人ならせめて1行くらいは誰かの役に立つ言葉がにじみ出るものだが・・・
そういう生き方としてきたということだろう。
国立大教育学部の小学校社会科の先生になる専攻で入学したけど、
高校ではマンガ家めざして同人誌も出してて、フィギュアのフルスクラッチもやりたいなと思ってたので
卒業には全く必要のない美術の先生を養成するコースの塑像(人体を粘土で作る)の授業を受けてた。
最初の課題(学生同士でペア組んでお互いの顔を作る)で自分には立体の才能が全く無いと思い知らされて、ペアの顔を完成させた段階でフェードアウトして単位は得られなかったが。
思い返せば、教育学部って専攻(教科)ごとに多種多様な研究室の教授・講師の授業があって、もっといろんな授業を無駄に受けとけばよかったなと、社会人になった今更思う。
サークルもいろんなことをやってみたいと、漫研以外にスカイダイビング部・スキューバダイビング部の新勧説明会に参加したけど、遠征や装備に金かかるので貧乏学生の俺には無理だった。
あ、先生にはなってません。
ちょっとプログラミングできる、っていうレベルの人が一番うざい
長い月日をかけて誰にも使われないソフトウェアが完成する
完成する頃にはもう居ない
自分はサーバサイドだから、フロントエンドだから、AIだから、とか言ってその分野ばっかりやる人
ぶっちゃけその分野もこっちでやった方が早いしできるんだけど
まぁそれはみんな一緒かもしれんけど同じことばっかやってて成長しない
最近のQiitaにも多いけど「こうしたら動きました」って言って内容理解してない人
これってどういう意味?って効いたら「コピペしてきました」って言う(意味を聞いてるんだが)
大抵は冗長かつ不十分な実装になっててしばらくして動かなくなる
まぁ誰しも通る道だとは思うので丁寧に指導はするけれど
ソフトバンクがArmの親会社になっているときに、デザインセンターを国内に作ってエンジニア育成しておけばよかったな。
ファブレス会社はプロセス全く知らないで作れるかというと、性能をギリギリまで出すのは作れない。
IP買ってきて取り敢えず半導体作れるようになればいいのだろうか。
富士通も富嶽のCPUフルスクラッチで作ってないし、ノウハウ持っているところからの展開も難しそう。
設計ツール(EDA)を買ってきて、IP買ってきて、取り敢えずつなげれば、それっぽいのは作れるのだろうけど。
規格の仕様書、ツールの説明書、どれもこれも数百ページのドキュメントが複数あって、理解するのも大変なんだよね。
あと書籍がなさすぎる。
https://anond.hatelabo.jp/20210111163141
これが面白かったんでつられて書いてみる
自分はどベンチャーにいてテックリードみたいなことをやっている。
どベンチャーなので基本的に未経験者はよっぽどのことがない限り書類で弾くし面接はもちろんしない。
ただ、これまで数件だけ付き合い上でスクール卒の人を面接・業務体験をしたことがある。
しかし、誰一人としてうちは受からなかったし、他を受けてもエンジニアとして働ける人は居ないだろう。
良くて人売のブラックSIerに潜り込んで、前職の数分の1の給料を2倍の労働時間でもらうみたいなそういう悲惨な未来しか彼らからは想像できなかった。
彼らは優秀ではなかったか?
明確にNOである。
彼らは、もともとのスペックは非常に高く、地頭がよく英語もでき名のしれた大学を卒業し一流どころの企業に受かりコミュニケーション能力も高く数十万円を未来のために投資できる程度の賢さを持ち合わせていた。
たぶん、スクール卒の中でもスペックやスクール内での成績なんかは上位中の上位の存在なんじゃないかな?
しかし、彼らは今後優秀なITエンジニアにならないだろうという確認に似た予感がある。
理由は唯一つで、彼らは全員が全員自分で泥臭いことをやってIT系の問題解決をする能力が皆無だったからだ。
彼らはすでにある程度の成功体験を積んできてしまっていたので、今更0からフルスクラッチで苦労してトライアンドエラーを繰り返して技能を付けていくというのが難しいんだと思う。
特にスクールは商売なので細かいトライアンドエラーなどさせず一通りの知識をスムーズに学ぶことは可能だけれども、学び方は教えないんだろう。
さらに、彼ら自身は特にIT系に何の思い入れもないので自分で何か苦労を背負い込んで泥臭いことをやりもしないし、そういうのが必要ということもどこでも知ることができないんだろう。
IT系は特にスムースにスマートにやるのがかっこいいと外からは思われがちだしね・・・
そして、そこら辺の状態が悪魔合体した結果、ITエンジニア能力以外の現状スペックは高いし、スクールで教わったことは優秀なんだけど、ITエンジニアとしてはまだまだ使えないし今後も伸びないであろうひどく歪なキメラが複数発生しているし今後も発生し続けるんだろうな。
つらつら書いてるけど特に落ちはない
ただうちの会社は多分どベンチャーを脱出してもよっぽどのことがない限りスクール卒を直で入れることはないし、周りのエンジニアが足りなくて泣いてる企業からも似た話しか聞かないからスクールに通ったらすぐにどこでも潜り込めると思うのは辞めたほうがいいかなってのはあるねぇ
でも、3Dプリンターがなかった時代はその金型までが大変だったんだと思う
3Dプリンターは…、みたいにダラダラ書いたけど、自分なりの結論としては、3Dプリンターは試作用途には断然アリだと思う
精度が多少悪かろうが、ときどき大失敗しようが、基本CAD通りの物体がとりあえず手に入るというメリットは大きい
だからCADと3Dプリンターを行ったり来たりして試作を詰めていって、
これ以上ないところまで行ったらDMMに頼むとか金型作るとかが3Dプリンターの使い方としていいと思う
最終完成品を3Dプリンターで作って一般消費者に売ろう、とか考えると失敗すると思う
Togetterのまとめのどこだったか失念したんだが、3Dプリンターでミニチュアのライフルとか作ろうとしてたと思う
それをワンフェス?だったかその手のイベントで売りたいみたいなんだけど、そのライフルが曲がって出力されてしまい、
かなり一喜一憂しているのを読んで、あー、光造形でも理想通りにはならんのだなー、と思ったり
うろ覚えだけど、光造形だとたしか印刷する位置によって、真ん中なのか端っこなのかで精度が変わるとかあったと思う
FDMでもあるw普通にあるw
同じ部品を一度に多く欲しいときに、コピーして並べて出力するわけだけど、その出力結果が配置した位置によって精度が異なってしまう
ネジみたいなものだと致命的
まあネジを出力するのは3Dプリンターのパフォーマンス自慢的な意味合いもあるので、規格にあるネジなら3Dプリンター出力はオススメできない
ネジ以外の部品も同様で、規格にある部品はホームセンターに行ったほうが無難
でも、3Dプリンターがない時代だったら、樹脂材ならプラ板とかエポキシパテとかプラモのフルスクラッチまがいのことをしなければならなかったけど、
それに比べれば3Dプリンターの方が断然楽ではある
だから、3Dプリンターは無駄な代物ではないのだけど、夢を見すぎて買うと痛い目に遭うと思う
買う前にThingiverseとか見て、こういう使い方だったらできるのかなあ、と購入後の使い道を想像してみるといいと思う
GitHubにもロボット作ったり人工知能の車とか作ってる人がCADデータやSTLがあるので探してみるといいかも
Thingiverseの注意点は、絶対投稿者本人が出力してないだろ、と思えるような精巧すぎるものとかはスルーした方が無難
あと、いいね!みたいな評価が高くても、評価者も作らずにいいね!を押してるので、
作品ごとに、自分も出力してみた、みたいな箇所があるので、それを見て色んな人がそれぞれのプリンターでどう出力されたかを見るといい気がする
まあ「沼」だね
3Dプリンターは沼
でもArdinoのケース作ったり、Arduino組み込んだロボットみたいなの作ったり、やろうと思えばRC飛行機とか作れるし、
ときどき夢見すぎる人がいて、これがあれば市販のプラモみたいなのコピーし放題じゃん、みたいに思うと痛い目に遭うと思うけど
あと、自分の家の洗濯機と排水口の接続部に問題が会ったので、3Dプリンターで部品を設計して出力して自分で直したw
賃貸の管理人に問い合わせたら、修理業者と一緒に部屋に行くんで都合が良い日を教えろだの、壊したんかーおまえはーみいたいな剣幕で対応されて、
いや、壊してないから、どっちかというと排水口より自分の古い洗濯機の問題だから、と思って、どうしよーかー、と思ってたんだけど、
と思って、排水口と洗濯機の結合部を定規で簡単に測って、簡単な部品を設計して、まずはPLAで出力
水が流れすぎることが原因だと思われたので、流量を制限する部品を設計した
2回目の出力で設計に問題なさそうなことが分かったのでABSで出力し直した、で数年間問題なく使えてるw
PLAは水に弱いしお湯で変形したり溶けてしまうので
仰ることはわかりますよ。フレームワークを使いこなしているだけで、言語や理論を知った気になっているという指摘はわかります。
しかしながら現実問題、大多数が使っているフレームワークを使わないと CSRF や SQL インジェクションといった脆弱性に対して低コストで応対できる方法がありますか?まさか WAF でどうにかなるなんて、言いませんよね。今どきフルスクラッチでアプリ作れ、なんて逆に技術力がないとしか聞こえませんが。
ぶっちゃけ Ruby や PHP なんて、クライアントとサーバのデータを低コストで受け渡すだけのツールとしか思ってないわ。RDB や S3 といったドメインはストレージにより近いなにかだし、iOS/Android/ブラウザ もたかが Swift/Java/HTML+CSS+JavaScript をいじるだけじゃねーか。ウェブ領域はセキュリティ気にしないと死ぬから、むしろメンテされているフレームワークを更新し続けないと死ぬんだよ。自作やメンテしてないフレームワークを利用する方が気がふれているとしか思えませんがね。
小町や既婚家庭板のまとめブログへ移住したら?みたいな増田ネタ(anond:20200924185457、anond:20200925062730)に限らず、
ズーーーーーーーーーーーーーーーーっと
傷ついた傷ついた承認しろ承認しろ共感しろ共感しろってやっとるやんけ
過敏な人は自衛をしてSNSやるべきではない。自衛する判断能力が無いと言うなら尊厳の話になると思っているが、
一方で気軽に自身の個性や病状を気にせず、気軽に使えるSNSがあっても良いとは思っている
宗教によらず(告白・懺悔・赦し)、個人のモラルで現実的なコストで作れるかな?
コンピュータやプログラミングが好きで、その技術で以て社会に貢献したいと考えている人へ告ぐ。
日本のSIerなどに就職しても、給料以外に得るものなどない。だから、就職するな。
もし、コンピュータの技術で人の役に立ちたいと思うなら、オープンソースのプロジェクトに参加したり、本などを書いたりした方が良い(後者は一発当てると生活に不自由しない程度には稼げる)。
まず、世のSIerやPGに就職したところで、実質的に価値のあるソフトウェアを作ることは、まず無いと思っていい。
案件の大半は、コンピュータリテラシーの低い老人向けのクソ下らない業務システムなどだ。信じられないかも知れないが、「FAXと連動する」みたいなソフトウェアは、今も日本中で生産され続けている。
おまけに客自身が、そのシステムで実現したいことを本質的に理解してないから、従来紙の上でやっていたことを、そのままパソコンで行うだけのシステムを作ることになる。
ついでに言うと、SEやプログラマの仕事が設計やコーディング等の知的業務だと思ったら大間違いで、「客の送ってくるエクセルやパワポ資料の体裁を保ちながら、丸番号つきのスクリーンショットを追加する」みたいな下らない仕事が開発と同じくらいある。
あと、「IE9で動かない」とか「Firefoxで見たときだけテーブルの枠線が薄くなる」みたいな、本当にどうでもいい理由で既存のライブラリを利用せずに、フルスクラッチで書こうとする勢力が多数。
あと、日本の職業エンジニアのレベルは本当に低い。趣味でプログラミングを学んだその辺の学生の方がずっとレベルが高い。
まず、職業エンジニアのほとんどは、アルゴリズムとかオブジェクト指向設計とか、プログラムの性能や保守性に関わる知識を全然知らない。ハードウェア、データベース、ネットワーク、セキュリティ等のシステム運用に必要な情報技術の基礎知識を一通り知ってるエンジニアなんて、全体の1%もいない。
そもそも、業務で使っているプログラミング言語すらまともに勉強していない。「Effective ○○」みたいな本に書いてあるようなベストプラクティスをことごとく無視してクソコードを量産する。クソコードはそのプロダクトが死に絶えるまで残り続けて、改修のコストを指数関数的に増加させる。
下請けのゴミにもなると、ググって出てきたコードを意味もわからずコピペして「動かないんですけど」とか言ってくる。それでも仕事はある。
あと、ソースコードをバージョン管理していない会社すらわりと存在する。(「GitではなくSVNを使っている」とかいう意味ではない。文字通りバージョン管理していないのである)
こんなことは別にIT業界に限らないんだろうが、要はレベルの低い人ほど偉そうで、全体の足を引っ張っているわけである。
ここで言うレベルっていうのは、別にJavaやC++などを使いこなせることを意味してるわけじゃない。仕事の内容や目的をきちんと理解して、自立して仕事ができるかどうかだ。
お前んとこの独自フォーマットのエクセル出勤簿をシステムに取り込む機能が本当に必要なのか、よく考えて欲しい。あと、パソコンの使い方レベルの問い合わせを、開発者までたらい回しにしないで欲しい。本当に無駄でしかない。