有些语言应该混合的情况是什么?
我说的不是使用ASP.NET和C#和HTML,也不是用C编写的通过SQL查询访问SQL数据库的应用程序。例如,我说的是将C++与Fortran或Ada与Haskell混合等。
编辑
首先:谢谢你的回答。
当我问这个问题时,我想到你总是读“每一种语言都有其特殊目的”。
通常,您可以通过使用特殊的库以任何语言完成几乎所有的工作。但是,如果您对学习不同的语言感兴趣,那么为什么不选择最适合您的编程语言而不是一个解决您的语言最初设计的问题的库呢?
发布于 2009-07-03 21:56:32
那么,最明显(也是最常见)的情况是,当您使用一些高级语言来完成大部分程序时,获得快速开发和健壮性的好处,同时使用一些低级语言,比如C,甚至程序集来获得重要的速度。
而且,很多时候,需要与其他语言编写的软件进行接口。这里有一个很好的例子,就是操作系统公开的APIs -它们通常是用C编写的(尽管我还记得一些使用Pascal的旧MacOS版本)。如果您没有用于语言编译器基础结构的本机绑定,则必须编写一些接口代码来“将”您的程序与“另一面”“粘合”。
还有一些特定于领域的语言被专门调优以有效地表达某种类型的计算。你通常不把你的整个程序都写在它们里面,只是在某些地方它是合适的工具。Prolog就是一个很好的例子。
最后但并非最不重要的是,有时您手头有一堆用另一种语言编写的旧代码和测试代码,您可以从使用这些代码中获益。与其用一种新的更好的语言重新发明轮子,不如把它与新程序连接起来。这可能是最常见(如果不是唯一的)情况下,适合类似用途的语言混合在一起(您提到的是C++和Fortran吗?)
一般来说,不同的语言有不同的长处和弱点。你应该试着使用合适的工具来完成手头的工作。如果用一种不同的语言表达程序的某些部分的好处大于它所带来的问题,那么最好去做。
发布于 2009-07-03 21:52:42
例如,在电子游戏中,我们为了不同的目的使用不同的语言:
在我的游戏中,我也使用HTML/Javascript作为GUI。
编辑
要回答你的编辑:你知道最好的语言并不总是工作中最有效的工具。这就是为什么我在我的自制游戏中使用C++的原因,因为我最了解它(我可以使用很多其他语言,因为目标是Win/Mac/Linux,而不是控制台),但我使用Python来处理与构建进程、文件操作等相关的所有东西。我不深入了解Python,但用它快速处理文件比用C++更容易。出于明显的原因,我不会在web应用程序中使用C++。
最后,你使用对这项工作有效的方法。这就是你在现实世界中工作时学到的东西,考虑到金钱、时间和质量。
发布于 2009-07-03 21:50:04
我知道,在你的问题中,你有点排除了这一点,但不同的语言被用于不同的领域。
现在我正在开发一个数据可视化工具,数据在数据库中,所以当然有一些SQL,但这并不算什么,因为它很小,而且经常需要。数据被转换成一系列的图表,我用的是R,它像MATLAB,但是开源。这是一种独特的统计语言,具有一些先进的绘图功能。
数据可视化器不仅仅是一个图形生成器,所以需要有一种方法来浏览和导航这堆图像文件。我们选择使用带有嵌入式javascript的html构建一个可以轻松分发的离线“应用程序”。它是离线的,因为它是自包含的,html是小心生成的,它里面的js是精心制作的,允许用户浏览成千上万的图像,排序或过滤,根据一系列的标准。
您是如何根据数据库结构精心制作javascript和html的?随着我团队的其他成员取得进展,数据库结构会发生变化。它们是由一个perl程序(实际上是一次传递脚本)生成的,该程序读取数据库中的某些结构和关键信息,然后输出超过300 db的html/js。它也不是完全简单的html,与R图和一些onclick() javascript对齐的图像地图允许用户实际与普通的图像图交互,因此整个过程就像一个真正的数据浏览器/可视化应用程序。
这是四种“语言”,如果算上SQL,就有五种,只是为了制作一个单一的最终产品。
我认为在一种语言中这样做并不是一个好的选择,因为我们正在利用一个真正的web浏览器的功能来为我们提供一个免费的GUI和前端。
https://stackoverflow.com/questions/1080909
复制相似问题