C言語で個人の趣味では何が出来ますでしょうか。
プログラミング言語をさらに追求したいので、これからC言語を学びたいと思いますが、C言語って生産性が悪くて作りたくても作れないことはありますでしょうか。また、将来性はどうでしょうか。
個人の趣味では何が出来ますでしょうか。私が思いつくことはWindowsアプリぐらいです。最近、C言語によるLinuxのネットワークプログラミングという本が出てきたのですが、あれはどういうものでしょうか。
また、当方は自宅サーバをよくいじる方なので、C言語は必要になりますでしょうか。
No.5
- 回答日時:
>C言語で個人の趣味では何が出来ますでしょうか。
OS、コンパイラ、インタプリタ、Windowsアプリ、Linuxアプリ、ゲーム、マイコンのプログラムでも何でも作れます。
>プログラミング言語をさらに追求したいので、これからC言語を学びたいと思いますが、C言語って生産性が悪くて作りたくても作れないことはありますでしょうか。また、将来性はどうでしょうか。
Windowsアプリに関しては生産性が悪いと思います。将来性という意味なら、C++の方がメインになって来ていますね。ただ、Cでないといけない場面もあります。趣味の範囲でいうなら、必要なら新しい言語を覚えれば良いんじゃないでしょうか。
>最近、C言語によるLinuxのネットワークプログラミングという本が出てきたのですが、あれはどういうものでしょうか。
文字通りの本です。C言語でネットワークプログラミングを学ぶための本ですね。WWWサーバのapacheとかもC言語で書かれていますので、自分でサーバを作りたいとか、WEBクライアントを自作したいとか、そんな事の初歩を勉強するための本です。
>また、当方は自宅サーバをよくいじる方なので、C言語は必要になりますでしょうか。
まず有り得ませんが、必要以上にカスタマイズしたいなら必要になってくるでしょう。最新版にするためにmakeを自分で始めると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などの全ての通信サービスの基礎です。
通信系を弄るならマルチスレッドの知識も技術も必要になります。
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あたり読んだりしてはどうですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- C言語・C++・C# プログラミング言語「C#」の難易度ってどれくらいですか? 4 2022/05/12 19:15
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- その他(言語学・言語) ピダハン語 2 2022/07/14 12:41
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- IT・エンジニアリング FORTRAN、COBOL、C、Java、C++とか誰が作ったのですか?言語習い使いまた出て、キリが 4 2023/05/06 23:11
- C言語・C++・C# C言語 3 2023/07/11 19:55
- その他(言語学・言語) VBA、C言語、英語。 それぞれの習得時間ってどれくらいですか? 1 2023/03/30 20:55
- その他(言語学・言語) 外国語問題 1 2022/07/21 15:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
procってなんですか?
-
LeetCodeていうの初めて、
-
家庭のパソコンで Python の 環...
-
以下のサイトのようなフォーム...
-
OpenCVで音声は扱えるか
-
プログラミングの雑談とかでき...
-
プログラミングを教えたいです...
-
私はプログラミングは一切分か...
-
VC++でCtrl+Vを操作させたい
-
push any key で終了する方法?
-
Visual Studio Codeについて
-
お勧めサイトを教えてください。
-
OpenOfficeのコンボボックスの追加
-
サニタイジング
-
小学1年生の子です。塾に行かせ...
-
義務教育レベルのプログラミン...
-
最近小学生、中学生にもプログ...
-
アセンブリ名とは??
-
Borland C++ 5.5.1でデバッグす...
-
プログラミングの仕事に就く方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
小学1年生の子です。塾に行かせ...
-
Visual Studio Codeについて
-
プログラミングを教えたいです...
-
LeetCodeていうの初めて、
-
義務教育レベルのプログラミン...
-
procってなんですか?
-
私はプログラミングは一切分か...
-
IT業界より楽に稼げる業界って...
-
プログラミングの雑談とかでき...
-
最近小学生、中学生にもプログ...
-
アセンブリ名とは??
-
CSVデータの"(ダブルクォーテ...
-
以下のサイトのようなフォーム...
-
家庭のパソコンで Python の 環...
-
オススメのプログラミングスク...
-
VBA フォルダ アクセス権限付与
-
プログラミングをやってます。 ...
-
エクセルVBAでRS232Cへ
-
MFCとC++/CLIとの比較
-
VBAプログラミング
おすすめ情報