C言語、C+、C++、C#の違いがよくわかりません。
自分でも調べてみましたが、「オブジェクト指向」という言葉が出てきて、よくわかりません。
わかりやすく教えていただけたら幸いです。
初心者がプログラミング言語を始めるならどの言語がいいですか?
幅広い分野で活用でき、初心者でもわかりやすい言語がいいのです。
私は、C言語、C+、C++、C#のどれかを勉強しようと考えているのですが、この中の言語ならどれがいいでしょうか?もちろんこの中の言語以外に初心者にわかりやすく幅広い分野で活用できる言語があればそちらにしようと思います。ありましたら教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

まずは「オブジェクト指向プログラミング」というモノについて勉強してみては?



プログラミング言語というのは「初心者」にはどれも簡単ではありません。
実際にコンパイル出来る環境があれば習得は早いとは思います。

因みに、CとC++は同じコンパイラで使用出来るので、「Cコンパイラ」「C++コンパイラ」を別々に用意する必要はありません。C/C++コンパイラでC#は使用出来ないのでC#だけは別物。


Perlという言語もあり、科学者が大量の測定データを分析する時に使用したりインターネットで動的ページの生成(CGI)に使用されたりしています。
大量のテキストデータを処理するならPerlは超高速。でも型定義とかが曖昧だし正規表現と鋳物を覚えないといけないのでこれまた大変。オライリーから出ている専門書でも正規表現はそれだけで1冊になってますからね。

「初心者にわかりやすい」と「活用」は相反することがあります。
そんなところに拘っていると本質を見失いますよ?
まずは気になる言語の書籍を買って読みあさりましょう。自分にとってわかりやすい言語かどうかはそれからです。
    • good
    • 1

元々、手続き型言語のCがありました。


これは、まあ今から思えば、一般的な高級言語です。

で、プログラムが段々大規模になるに従って、オブジェクトという単位でプログラムを作りやすくするという方法が登場しました。
オブジェクト指向言語C++です。似たような進化でObjective-Cというのもあります。

このC++は、もとのCと比べるとちょっと複雑で、しかも危険な部分も引き継いで持っていました。
多くの人間が躓くと言われている、ポインタなどを持っていたり、継承などの柔軟さが仇となっていたりしました。

そこで、C++を洗練して、尚且つ動作環境を統一したいという事で、C#というものが登場します。
とうとう、ポインタはなくなってしまいました。継承も柔軟性が制限された分、すっきりしています。
これは、.NET FrameWorkという共通のランタイムの上で動く、中間言語コンパイラです。
一応、Linux用の.Netもあるらしいです。ですから、マルチプラットフォームとマイクロソフトは言っています。
でも、そうは言っても、C++は、すでにウインドウシステムの世界では、どこ行ったって処理系がある状態で、事実上の標準と言っていいと思います。無理してC#にする意義は私には判りません。

規格を厳密に覚えて、扱う自信があるのなら、Cの規格を頭に入れちゃうと、C++や、C#の世界で戸惑うことがあると思いますが、プログラミング初心者なら、まず、簡素なCから初めてみるのがいいと思います。
    • good
    • 2

とりあえず…C+って言語は知りませんな。


「C言語で書かれているけど、中途半端にC++の規約で書いてある」って意味で、皮肉を込めた「C+」なら聞いたことがありますが。

>初心者がプログラミング言語を始めるならどの言語がいいですか?

向き、不向きもあるでしょうからなんとも…
# ちなみに私はC言語。C++は多少理解している(つもり)ですが、使いこなせるレベルになっていません。

C#だと、Microsoftローカル…になりますかね?
組み込み系でC#ってのは無かったかと。

Cの基本がないと、C++は厳しいかも知れません。
が、CにどっぷりだとC++の習得の妨げになる。という意見もあったような。
# 私はどちらかというと後者になる…のかな?

大きな本屋ならば、プログラミング関係の書籍のコーナーもあるでしょうから、
そこで入門書の類を見てみる。というのもありかと。

あとは…何をしたい(どんなプログラムを作りたい)っていう目的も関係するでしょう。
# 文字列処理するならCよりperlの方がお手軽…とか。
    • good
    • 2

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QLISPのマクロと他の言語のマクロの違い

