7

言語を混在させる必要がある状況にはどのようなものがありますか?

C# と HTML で ASP.NET を使用することや、SQL クエリを介して SQL データベースにアクセスする C で記述されたアプリケーションについて話しているのではありません。たとえば、C++ と Fortran の混合、Ada と Haskell の混合などについて話しています。

[編集]

まず第一に、すべての回答に感謝します。

この質問をしたとき、あなたがいつも「すべての言語には特別な目的がある」と読んでいることを念頭に置いていました。

一般に、特別なライブラリを使用することで、ほとんどすべてのことをどの言語でも行うことができます。しかし、さまざまな言語の学習に興味がある場合は、言語が元々設計されていない問題を解決するライブラリではなく、目的に最も適したプログラミング言語を選択してみませんか?

4

11 に答える 11

4

あなたの質問でこれを除外したことは知っていますが、ドメインごとに異なる言語が使用されています。

現在、私はデータ ビジュアライザーに取り組んでいます。データはデータベース内にあるため、もちろん SQL もありますが、小さくて頻繁に必要とされるため、ほとんどカウントされません。データは一連のグラフに変換されます。私は MATLAB に似ていますがオープン ソースの R を使用しています。これは、いくつかの高度なプロット機能を備えた独自の統計言語です。

データ ビジュアライザーは単なるグラフ ジェネレーターではないため、この大量の画像ファイルを参照してナビゲートする方法が必要です。簡単に配布できるオフラインの「アプリケーション」を構築するために、javascript が埋め込まれた html を使用することにしました。自己完結型であり、HTML が慎重に生成され、内部の js が慎重に作成されているという意味でオフラインです。これにより、ユーザーは何千もの画像をさまざまな基準で並べ替えまたはフィルタリングして閲覧できます。

チームの他のメンバーが進歩するにつれて変化するデータベース構造に基づいて、JavaScript と html をどのように慎重に作成しますか? これらは、いくつかの構造と重要な情報をデータベースに読み込み、300 キロバイトを超える html/js を出力する perl プログラム (実際にはシングル パス スクリプト) によって作成されます。完全に単純な html というわけでもありません。R プロットといくつかの onclick() javascript に注意深く配置されたイメージマップにより、ユーザーはプレーンな画像プロットを実際に操作できるため、この全体が実際のデータ ブラウザー/ビジュアライザー アプリケーションのように感じられます。

これは 4 つの「言語」、SQL を含めると 5 つの「言語」であり、1 つの最終製品を作るだけです。

これを単一の言語で行うのは良い選択だとは思いません。実際の Web ブラウザーの機能を利用して、無料の GUI とフロントエンドを提供しているためです。

于 2009-07-03T21:50:04.110 に答える
2

現在の優れた例は、VB.NET で XML ドキュメントを作成するメソッドを作成することです。VB.NET には、C# にはない「XML リテラル」機能があります。どちらも .NET 言語であるため、一方を他方から呼び出さない理由はありません。

Public Function GetEmployeeXml (ByVal salesTerritoryKey As Integer) As XElement
    Using context As New AdventureWorksDW2008Entities
        Dim x = <x>
                <%= From s In context.DimSalesTerritory _ 
                Where s.SalesTerritoryKey = salesTerritoryKey _
                Select _
                <SalesTerritory 
                    region=<%= s.SalesTerritoryRegion %>
                    country=<%= s.SalesTerritoryCountry %>>
                    <%= From e in s.DimEmployee _
                        Select _
                    <Employee firstName=<%= e.FirstName %> lastName=<%= e.LastName %>>
                         <%= From sale in e.FactResellerSales _
                             Select _
                        <Sale 
                            orderNumber=<%= sale.SalesOrderNumber %>
                            price=<%= sale.ExtendedAmount %>/>  %>
                    </Employee> %>
                </SalesTerritory> %>
                </x>
        Return x
    End Using 
End Function  
于 2009-07-03T22:45:04.640 に答える
1

言語がどのパラダイムに該当するかによって、長所と短所があります。たとえば、C# の GUI 機能を使用したいが、 Prolog (論理パラダイムの言語)の効率的なバックトラッキングまたは人工知能機能を使用して、詳細を表示する前に計算したい場合があります。

簡単な例

ユーザーがコンピューターに対してチェスをプレイできるようにするプログラムを作成しようとしていると想像してください。

(潜在的に)私は:

1.) Windows GUI ライブラリを使用してビジュアルを作成します。

2.) Prolog を使用して可能な動きを計算し、最良/最も実行可能な動きを選択します。

3.) C# コードの Prolog からステップ 2 の結果を取得し、結果をレンダリングします。

4.) C# でのゲームプレイとビジュアルおよび UI の迅速な開発を可能にし、計算/バックトラッキングを Prolog に依存する

于 2009-07-03T21:41:18.090 に答える
1

言語を混在させる最大の理由は、ある言語には特定の分野での利点があり、別の言語には別の分野での利点があるからです。したがって、それらを一緒に投げることによって、両方の機能を活用しようとします。一般的な例は、C と ASM を使用することです。C はより抽象的で、プログラムでより複雑なことを簡単に実行できるためです。ただし、ASM を使用して、ハードウェアとプロセッサで基本レベルのことを行うことをお勧めします。そのため、C の性質と組み込みシステムでの使用を考えると、それらはしばしば混合されます。

于 2009-07-03T21:34:47.090 に答える
0

デバイスプログラミング-通常、OSのネイティブUI言語(Androidの場合はJavaなど)を使用してUIをプログラムしますが、デバイスドライバーを低レベル(Cなど)にプログラムする必要があります。

于 2009-07-05T16:53:02.447 に答える
0
  • 2 つのヘッドが 1 つより優れている場合。

    Flash が C# に埋め込まれているゲームをよく見てきました。AI やその他の重いコードが C++ DLL から実行されています。

  • 強要されたとき

    古いフレームワークでサポートされている新しいシステムを強化する新しいコードを書く

于 2009-07-03T21:45:11.000 に答える
0

ここにいる人々には、ほとんどの理由があります。私はこれを持っています:

優雅な劣化の場合もあります。たとえば、私は従来のイントラネットで作業しており、ある言語から別の言語に少しずつ変更しているため、現時点では同じシステム内に異なる言語が存在しています。

于 2009-07-03T22:49:11.667 に答える