重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

複数の言語があったほうが、便利なのはわかります。
私自身、C言語が出来ます。仕事の関係で現在JAVAを勉強しているんですが、構文が
C言語の場合 printf
JAVAの場合 println
JAVAはC言語を元にしたわけだから、似せてもいと思うんですが・・・
全部が同じって言ってるわけではないんですが、統一されないのはどうしてですか?

A 回答 (6件)

個人的にはどのプログラム言語も基本的な記述は結構似てると思うんですけどね…。


(あまり多くの言語を知っているわけではありませんが、CをやったことあるとJavaって覚えやすいと思うんです)

で、統一されないのは何故か?という問いですが、
『あらゆるニーズを満たすパーフェクトな言語が(まだ)存在しない』と
『元々存在する言語に不満を感じた人が、良いところを取り入れたり、全く異なる設計思想に基づいた新しい言語を作ってきたのだから似ることはあっても同じものになるわけない』というのが答えじゃないかなと思います。

改良の余地が無くなってしまえば、自然とそれ以外の物が淘汰されるのが世の常です。
そういう意味ではまだまだプログラミング言語は発展途上なのでしょうね。
    • good
    • 0

>JAVAはC言語を元にしたわけだから


別にC言語を元にした訳ではありません。
プログラム言語に必要とされる要素としては、共通する物があるし
広く知られた言語が既にあり、使用できる文字・記号も限りがある
そういった状態では変えるより似た文法にしたほうが、C言語からの
移行も楽だからにすぎません。
元々、別の設計思想による物なので、統一される事はありません。
    • good
    • 1

こんにちは!



複数の言語を統一して使えたらなって事でしょうか?
いくら似てても、用途が違うとなると統一は出来ないんじゃないでしょうか。

調べたところ、
ざっくりいうと「C言語」はプログラムの開発言語として主流で、
オールマイティーに使える長所はあるが、
それ故に技術が必要とされるようで、
「Java」は、言語自体は「C言語」より楽な方で、
比較してアプリ開発がしやすいんですよね。

あとは、他の回答者の通り、似てても意味が違うものなので、
統一化は出来ないこと、
技術者のレベルを急に引き上げるのは難しいので、
JAVAが別に必要なのかなーという個人的感想でした。
複数あるのは、複数あるだけの理由があると思うんです。ご参考までに!
    • good
    • 1

printf は print formatted


printInはただたんに文字列出力+フォーマット対応なのではないでしょうか

Cランタイムでは文字列をただ表示するだけのputsという関数があります。それとの兼ね合いでprintfなのではないでしょうか。(あくまで憶測です)

また、個人的な意見にはなりますが、標準ライブラリの名前は、なるべくかぶらないようにしたほうが、各別されていて、分かりやすくて、調べやすいと思います。
たとえばC言語にはあるprintfの機能がJavaのにはない!となったら混乱しますよね。
    • good
    • 0

言語毎に流儀があるので、統一は難しいと思います。



ご提示の printf の場合ですが、これは以前の Java にはありませんでした。
理由を想像すると
* C言語の関数 printf は型安全ではありません。これは Java の設計思想である「強い型付け」に反します。
* Java メソッド名の命名基準は「キャメルケースで "動詞" または "動詞+名詞" かつ単語を略さない」です。printf はこれに違反しています。

それでも printf は知名度があり便利な関数だからか、多少の手直しをして Java5 にて追加されています。
http://docs.oracle.com/javase/jp/8/api/java/io/P …

しかしこの様に、他言語の機能を無制限に取り込んでいくと、以下の様な危険が増すでしょう。
* API の命名に統一感がなくなり分かりづらくなる
* 異なる哲学が複数存在すると、ユーザーが混乱する
* 「歴史的な理由」のお題目にて、妙な実装が幅を利かす

というわけで、言語毎の流儀に即した記述をするのが一番だと思います。
    • good
    • 1

まずもってそいつらは「構文」じゃない.



そして, その 2つの機能は違う. 違う機能を持っているなら違う名前であっても不思議ではない.
    • good
    • 2

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