LISPのマクロは強力と言われていますが、他の言語の言うマクロとはどう違うのでしょうか?

Aベストアンサー

ここでいう「マクロ」は一言で言うと「プログラムを生成する機能」ですね。
例えばCのマクロを例に上げますと、
#define MAX(a, b) (a) > (b) ? (a) : (b)
というようなマクロを定義すると、後に
MAX(10, x)
と書いた際に
(10) > (x) ? (10) : (x)
というプログラムがコンパイル時に生成されます。

Cなどのマクロは、マクロ専用の文法があり、
マクロで書けるものにはある程度の制限が付きます。例えば、
「マクロの引数が定数の際に奇数か偶数かで『生成するプログラム』を変える」
などといった複雑なことはできません。

一方、Lispのマクロは、Lispそのもので書くことが可能で、
任意のプログラムをマクロとして書くことができます。
マクロの中で条件分岐やループなど、なんでも出来てしまいます。
これにより、コンパイル時にマクロの引数の型や値に応じて
生成するプログラムを変えることで最適化を行ったり、
新たな言語機能(と対応する文法)を追加するようなことが可能です。

例えば、昔のLispにはオブジェクト指向の機能がありませんでしたが、
マクロを使うことで、後からオブジェクト指向の機能を付け加えることができました。
また、Common Lispのオブジェクト指向の機能が独特で嫌いな人は、
マクロを使うことでJava風のオブジェクト指向の機能を追加するようなことも可能です。
極端な話、Lispの上で別の言語が作れてしまうわけです。

コンパイル時に任意のプログラムを実行できるという点では、
C++のテンプレートとも似ているといえますが、
C++のテンプレートはテンプレート専用の文法を用いる必要ある点がLispと異なります。
C++をそれなりに書ける人でも、テンプレートで任意のプログラムを書こうとすると、
かなりの苦労を強いられます。テンプレートの文法がC++の文法と異なるのが苦労する原因の一つです。
一方、Lispのマクロは、Lisp自身で書けるため、
Lispが書ける人なら誰にだって書けてしまうわけです。

以上がLispのマクロが強力と言われる要因(の一部)です。
実際に使われてみると色々と実感できると思いますよ。

ここでいう「マクロ」は一言で言うと「プログラムを生成する機能」ですね。
例えばCのマクロを例に上げますと、
#define MAX(a, b) (a) > (b) ? (a) : (b)
というようなマクロを定義すると、後に
MAX(10, x)
と書いた際に
(10) > (x) ? (10) : (x)
というプログラムがコンパイル時に生成されます。

Cなどのマクロは、マクロ専用の文法があり、
マクロで書けるものにはある程度の制限が付きます。例えば、
「マクロの引数が定数の際に奇数か偶数かで『生成するプログラム』を変える」
などといった複雑なことはで...続きを読む

Q構造化手法、データ中心アプローチ、オブジェクト指向の違い

ソフトウェア方法論で、構造化手法、データ中心アプローチ、オブジェクト指向の違いについてイメージが掴めない状態です。

個々の用語の説明については、情報処理試験などの参考書で概要は調べています。
企業の業務システムで例示してもらえるとありがたいのですが・・・

特にDOA(データ中心アプローチ)とOOA(オブジェクト指向)の区別が明確ではありません。よろしくお願いします。

Aベストアンサー

まず最初に「比較できない」ことを頭に置いてください。

各用語の意味はご存知なようなので割愛します。

「構造化」は手続き型パラダイムにおけるプログラミング手法のひとつです。

「オブジェクト指向」はプログラミングパラダイムであり、比較すべきは手続き型プログラミングパラダイムです。

「データ中心アプローチ」は手続き型パラダイムでもオブジェクト指向パラダイムでも利用可能なプログラミング手法で、構造化プログラミングでも利用することが出来ます。

Qlispとその他関数型言語について

「lispを学べば悟りが開ける」という言葉をよく聞きます。

l他のプログラミング言語哲学とは一線を画すほどの教示をもった言語という印象を持ちます。

僕もlispを少し学んだだけですが「悟り」は開けませんでした。

しかし他の関数型言語(haskellとか)ではそういう話は聞きません。

なぜでしょうか。

やっぱ括弧ですか。

Aベストアンサー

