C言語から派生した現代のプログラム言語は非常にたくさんあります。最近、よく使われている言語を中心に上げておけば、 C++ Java C# Ruby Python PHP JavaScript 等など が上げられます。今、思いついたものだけですので、ここで書いていない言語も数多くあります。例えば、C++(シープラスプラス、シープラプラ)はC言語にオブジェクト指向の考え方を付加して記述できるようにしたプログラム言語で、当初、C言語のプリプロセッサとして動作し、C言語のコードに変換して動くものでした。 注:プリプロセッサって何だよ・・・と思いますよね。いずれ話します。 Java(ジャヴァ)はC++とコードの見た目はよく似ていますが、オブジェクト指向プログラム言語の一つで、現代(現在)の業務アプリケーション開発によく使われているメジャーな言語です。色々な処理系でプログラムの細かな変更なしに動作するように、その仕組みが作られていて、実行の汎用性が高いのです。ただ、そのために実行速度、性能を少々犠牲にしています。CやC++で作られたプログラムの方が一般的に言えば高速に動作します。 注:その仕組みって何よ・・・どうしてそういう違いがあるの?という疑問にはまたどこかで説明します。 C#(シーシャープ)はJavaによく似たオブジェクト指向プログラム言語ですが、Microsoftの製品やそれらを使った環境で使われるMicrosoftが作った言語です。簡単に言えば、Windowsで動くプログラムを作る時にJavaの代わりに使う言語です。 Ruby(ルビー)はオブジェクト指向プログラム言語の一つで、スクリプト言語と言われます。Python(パイソン)、PHP(ピーエイチピー)、JavaScript(ジャヴァスクリプト)も同様にスクリプト言語です。 誤解を恐れずイメージで言ってしまうと、スクリプト言語はプログラム言語のうちの、ある種の簡易言語です。記述は単純で簡便。それで大体のやりたいことができる。今どきのスクリプト言語の多くは「オブジェクト指向」を実現しているので、メンテナンス性も高い。ただし、動作はコンパイラ言語と比べると遅い。遅くても問題のない処理やシステムで使われます。当初は「簡易言語」だと思っていましたが、今は十分に「フルスペックの」プログラム言語になりました。 ちなみに記述が簡便・・・と言ったのは、細かな定義や宣言といったことを省略したり、あいまいさを許したりするということがあるからです。逆にコンパイラ言語は「定義、宣言、記述」の内容に厳密さを要求されることが多いということです。厳密に指定(指示)しないとできない高度な処理や、コンピュータを「厳密に、正確に、極めて効率よく、高速に動かす」というようなことをするためにはコンパイラ言語を使う必要があります。 余談を一ついっておくと、ほとんどのプログラム言語の開発者(作者)は海外の人たちですが、Rubyは日本人が作りました。松本ゆきひろ氏と言います。現代の日本の天才技術者の一人ですね。 さて、どれを使うのか・・・至極当たり前の解答をいえば、プログラムが使われる環境に使用可能で、使い勝手の点で適当と思われるものを選ぶこと、ということになります。 プロの開発者の場合は、開発依頼者である顧客の要求・要望や、所属する会社などの意向によって決まるというのがホントのところです。つまり、大人の事情とも言えますね。 とは言うものの、この記事の説明で「オブジェクト指向」プログラム言語という言葉がどの言語でも出てきているのに気づかれたでしょう。 今どきのプログラム言語では、オブジェクト指向開発、オブジェクト指向プログラミングが必須ということです。 したがって、これからプログラミングを学ぶという皆さんは、間違いなく「オブジェクト指向プログラム言語」のいずれかを使うことになります。 ということは、オブジェクト指向って何よ・・・ということを学ばなくてはならないということです。 (2022-03-02~2022-03-23) 参考記事 (1)C/ C++とJavaの違いは以下の記事を参照。 https://www.sejuku.net/blog/113570 (2)スクリプト言語、コンパイラ言語やインタープリタ言語との違いは以下の記事を参照。 https://persol-tech-s.co.jp/hatalabo/it_engineer/558.html
目次
コメント