如何证明使用脚本语言作为项目的一部分

时间:2009-12-09 13:22:20

标签: java c lua

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

该程序使遗留系统适用于其他现代系统。

基本上,我几乎无法选择使用哪种语言。我有C / C ++,Java 1.4,我也为这个环境编译了Lua。

该程序执行'屏幕抓取'并且必须处理很多字符串。代码的那部分变化很大。

我公司的大多数开发人员使用C,所以 - 我的原始设计是在C中编写一些部分,并使用Lua处理字符串并且频繁更改的部分。我被告知'你必须证明你使用脚本语言是合理的。'所以我使用100%Java重新设计了我的设计,并被告知 - Java没有足够的性能。你应该用C做整件事。

我不是在控制激光或进行图像处理 - 只是一些屏幕抓取。除了C之外,我仍然必须为使用任何东西提供理由 - 所以我可以提供什么理由?

13 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:4)

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

答案 2 :(得分:3)

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

(你可以立刻嵌入Lua,你甚至都不会注意到它;)

答案 3 :(得分:2)

您需要根据C(时间/金钱)中的实施成本与更高级别脚本语言中的成本来证明这一点。我会把几个例子/场景放在一起来展示潜在的节省。

听起来你在相当保守的环境中工作。请注意,人们可能会担心引入他们不了解或没有经验的未知技术。因此,您可能希望a)介绍一些众所周知且记录在案的内容b)最初不使用任何深奥的功能。希望你能证明他们能够在这方面做出回报,然后继续捡起来。

答案 4 :(得分:2)

我的建议:

1)想一想在抓取过程中需要做的几个字符串操作。用C表示,然后用Lua表示。我在一点上写了一些例子,分别是30-40行C和Lua 1-2。

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

3)在你的团队中寻找一个志同道合的盟友(或两三个)来展示实例和谈话要点。如果您需要进行设计审核,他们可以帮助您。

4)准备好接受虽然你可能有一个非常好的设计解决方案,但它可能不适合你的组织。不是每个人都想学习或尝试新事物。如果一群“敌人”不得不使用或维护你的项目,你可能会让自己面临更多麻烦而不是它的价值。

答案 5 :(得分:1)

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

答案 6 :(得分:0)

理由(如果它是真的)是Java对你正在做的事情更快。 (是吗? - 就像Martin说的那样,尝试用Python编写原型并评估它需要多长时间。)

答案 7 :(得分:0)

自:

  

该程序执行'屏幕抓取'和   必须处理很多字符串

Perl 可能是最好的选择,只要你选择它。

答案 8 :(得分:0)

我认为,由于您的团队拥有现有的C专业知识,成本角度可能总是会失去,因此学习新语言的成本可以抵消节省的费用。

对我来说更具吸引力(因为过去不得不做出这些权衡的人)将是对变化作出反应的灵活性和速度。必须编译和部署C,而您可以在10秒内将新的python脚本放入您的环境中。如果您抓取的页面正在发生变化,那么您的开发和部署环境似乎应该与该灵活性相匹配,这意味着脚本语言。

但是,“Java慢一点”的论点只能被卡在C中的人所驱使。很长一段时间都没有这样,并且有无数的独立测试可以证明这一点。

答案 9 :(得分:0)

与正常的设计 - 开发 - 部署周期相比,通过允许您的应用在运行时加载并运行一些脚本来证明添加新(或用户自定义)的简易性。

答案 10 :(得分:0)

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

您的问题有很多免费组件,因此工具成本不是问题。

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

在任何一种情况下,你最好的赌注是Perl和Ruby。 Perl是字符串解析的传奇。 Ruby也很好,它有一个屏幕抓取库,如(scrAPI)。

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

答案 11 :(得分:0)

未来的可扩展性。

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

答案 12 :(得分:0)

配置。 Lua被创建为配置/数据描述语言。您的程序也可以通过这种方式运行,使用C内核,然后通过lua接口进行配置。您可以配置多少是由您决定的,但它可以随时间变化。