
C言語で個人の趣味では何が出来ますでしょうか。
プログラミング言語をさらに追求したいので、これからC言語を学びたいと思いますが、C言語って生産性が悪くて作りたくても作れないことはありますでしょうか。また、将来性はどうでしょうか。
個人の趣味では何が出来ますでしょうか。私が思いつくことはWindowsアプリぐらいです。最近、C言語によるLinuxのネットワークプログラミングという本が出てきたのですが、あれはどういうものでしょうか。
また、当方は自宅サーバをよくいじる方なので、C言語は必要になりますでしょうか。
No.1ベストアンサー
- 回答日時:
> C言語って生産性が悪くて作りたくても作れないこと
C言語があれば、コンピュータ上で実行できることなら「何でも作れます」が、「現実的には作ることが無茶」なことも非常に多いことになります。
正規表現などは基本的になく、文字列処理がPerlやPHPなどと比較して非常に手がかかります。
Windowsアプリも最近ではもうC#でほぼ十分です。サーバいじりが目的ならawk/perl/python/bashあたり使えれば大概の環境で困りませんね。
システムに近いところを触りたい・OSを知りたい などの意志でないなら、敢えてC言語を触る必要もないかも知れません。
プログラミング言語を追求するという目的なら、SchemeとかHaskellとかPrologとか学んだ方が視界が広がります。
実はプログラミングを行うに当たってはOSを知る必要もあって、その意味ではC言語をやって損しないのですが、どうもプログラミング「言語」を追求したいと聞くと、言語的に異なるパラダイムを持つものを知って欲しく思ってしまいます。
ネットワークプログラミングの本は私は知りませんが、おおかたntolとかgetaddrinfoとかそういうのでしょう。
Python等はOSの上に自身のフレームワークという層をひとつ噛ませて実行しているため、OSで何が起きているのか分かりません。C言語ではその層が存在しない状態で動かすことが出来るため、何が起きているのかよく分かります。
ネットワークプログラミングはそういうものの代表です。PHPやPythonなどでは「このポートでサーバ動作をする」みたいな関数が準備されていて、それを利用するだけで簡単にサーバを作ることができます。C言語であれば、ソケット開いてバインドしてリスンして名前解決してバイトオーダ変えて、と色々なことをしなければ通信することが出来ません。
こういうものは一度体験するとコンピュータに対する理解が深まります。しかし二度目以降はプログラムの動作速度以外に得るものはなくなります。
その程度のものです。
質問の雰囲気からすると、あまりC言語をすすめる気にはなりません。
プログラミング自体に対して好奇心をお持ちなら、自力でもうちょっとがんばってみてください。Write Great CodeとかCode Completeあたり読んだりしてはどうですか。
No.5
- 回答日時:
>C言語で個人の趣味では何が出来ますでしょうか。
OS、コンパイラ、インタプリタ、Windowsアプリ、Linuxアプリ、ゲーム、マイコンのプログラムでも何でも作れます。
>プログラミング言語をさらに追求したいので、これからC言語を学びたいと思いますが、C言語って生産性が悪くて作りたくても作れないことはありますでしょうか。また、将来性はどうでしょうか。
Windowsアプリに関しては生産性が悪いと思います。将来性という意味なら、C++の方がメインになって来ていますね。ただ、Cでないといけない場面もあります。趣味の範囲でいうなら、必要なら新しい言語を覚えれば良いんじゃないでしょうか。
>最近、C言語によるLinuxのネットワークプログラミングという本が出てきたのですが、あれはどういうものでしょうか。
文字通りの本です。C言語でネットワークプログラミングを学ぶための本ですね。WWWサーバのapacheとかもC言語で書かれていますので、自分でサーバを作りたいとか、WEBクライアントを自作したいとか、そんな事の初歩を勉強するための本です。
>また、当方は自宅サーバをよくいじる方なので、C言語は必要になりますでしょうか。
まず有り得ませんが、必要以上にカスタマイズしたいなら必要になってくるでしょう。最新版にするためにmakeを自分で始めるとC言語の知識があるに越したことはありませんので。
No.4
- 回答日時:
一応、PCアプリやドライバーの開発から家電製品の制御までやってるなんでも屋です。
>C言語って生産性が悪くて作りたくても作れないことはありますでしょうか
「生産性」と「作れない」は別物です。
その「生産性」を上げるための仕組み(関数)を作ること自体がC言語にはできますから。
>個人の趣味では何が出来ますでしょうか。
やる気になれば何でも。
質問者さんが今使用している、携帯、デジカメなどの家電製品の制御もC言語で組まれている場合が多いですよ。
No.3
- 回答日時:
SE歴20年の者です。
かつてCコンパイラの日本語インプリメントした経験がありますが、いまや、C言語は縁の下の力持ちという役回りで、当時より利用者人口が増えているように感じます。
PHP、Rubyといった高級スクリプト言語はCで書かれていますし、LinuxそのものもCで書かれてます。各種デバイスドライバも、たいていCで書かれています。
「自宅サーバ」のOSが何か分かりませんが、Linux系でしたらCは必須です。
逆に、UIを書くのは苦手です。
Windowsひたら、コア処理部分はVisualCで書いて、UI部分をVisualBASICで書くということはよく行われます。
ロボットや自動車の制御プログラムもCが多いです。
個人的にはロボットの制御プログラムに興味があります。
No.2
- 回答日時:
WindowsアプリはMFC無いと苦しいですからC++の方がやりやすいです。
Win32API直叩きならCでも平気ですがMFC(またはそれに類するAPIが)無いと色々と面倒です。
「C言語によるLinuxのネットワークプログラミング」みたいな本は20年以上前から存在します。
バークレーSocketを使ったTCP/IPまたはUDP/IPを使用したアプリケーション層での通信プログラムの作り方です。
httpやメール/FTPなどの全ての通信サービスの基礎です。
通信系を弄るならマルチスレッドの知識も技術も必要になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pythonでの不均一なサイコロを...
-
VBでアナログ時計を作りたい
-
数学、プログラミング、物理、...
-
エクセルVBAでRS232Cへ
-
ノートPCについて 大学・専門へ...
-
VC++でCtrl+Vを操作させたい
-
プログラミングの質問です。x^2...
-
リピート再生が出来ません
-
アセンブリ名とは??
-
C言語を学ぶうえでの古典的な名...
-
push any key で終了する方法?
-
VBA フォルダ アクセス権限付与
-
プログラミング の技術があれば...
-
VB 1対1の簡単なチャットプログ...
-
画像の画素値を変えるC言語のプ...
-
作業工程 SDとMD
-
C言語で常駐ソフトを作成
-
今のプログラミング言語
-
C言語、C+、C++、C#の違い
-
HOLONついて教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ノートPCについて 大学・専門へ...
-
数学、プログラミング、物理、...
-
アセンブリ名とは??
-
リピート再生が出来ません
-
Visual Studio Codeについて
-
PLC 命令
-
PL/Iについて
-
Cで本格的なプログラムを作りたい
-
作業工程 SDとMD
-
Pythonでの不均一なサイコロを...
-
OpenGLで円筒つくり
-
Macでプログラミングしている方...
-
H8S 2462のプログラミング方法
-
C言語で常駐ソフトを作成
-
高校生です! プログラミングに...
-
乱数の使いよう(C++)
-
push any key で終了する方法?
-
procってなんですか?
-
CSVデータの"(ダブルクォーテ...
-
三菱製PLC Qシリーズで技術的な...
おすすめ情報