他の言語が、まだまだ歴史が浅く、使っている人、特にカリスマと呼べるような人が少ないからではないでしょうか。
それに「haskellを学べば..」などといまさら言っても、二番煎じになってしまいますし。

Q|+*雑誌、コンピュータ+*++***|

要所も合わせると、数限りなくあると思われるコンピュ-ター雑誌ですが、
新しい情報や、今存在する機器の詳しい説明ということに限ると、どの雑誌が最も存在価値が高いですか?

Aベストアンサー

あなたが どのようなコンピュータ(たとえばOSに限れば Windows系なのかMAC系あるいはUNIX、Linuxなのか)全般なのか言語関係、データベース関係、通信関係等どこを知りたいのか?あくまでも全般であれば インターネットの日経BP社のニュース(各種あります、無料が大半)が便利です。雑誌より早いし関連ページで深く読む事も出来ます。

QLISPで C言語のフォーマット書式の"%02d"

LISPで C言語のフォーマット書式の"%02d"にあたる記述の仕方がわかりません。どのようにすればよいのでしょうか?

Aベストアンサー

Common Lisp で良いのですよね?

(dolist (num '(5 10 200))
(princ (format nil "~2,'0D~%" num)))

実行結果:
05
10
200


format関数
http://www.yuasa.kuis.kyoto-u.ac.jp/~hiraisi/format-func.html

Q単指向性ステレオマイクを超指向性のように使う方法

AT9911を購入したのですが録音したい音以外の音も拾ってしまって残念ながらあまり使い物になりません。

単指向性ステレオマイクを超指向性のように使う方法ってありますか?

Aベストアンサー

改造しないと欲しい音は獲れません。
ガンマイクの音響管やパラボラ集音器で指向性をさらに補強する
その代わりステレオ成分の音質がおかしくなるリスクがある。
例、サンケンWMS-5の仕組み(ミッドサイド方式のセンターがガンマイク)
http://www.sanken-mic.com/qanda/index.cfm/13.43

又は昔の篠山紀信のテレビCMセリフ並みに、行けるまで相手に詰め寄る。
(ワンポイントステレオマイクは自然に包囲感を録るから、これが適当)
ワイヤレスを付けて音場を優先(画面内に)でマイクを立て仕込んでしまう。
ドラマとかインタビューサイズならブーム両腕でかかげてで寄る。

Qlispの入門書

lispの入門書を探しています。

lispの書き方をただ説明するだけでなく、他の言語と違ってどういう利点が
あるのかを説明したものがいいです。

なにかおすすめの本があったら教えてください。

Aベストアンサー

・The Little Schemer
Lispの最高の入門書です。一問一答を追っていくことで、リスト操作やLispプログラムを作っていく感覚について皮膚で理解できるようになります。
英語ですが、難しい文章はないのでそれほど問題ないはず。
環境の整えかたなどの記述はいっさいありません。 "Lisp" を実践して学ぶ本です。

・プログラミングGauche
Lispの方言の一つにSchemeという言語があります。その一つの処理系であるGaucheの本です。さいきん出たばっかり。
Gauche のさまざまな組み込み関数を利用することで関数型プログラミングを実践していきます。
日本語で勉強したいならこちらです。

・リスト遊び
日本語だとこの辺も入門書です。あまり詳しく知りませんが、Emacs Lispの本です。
筆者はEmacs上でemailを読めるMewというソフトウェアの開発者でもあるそうです。

Lispの良さについてはネット上の文章を読む方がよろしいかと。適当に、LispとかPaul GrahamとかShiroとかのキーワードを探してみてください。
「ハッカーと画家」を読むのも良いですね。


Lispコミュニティにコミットするのがいちばんですが。

・The Little Schemer
Lispの最高の入門書です。一問一答を追っていくことで、リスト操作やLispプログラムを作っていく感覚について皮膚で理解できるようになります。
英語ですが、難しい文章はないのでそれほど問題ないはず。
環境の整えかたなどの記述はいっさいありません。 "Lisp" を実践して学ぶ本です。

・プログラミングGauche
Lispの方言の一つにSchemeという言語があります。その一つの処理系であるGaucheの本です。さいきん出たばっかり。
Gauche のさまざまな組み込み関数を利用することで関数...続きを読む

Qオブジェクト指向?

最近、プログラムを始めようと思い、色々質問を見ていたら、
オブジェクト指向という言葉がすごいいっぱいありました。

ちょっと調べてみましたが、よくわかりませんでした。どういう事なのでしょうか?

教えてくれたら嬉しいです

Aベストアンサー

プログラミング自体がわからない人が、まずオブジェクト指向を理解するのは無理です。
説明を読んでもよくわからない(ぴんと来ない)と思います。

まずはある程度のプログラムが読み書きできるところまで勉強してください。
Rubyのようなオブジェクト指向前提の言語を学ぶとそのあとオブジェクト指向が理解しやすいかも知れません。
Javaでもいいのですが、初心者がJavaでオブジェクト指向を理解するのは難しそうです。

Q初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?

初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?
JavaScriptをやっていて、関数型言語に興味を持ちました。

いままで、勉強した言語はC < Java < Python < JavaScriptです。(右側の方が比重・興味が大きい)
現在、Web系志望の学生なので、その辺を踏まえてアドバイスいただけると助かります。

今のところ興味を持ってるのは、Common Lisp/Haskellあたりです。

よろしくお願いします。

Aベストアンサー

C言語が「関数型」?なのか、と言われると多分違うと思うんですけどね。普通は命令型/手続き型に分類されるんじゃないか、と思います。

ちなみに、JavaScriptはSchemeに影響を受けてる言語です。それで言うと、SchemeかCommon Lispがいいんじゃないのかな、とは思いますがね。ただ、あんまり関数型、って感じで書かれている本は少ないと思います。

Web系志望と言う事なんで、Common Lispですと、

ANSI Common Lisp: http://www.pej-hed.jp/washo/288.html
にHTML生成のトピックあり。

実践Comon Lisp: http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06721-1
にAllegro Serveと言うライブラリを利用したWebプログラミングの例があり。HTML生成の例もあり。
原著のサイトでは、
http://www.gigamonkeys.com/book/practical-web-programming-with-allegroserve.html
http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-interpreter.html
http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-compiler.html
辺り。

プログラミング言語Lisp: http://ascii.asciimw.jp/books/books/detail/4-7561-3926-4.shtml
CL-HTTPと言うライブラリを用いたWebサーバーの説明が載っています。
ただし、本自体はMacintosh用の商用実装、Mac Common Lisp

Mac Common Lisp:
http://www.digitool.com/

を用いたものなんで、注意する必要があります。Macを持ってないならあまりお薦めしません。また、若干古い本ですね。

Haskellの方は良く分かりませんが、Common LispならそれなりにWeb関係の簡単なアプリの書き方も紹介されている、と言う事です。

参考までに。

C言語が「関数型」?なのか、と言われると多分違うと思うんですけどね。普通は命令型/手続き型に分類されるんじゃないか、と思います。

ちなみに、JavaScriptはSchemeに影響を受けてる言語です。それで言うと、SchemeかCommon Lispがいいんじゃないのかな、とは思いますがね。ただ、あんまり関数型、って感じで書かれている本は少ないと思います。

Web系志望と言う事なんで、Common Lispですと、

ANSI Common Lisp: http://www.pej-hed.jp/washo/288.html
にHTML生成のトピックあり。

実践Comon Lisp: http://s...続きを読む

Qobjectiv-Cを学ぶにはC++を先に学ぶ必要があるか?

objectiv-Cを学ぶにはC++を先に学ぶ必要があるか?

最終的にobjective-cでiphone用のプログラムを作成したいと思っております。
調べているとobjective-cが必要であるが分かりました。
C++と似ていて否なるものというような表現が多いのですがC++を学んだあとに取り掛かるのが良いですか?それとも最初からobjective-cを学んだほうがよいですか?

要するにobjective-CはC++の上に成り立っているのか、Cから派生した、C++と同列の別言語なのか?
というあたりが知りたいところです。

当方のプログラミング言語の知識は
BASIC、FORTRANは使ったことがあります。
C言語は入門書「C言語入門 THE C Primer アスキー出版局」を読んだだけで、使ったことはありません。

よろしくお願いします。

Aベストアンサー

まったくの別物です。気にせず Objective-C を勉強すればよいでしょう。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報