C vs. C++


C または C++ で新規ソフトウェアを開発する場合、どちらの言語を選択しますか?
理由も合わせてお答えください。

回答の条件
  • 1人2回まで
  • 登録:2008/04/12 13:58:22
  • 終了:2008/04/17 09:24:31

回答(5件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/04/12 16:06:21

ポイント15pt

つくるソフトウェアの目的によりますね――。

Linuxでコマンドラインベースの簡単なツールを作るんだったら、クラスを用意せずに直接コーディングしていきたいのでCをチョイスします。

一方、Windowsアプリを作るんだったら、GUIのライブラリが充実しているC++(というよりVC++)をチョイスします。

id:Bookmarker

クラスを用意せずに直接コーディングしていきたいのでC

むー … 理解し難い理由です。

C++ はクラスを作る必要はないし、ほとんど C と同じように書けると思いますが…。

2008/04/12 16:34:12
id:haruo-31 No.2

haruo-31回答回数80ベストアンサー獲得回数102008/04/12 17:27:34

ポイント25pt

C++です。

プログラムの整合性を如何にコンパイラにチェックをさせるかと言う話になると思うので、

横着するならやはりC++でしょう。

完全にオブジェクト指向を踏襲する場合は下記みたいに書かないといけなかったり、

確かにそういう使い方をするとややこしいですね。

public class MainClass {
  public static void main(int argc, char** argv) {
    MainClass main_instance = new MainClass();

    :
id:Bookmarker

完全にオブジェクト指向を踏襲する場合は下記みたいに書かないといけなかったり

public class MainClass {
...

(・_・)エッ......? 何語ですか?

2008/04/12 22:40:30
id:RC30-popo No.3

POPO回答回数345ベストアンサー獲得回数132008/04/12 22:02:18

ポイント40pt

個人的に作る場合はC++。作ったデータ構造とロジックをマルチインスタンス化しやすいから。

仕事の場合は、状況によりますね。

大規模プロジェクトになれば、きちんとインターフェイスを定義して作れば、C++のほうが拡張性やメンテナンス性は高いとは思いますが、C++やオブジェクト指向をちゃんと理解して使いこなせる人間がどれだけ集められるか?という問題があります。

結果的にCにせざるを得ないという場合が多々。

日本のソフトの開発現場ってそーいうレベルのところ多く無いですか?

id:Bookmarker

理解して使いこなせる人間がどれだけ集められるか?という問題

そうですね。仕事の場合はそういう問題がありますね。

結果的にCにせざるを得ないという場合が多々

私の周りでは、C++ どころか C すら読み書きできない人が圧倒的に多いですね( ̄○ ̄;)

2008/04/12 22:34:34
id:yo-kun No.4

yo-kun回答回数220ベストアンサー獲得回数302008/04/12 22:55:56

ポイント20pt

Cでしか実現できずC++では実現できない、そんな機能ありましたっけ?

組み込み系などの開発で対応コンパイラがCしかないとかそういう状況ならば仕方がないとは思いますが、

どちらも選択肢として可能であれば幅広い選択肢が検討できるC++だと思います。


少なくともCかC++かという選択肢であればどう考えてもC++しかないと思っているのですが。

チーム開発となると「C++がわからないメンバーがいるから」という後ろ向きな理由でCにもなり得るのですかね。

id:Bookmarker

Cでしか実現できずC++では実現できない、そんな機能ありましたっけ?

無いと思います。標準化が遅れている機能はありますが。

無い(はずな)のになんで C を選択するの?っていうのが本質問のきっかけです。


# Ruby 開発者のまつもとさんは、オブジェクト指向言語でオブジェクト指向言語を実装するのは混乱するとか言ってたような気がします。

2008/04/13 01:07:58
id:hakob No.5

hakob回答回数43ベストアンサー獲得回数12008/04/13 15:09:43

ポイント5pt

C#です。.netなら開発環境やライブラリを使い回しができるし開発速度が速いので。

Windows上でウィンドウベースのアプリにしろ、コンソールベースにしろC++では実装速度が追いつきません。

と、これでは話になりませんが、文書処理(たとえば、シンプルなルールで住所リストを生成したり、ある特定の条件で大量のテキストデータから一部を抜き出したり程度)ならCのほうが楽かも。書かなくていいコードを書かなくて済みますし。①の人と同じですね。

それ以上、自分ひとりで開発&自分ひとりで使う、ということ以外ならC++のほうが圧倒的に利点は大きくなると思います。

(個人的にはC++は開発効率などの面で、組み込み系やドライバ系のようなメモリのシビアな監視が必要なところ以外は使う必要性がゼロだと思いますが。それ以上にメモリ関連のバグを造りこみやすいし)

あと、COBOLから来たエンジニアさんのC系列言語やJavaなんかの研修として、Cを選択するって言うのはありますね。

構文にまず慣れてもらって、そのあと・・・ということで研修をやっていた気がします。(COBOL汎用機→オープン系Webシステムへ転籍のひとですが)

  • id:haruo-31
    すみません、classにpublicは余分です…
    Javaとごっちゃになってたりして…(汗)
  • id:pahoo
    質問者さんからのコメント「C++ はクラスを作る必要はないし、ほとんど C と同じように書けると思いますが」は不愉快です。
    そういうコメントをされるなら、そもそも質問の意味がありません。
  • id:uml
    こいつは元々回答者を馬鹿にしてる悪質ユーザー、相手にしないが吉

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません