開発コソコソ話:スーパーコンピュータ開発
こんにちは、Artista Programming School の青柳です。長くて書くのがめんどうだから、これからは APS と呼ぶようにしようかな?そうしよう 笑
開発コソコソ話とは?
「APS は、現役プログラマーが教えますとか言っているけど、本当にちゃんとした仕事をしている現役プログラマーなの?」なんて事を聞かれる前に、自分から過去の開発についての話をしていこうというシリーズです。一応、守秘義務というお客様との約束がありますので、できる範囲で話していこうと思います。
スーパーコンピュータのカーネル開発
開発環境
C言語
Red Hat Enterprise Linux
スーパーコンピュータとは?
自分で説明するより、Wikipedia とかを見てもらったほうが話がはやいかもしれませんが、主に科学技術計算の目的で作られた、ものすごい計算能力を持ったコンピュータです。国の威信をかけてものすごいやつを作ろうとしていましたので、当然お金もものすごくかかります。蓮舫議員の「2位じゃだめなんでしょうか?」なんていう発言も話題になりましたね 笑
カーネルとは?
カーネルなんて聞き慣れない単語かもしれませんが、簡単に言えば OS のことです。そう、OS を作るお仕事をしていたということですね。
カーネルはコンピュータの動作の基本的な部分を担当しています。次のようなことってコンピュータはできて当たり前だと思いませんか?
通信ができる(Webサイトを見る)
プログラムが実行できる(アプリを立ち上げる)
ファイルを開いたりできる(Excelとかのファイルを開く)
などなど
そう、こういった当たり前の事をやってくれるカーネルさんがいるからこそ、SNS をしたり、音楽を聴いたり、プログラムを書いたりできるんですね。
どんな感じだった?
まあ、一言で言えば簡単ではなかったです、そして地味 笑。OS みたいに当たり前に動かないといけないところを作るというのはこういうことなのか!なんて思いながら頑張っていました。
そして、OS なので、処理が重くなってはいけません。あまり重たい処理にすると、アプリケーション実行に影響が出てしまいますからね。
フルスタック以上にフルスタック
突然ですがフルスタックエンジニアとは?
巷では「Webアプリケーションが一人で作れる」エンジニアをフルスタックエンジニア(Full Stack Engineer)と呼ぶようです。つまり、HTML や CSS のフロントエンド、REST API などのバックエンド、データベース、ネットワークを少々、くらいでフルスタックエンジニアと呼ばれます。
APS 講師はフルスタック以上にフルスタック(笑)
そうなんです、巷のフルスタックエンジニアは Web アプリケーションにおけるフルスタックエンジニアのことですね。APS 講師は、更にその下の OS レイヤまでの知識がある「フルスタック以上にフルスタック」なエンジニアです。(良い名前ない?笑)
実際、OS レベルの設定を見直したりしないと、アプリケーションが思うように動かないなんてことも多々あります。個人的には、こういったトラブルに陥ったときがエンジニアの質が問われる時です。つまり、狭い範囲の知識しかないエンジニアは原因の特定は難しいですが、広い知識をもったエンジニアは様々な角度からアプローチして原因を特定できます。
視点が一味違うプログラミング
というわけで、一味違うエンジニアが講師の APS です。皆さんもこれを機会にプログラミングを初めてみませんか?もちろん、経験者の方も歓迎です!