Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何证明在项目中使用脚本语言的合理性_Java_C_Lua - Fatal编程技术网

Java 如何证明在项目中使用脚本语言的合理性

Java 如何证明在项目中使用脚本语言的合理性,java,c,lua,Java,C,Lua,我有一个特定的项目,我想使用脚本语言+C,或者作为100%Java解决方案的替代方案 该程序对遗留系统进行调整,以便与其他moderns系统一起使用 基本上,对于我能用什么语言,我几乎没有选择。我有C/C++,Java1.4,我还为这个环境编译了Lua 该程序进行“屏幕抓取”,必须处理大量字符串。代码的这一部分是高度可变的 我公司的大多数开发人员都使用C语言,所以-我最初的设计是用C语言编写一些部分,并使用Lua来处理字符串和频繁更改的部分。有人告诉我“你必须证明你使用脚本语言是正当的。”所以我

我有一个特定的项目,我想使用脚本语言+C,或者作为100%Java解决方案的替代方案

该程序对遗留系统进行调整,以便与其他moderns系统一起使用

基本上,对于我能用什么语言,我几乎没有选择。我有C/C++,Java1.4,我还为这个环境编译了Lua

该程序进行“屏幕抓取”,必须处理大量字符串。代码的这一部分是高度可变的

我公司的大多数开发人员都使用C语言,所以-我最初的设计是用C语言编写一些部分,并使用Lua来处理字符串和频繁更改的部分。有人告诉我“你必须证明你使用脚本语言是正当的。”所以我用100%的Java重新设计了我的设计,有人告诉我Java不会有足够的性能。你应该用C语言来完成这一切


我不是在控制激光或者做图像处理,只是在屏幕上做一些剪贴。我仍然需要为使用C以外的任何东西提供理由——那么我可以提供什么理由呢?

评估每个解决方案需要多少时间(时间=金钱$)。这应该会有帮助。

你可以用Perl、Python或其他脚本语言来破解一个原型,并展示它是多么容易和快速。

你需要从C(时间/金钱)实现的成本和更高级别脚本语言的成本来证明这一点。我将结合几个示例/场景来展示潜在的节约


听起来你的工作环境相当保守。请注意,人们可能会担心引入他们不了解或没有经验的未知技术。因此,您可能希望a)介绍一些众所周知且有文档记录的内容b)最初不要使用任何深奥的功能。希望您能证明他们可以从中获得回报,并继续努力。理由(如果是真的)是Java比您现在做的更快。(是吗?-就像Martin说的,试着用Python制作原型,并评估它需要多长时间。)

在这种情况下,您也可以用更高的健壮性进行论证,因为C中的字符串处理很麻烦,并且经常会导致编程错误(缓冲区溢出等)。

因为:

该程序执行“屏幕抓取”和 必须处理大量的字符串


Perl可能是最好的选择,如果您可以选择的话。

嵌入式脚本语言的最大优势是能够在程序运行时检查和修改数据。
至于速度,IMO Lua是游戏开发者的首选,因为它速度快,重量轻


(你可以在短时间内嵌入Lua,你甚至不会注意到它的存在;)

我认为成本角度可能总是会损失,因为你的团队拥有现有的C专业知识,因此节省的成本会被学习一门新语言的成本所抵消

对我来说(作为一个过去不得不做出这些权衡的人),更令人信服的是对变化的灵活和快速反应。C必须编译和部署,而您可以在10秒内将一个新的python脚本放到您的环境中。如果您刮取的页面正在更改,那么您的开发和部署环境似乎应该与这种灵活性相匹配,这意味着需要一种脚本语言


顺便说一句,“Java更慢”的说法只是被困在C语言中的人提出来的。这已经有很长一段时间不是真的了,而且有无数的独立测试证明了这一点。

通过允许你的应用程序在运行时加载和运行一些脚本来演示添加新的(或用户自定义的)的容易性,与正常的设计-开发-部署周期相比。

我的建议:

1) 想一想在刮片过程中需要执行的几个字符串操作。用C写,然后用Lua写。我在一个点上写了30-40行C语言的例子,与1-2行Lua语言的例子相比

2) 尝试用Lua和C快速原型化系统的某些方面,以进行比较和对比。只有您可以确定您的经理是否接受此原型制作时间

3) 在你的团队中找一个志同道合的盟友(或两三个),向他们展示例子和谈话要点。如果您需要进行设计审查,它们可以帮助您提供支持


4) 准备好接受这样一个事实:虽然您可能有一个非常好的设计解决方案,但它可能不适合您的组织。不是每个人都想学习或尝试新事物。如果一群“敌人”不得不使用或维护您的项目,那么您可能会遇到更多麻烦。

无论您使用哪种语言,解析字符串、HTML、XML等都很慢

有很多免费组件可以解决您的问题,所以工具成本不是问题

字符串解析和屏幕抓取是您对解析需求的理解不断变化并且需要很长时间才能稳定的问题之一。因此,您需要能够编写屏幕抓取软件、尝试、失败和学习,并且您需要能够快速完成这项工作

在这两种情况下,您最好选择Perl和Ruby。Perl是字符串解析的传奇。Ruby也很好,它有一个屏幕抓取库,比如()

Perl或Ruby的商业理由是低成本(免费工具),并且大大缩短了开发时间。使用脚本语言,您可以快速对您的刮片软件进行更改和测试,直到正确为止。如果使用C/C++可以在10分钟内从代码更改到测试,那么使用Perl/Ruby通常可以在大约一分钟内完成同样的操作。从长远来看,这可以节省50%的劳动力成本

未来可扩展性


如果您采用脚本语言,您可以在将来以更低的成本扩展您的项目。

配置。L