アカウント名:
パスワード:
Cのシェアが増加したのは喜ばしいことだ。
っていうか上から5つ全部C派生ですよね
Java, C, C#, C++, Objective-C
#2081178 wrote:
派生は4つかと
#2081208 wrote:
文法こそ似てるものの、C++以外は思想が違うと思う。JavascriptとかPHPをC派生って言うのと同じような違和感が。
はいはい。おまえら素人の感じる違和感とか、勝手な分類とか全然全くどうでも良いから。ここ [levenez.com]を良く読んでから出直してきてね。
結局「派生」という言葉の定義で合意が取れていないので、どこまでいっても平行線ではあるのですが……。
「CとC++」または「CとObjective-C」の関係は、JavaやC#よりも遙かに密接なのですよ。もともと、どちらも「Cをオブジェクト指向言語へ改良する」ということを目的としているので、根っこの部分はほぼオリジナルのCそのものです。したがって、C++もObjective-Cも、Cで作られたライブラリを(基本的には)リコンパイルすることなく利用可能です。(そのうえ、Objective-C++などという接ぎ木言語まで存在します)
JavaもC#も、それはできません。かつ、どちらのプログラムも大抵、固有のライブラリ(Javaクラスライブラリ | .Net Framework)及び仮想マシン(Java VM | CLR)と不可分なので、ソースコードが流用可能ということはまずありません。
一例を挙げると、
char* hello(void) { char* str = (char*)malloc(14); strcpy(str, "Hello, World!"); return str;}
みたいなCコードがあったとします。このコードはC++及びObjective-Cでは無修正でコンパイル可能ですし、Cコンパイラで事前にコンパイル済みのオブジェクトもリンク可能です。(C++にリンクするときは若干おまじないが必要)ですが、Java及びC#では、このコードをコンパイルすることも、もちろんリンクすることも不可能です。つまり、プログラムの移植性が大きく異なるわけです。
コードの相互可用性なんぞで派生か否かは決まらんよ。C#はJavaの設計思想に改良を加えたものだしJavaはC++の設計思想に改良を加えたもの。そしてC++はCを拡張したものだ。
はいはい。おまえら素人の感じる設計思想とか、勝手な分類とか全然全くどうでも良いから。
ACで玄人気取りとかおもしろおかしくて腹で茶が沸きそうだぜ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy
Cのシェア (スコア:0)
Cのシェアが増加したのは喜ばしいことだ。
Re: (スコア:0)
っていうか上から5つ全部C派生ですよね
Java, C, C#, C++, Objective-C
Re: (スコア:0)
#2081178 wrote:
#2081208 wrote:
はいはい。
おまえら素人の感じる違和感とか、勝手な分類とか全然全くどうでも良いから。
ここ [levenez.com]を良く読んでから出直してきてね。
Re:Cのシェア (スコア:0)
結局「派生」という言葉の定義で合意が取れていないので、どこまでいっても平行線ではあるのですが……。
「CとC++」または「CとObjective-C」の関係は、JavaやC#よりも遙かに密接なのですよ。
もともと、どちらも「Cをオブジェクト指向言語へ改良する」ということを目的としているので、根っこの部分はほぼオリジナルのCそのものです。
したがって、C++もObjective-Cも、Cで作られたライブラリを(基本的には)リコンパイルすることなく利用可能です。
(そのうえ、Objective-C++などという接ぎ木言語まで存在します)
JavaもC#も、それはできません。
かつ、どちらのプログラムも大抵、固有のライブラリ(Javaクラスライブラリ | .Net Framework)及び仮想マシン(Java VM | CLR)と不可分なので、ソースコードが流用可能ということはまずありません。
一例を挙げると、
みたいなCコードがあったとします。
このコードはC++及びObjective-Cでは無修正でコンパイル可能ですし、Cコンパイラで事前にコンパイル済みのオブジェクトもリンク可能です。(C++にリンクするときは若干おまじないが必要)
ですが、Java及びC#では、このコードをコンパイルすることも、もちろんリンクすることも不可能です。
つまり、プログラムの移植性が大きく異なるわけです。
Re: (スコア:0)
コードの相互可用性なんぞで派生か否かは決まらんよ。
C#はJavaの設計思想に改良を加えたものだし
JavaはC++の設計思想に改良を加えたもの。
そしてC++はCを拡張したものだ。
Re: (スコア:0)
はいはい。
おまえら素人の感じる設計思想とか、勝手な分類とか全然全くどうでも良いから。
Re: (スコア:0)
ACで玄人気取りとかおもしろおかしくて腹で茶が沸きそうだぜ