ホームページ >バックエンド開発 >PHPチュートリアル >プログラムで使用できるプログラミング言語は 1 つだけですか?

プログラムで使用できるプログラミング言語は 1 つだけですか?

WBOY
WBOYオリジナル
2016-06-17 08:30:441492ブラウズ

そうでない場合、複数の言語をどのように連携できるのでしょうか?原理は何ですか?

返信内容:

システムは複数の言語で記述することができ、言語を超えたプログラムのコラボレーションにはさまざまな方法があります。

たとえば、あるモジュールの出力が別のモジュールの入力として機能するパイプライン コラボレーションを使用できます。たとえば、MapReduce タスクを Python で記述し、Java で記述された Hadoop クラスター上で実行できます。 Java コードはデータ配布タスクのスケジューリングを担当し、Python コードは処理を担当します。

たとえば、ストレージを共有できます。たとえば、Web アプリケーションは J2EE で記述され、MySQL がデータベースとして使用され、Python がバックグラウンド スクリプトの実行に使用されます。

または、サーバーで Java を使用し、クライアントで Python を使用して、Thrift を使用するなどの RPC を使用することもできます。

もう 1 つの例は、C を使用して Python/Java 拡張機能を開発するなど、ある言語を使用して別の言語の拡張モジュールを開発することです。
--------
ただし、チームにとって複数の言語を使用するには、十分な内部リソースを確保する必要があります。各言語には、トラブルシューティングを担当する専門家レベルのプログラマーと、コードが適切に維持され、タイムリーに更新されることを保証するメイン プログラマーの役割が必要です。すべてのチームがこれらの条件を満たすことができるわけではありません。

これらの条件が欠如し、多言語を強制される、比較的「人気のない」言語は、このチームの効率を低下させることになります。

まず第一に、この言語で必要な実務経験を多くの人は知らないかもしれません。たとえば、コード、エコシステム内でよく使用されるリソースなどを適切に整理します。結果として得られるコードは混乱しており、誰もレビューできません。車輪の再発明は大変で、エラーのトラブルシューティングは遅く、システムは不安定です。

第二に、言語が内部で準備するリソースがない可能性があります。基本ライブラリを作成し、同じ機能を持つソフトウェア ソースをビルドすると、「人気のない」言語のビルドが遅くなり、必要な機能が長時間同期できなくなります。

最後に、最も深刻なのはメンテナンスの中断です。関連する人材が退職すると、後継者にとってレガシーコードは負担となり、新しい言語を学習する場合でも、使い慣れた言語を使用してリファクタリングする場合でも、多くのエネルギーが無駄になります。退職する従業員自身の語学力が中途半端で、プログラムの作成も不十分であれば、費やす時間は倍増します。

したがって、多言語の混合はクールに聞こえますが、チームとして、メンバーのスキルスタックに従って行動する必要があります。 リンカーというものがあります。これにより、さまざまなものを組み合わせることができます。
たとえば、バイナリの手打ち機械語コード、プラットフォーム上のアセンブリ言語、C++、C、D言語、Objective-C、Fortranなどのソースファイル、それらの製品(オブジェクトファイル)をリンクしてフォームを作成できます。プログラム。

もちろんこれ以外にもいくつかの技術があります。たとえば、動的コードの実行、または単なる解釈と実行、動的ロード、またはさまざまな IPC メカニズムや JavaBean/COM などのテクノロジを介したさまざまなコンポーネントの通信などです。 以前はコネクタがありましたが、現在は Web API があります。 データや統計を扱う場合
Excel を使いこなせば、多くの問題をすぐに解決できると思います
それでも十分でない場合は、Excel のマクロ コマンドを学ぶとよい
実際、Excel はデータベースよりも柔軟性があります統計関数の観点から

多くの場合、自習プログラムだけでなく効率が向上します
ツール、既存のブラウザ プラグイン、または小さなアプリケーションの実行さえも使用できます
プログラムには独自のルールがあります問題の解決を手助けすることはできません。
ルールを超えた場合でも、自分で解決する必要があります。 ああ、これは混合プログラミングの質問です。

答えは、何らかの方法を使用して相互に通信できる限り、プログラムは任意の数の言語で作成できるということです。 いいえ。
どの言語でも連携できます。
プログラマーになることを学びたい場合は、スクリプト言語を学ぶだけです。しかし、コンピューター上で反復的なタスクを解決したい場合は、スクリプト言語を学ぶだけです。もっとシンプルに。 複数の言語で共同作業できます。
一般に次の 2 つの方法があります:
1) 言語間の直接呼び出し。この言語サポートの方法では、一般的に高水準言語は、C/C++ などの低水準言語のライブラリを直接呼び出すことができます。オープンソース プロジェクトの swig を参照してください。これは、C 用の高水準言語バインディングを多数生成できます。 /c++。低レベル言語は、組み込みパーサーを介して高レベル言語を呼び出すことができ、C 言語では Lua スクリプトを呼び出すことが特に便利です。高水準言語が相互に呼び出す場合、通常、低水準言語を介してそれらを結合する必要があります。
2) IPC メカニズム。 asn、proto、json、xml などの独立した記述言語とシステムの ipc メカニズムを通じて簡単に実装できます。 Facebook が提供したオープンソース プロジェクト Apache Thrift を見てみましょう。 いいえ、今は C++ と Lua を使用して cocos2dx を使用してゲームを作成しています。 不確かな。 VS は多数の言語を一緒に実行できます。

Pascal を使用して exe を実行する方法がわからなかったときは、次のようにしました。bat がループを作成し、最初に入出力を担当する Pascal プログラムを実行し、Pascal プログラムが新しいファイルを出力します。最後にbatファイルを追加して終了します。新しいバットは古いバットによって呼び出され、実行され、パスカル プログラムを実行します。このサイクルを繰り返し、winrar を使用してこれらをパッケージ化し、自己解凍します。当時はとても気分がよかったです。 最も明白な例である埋め込み SQL は、多くの言語で使用されています ~_~
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。