C言語についてどうしてもわからない疑問
プログラミング初心者です。
C言語を勉強中に疑問に思ったことが2つあります。
まず1つ目。
C言語以外のプログラミング言語、例えばjavaとかC#とかjsとかpythonとかrubyとかPHPとか、には開発者にとって便利なライブラリとかフレームワーク(僕にはこの2つの明確な違いがわかりません。が、どちらも「開発者が定義しなくてもよい関数やオブジェクトの集合」という認識があります)がありますよね。
そのおかげで色んな人達がプログラミングし易くなりました。
ネット(はてぶのホットエントリとか)でも「馬鹿な俺がプログラミングを勉強して〇〇を作った」といった記事をよく目にします。
でも「C言語を使って」というのは聞いたことがありません。
そもそも、C言語はそいういったライブラリやフレームワークが少ないように感じます。
検索してもrailsとかjqueryのようなフレームワーク(ライブラリ?)は見つかりません。
これが無かったらプログラムなんて作れないのでは?
しかし、世間にはC言語で作られたプログラムが多いのもまた事実。
C言語ではいったいどのように開発が行われているのか教えてください。
2つ目
unixとかlinuxといったOSはC言語で書かれている聞いたことがあります。
しかし、プログラムの開発は「コードを書く→コンパイル(→デバッグ)→実行」という流れですよね。
ではOSを開発するときに、そのコードをどうやってコンパイルするのでしょうか?
コンパイラはOSの上に立っているとするなら、OSがない状態でコンパイラはどこに立てばいいのか。
そこがわかりません。
誰かこの2つの疑問に答えてください。
お願いします。
お礼
ご丁寧にアドレスまで貼っていただき有難うございます。一時、「JAVAのGUIはWINDOWSに完全には対応できていない」ということを聞いたことがあるような気がするのですが、それは大した問題ではないと考えて差し支えないのでしょうか? 兎にも角にも、これからご教示頂いたサイトに行ってみますね。ありがとうございました。