Programming languages 什么时候混合语言?
在哪些情况下应该混合使用语言 我不是说使用ASP.NET和C#和HTML,也不是说用C编写的应用程序通过SQL查询访问SQL数据库。我说的是像C++和FORTRAN或艾达和Haskell等混合的东西。 [编辑] 首先:谢谢你的回答 当我问这个问题时,我记得你总是读到“每种语言都有它的特殊用途”Programming languages 什么时候混合语言?,programming-languages,mixing,Programming Languages,Mixing,在哪些情况下应该混合使用语言 我不是说使用ASP.NET和C#和HTML,也不是说用C编写的应用程序通过SQL查询访问SQL数据库。我说的是像C++和FORTRAN或艾达和Haskell等混合的东西。 [编辑] 首先:谢谢你的回答 当我问这个问题时,我记得你总是读到“每种语言都有它的特殊用途” 一般来说,通过使用特殊的库,您几乎可以用任何语言完成所有工作。但是,如果你对学习不同的语言感兴趣,为什么不选择最适合你的编程语言,而不是一个解决你的语言最初不是为之设计的问题的库呢?混合语言的最大原因是因
一般来说,通过使用特殊的库,您几乎可以用任何语言完成所有工作。但是,如果你对学习不同的语言感兴趣,为什么不选择最适合你的编程语言,而不是一个解决你的语言最初不是为之设计的问题的库呢?混合语言的最大原因是因为一种语言在某些方面有优势,一个人在另一个人身上有优势。因此,您试图通过将两者结合在一起来利用两者的功能。一个常见的例子是使用C和ASM,因为C更抽象,更容易在程序中完成更复杂的工作,但是,您可能希望使用ASM来完成硬件和处理器的底层工作。因此,考虑到C语言的性质及其在嵌入式系统中的使用,它们通常是混合的。根据语言所属的范式,它有其优缺点。例如,人们可能希望使用C#的GUI功能,但在显示某些细节之前,可以使用Prolog(逻辑范式中的一种语言)的高效回溯或人工智能功能来计算这些细节 一个简化的例子 想象一下,试图编写一个程序,允许用户对计算机下棋 (可能)我会: 1。)使用Windows GUI库创建视觉效果 2。)使用Prolog计算可能的移动,并选择最佳/最可行的移动 3。)在我的C#代码中从Prolog中检索步骤2的结果,并呈现结果 4.允许在C#中进行游戏性和快速的视觉和UI开发,并依靠Prolog进行计算/回溯
- 两个头比一个头好 我经常看到Flash嵌入C语言中,AI和其他重代码从C++ DLL中运行。
- 被迫 编写新代码以扩充旧框架支持的新系统
- 开发工具:级别设计工具生成游戏代码将使用的数据。这类工具不需要在目标平台上运行(但如果可以的话,它更容易调试),因此它们通常是由快速开发语言(如C#、Python等)制成的
- 脚本系统:游戏的某些部分必须由设计师使用变量或脚本进行调整。嵌入脚本语言比编写脚本语言更简单、更便宜,因此经常使用Lua或其他类似的脚本语言
- Web应用程序:有时游戏需要在线提供一些数据,最常见的是在使用SQL访问的数据库中。然后,web应用程序使用的语言可能是C#、Ruby(R.O.R.)、Python、PHP或其他任何对工作有利的语言。因为它是关于web的,所以您也必须使用HTML/Javascript
- 等等
- 我知道在你的问题中,你排除了这一点,但不同的领域使用不同的语言
现在我正在开发一个数据可视化工具,数据在数据库中,因此当然有一些SQL,但这很难计算,因为它很小,而且经常需要。数据被转换成一系列的图形,我使用的是R,它类似于MATLAB,但是是开源的。它是一种独特的统计语言,具有一些高级绘图功能
数据可视化工具不仅仅是一个图形生成器,因此需要有一种方法来浏览和导航这堆图像文件。我们选择使用html和嵌入式javascript构建一个可以轻松分发的离线“应用程序”。它是离线的,因为它是自包含的,html是精心生成的,其中的js是精心设计的,允许用户浏览成千上万的图像,并根据许多标准进行排序或过滤
如何根据数据库结构精心设计javascript和html,随着团队其他成员的进步,数据库结构会发生变化?它们是由一个perl程序(真正的单通道脚本)生成的,该程序读入数据库中获取一些结构和关键信息,然后输出超过300KB的html/js。它也不完全是简单的html,与R绘图和一些onclick()javascript仔细对齐的图像映射允许用户实际与普通图像绘图交互,因此整个过程感觉像一个真正的数据浏览器/可视化工具应用程序
这是四种“语言”,如果算上SQL,就是五种,只是为了制造一个单一的最终产品
我不认为用一种语言做这件事是一个好的选择,因为我们正在利用真正的web浏览器的功能,为我们提供一个免费的GUI和前端。例如,在视频游戏中,我们使用不同的语言用于不同的目的:
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