如何将脚本语言作为项目的一部分进行合理化解释

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

该程序需要将传统系统适应其他现代系统的使用。

基本上,我可以使用的语言选择很少。我有C / C ++,Java 1.4,也已经为此环境编译了Lua。

程序执行“屏幕抓取”,必须处理大量字符串。代码的该部分具有很高的可变性。

我的公司中大多数开发人员使用C,因此-我的最初设计是使用C编写一些部分,并使用Lua处理经常更改的字符串。我被告知“必须证明您使用脚本语言的理由”。因此,我重新设计使用100%的Java,并被告知-Java的性能不足。你应该用C做整件事。

我没有控制激光或进行图像处理-只是一些屏幕抓取。我仍然必须为使用C以外的任何东西提供理由-那么我可以提供什么理由呢?

原文链接 https://stackoverflow.com/questions/1873863

点赞
stackoverflow用户171461
stackoverflow用户171461

评估每个解决方案所需的时间(时间==金钱$)。这将有所帮助。

2009-12-09 13:25:34
stackoverflow用户20249
stackoverflow用户20249

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

2009-12-09 13:28:26
stackoverflow用户12960
stackoverflow用户12960

你需要从在 C 语言中实现的成本(时间/金钱)和在高级脚本语言中的成本来证明这个决策的合理性。我会提供几个实例/场景来展示潜在的节约成本。

听起来你在一个相当保守的环境中工作。请注意,人们可能会担心引入一项他们不理解或没有经验的未知技术。因此,你可能希望 a) 引入一些已知且有文档支持的技术 b) 最初不使用任何奇特的功能。希望你可以证明他们可以获得回报,并在以后逐步掌握它。

2009-12-09 13:29:04
stackoverflow用户224988
stackoverflow用户224988

翻译并保留 markdown 格式:

如果它是真的,理由就是用 Java 执行您正在做的任务会更快。(是吗?- 如 Martin 所说,尝试在 Python 中制作原型并评估需要多长时间。)

2009-12-09 13:30:00
stackoverflow用户65464
stackoverflow用户65464

在这种情况下,你也可以更强烈地倡导更高的健壮性,因为在C中处理字符串很麻烦,常常会导致编程错误(缓冲区溢出等)。

2009-12-09 13:33:46
stackoverflow用户66353
stackoverflow用户66353

因为:

这个程序需要进行“屏幕刮取”并需要处理大量字符串。

Perl 或许本来是最好的选择,但如果你没有选择的话。

2009-12-09 13:35:01
stackoverflow用户108130
stackoverflow用户108130

将下面翻译成中文并且保留原本的 markdown 格式

嵌入式脚本语言的巨大优势在于程序运行时能够检查和修改数据。

对于速度而言,我个人认为 Lua 是游戏开发者的首选,这是因为它快而轻巧。

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

2009-12-09 13:36:25
stackoverflow用户24039
stackoverflow用户24039

我认为成本角度可能会一直输,因为你的团队具有现有的C专业知识,因此节省的成本被学习新语言的成本所抵消。

对我来说(作为一个过去不得不做出这些权衡的人),更具说服力的是对变化的灵活性和响应速度。C必须进行编译和部署,而你可以在10秒钟内将新的Python脚本放入你的环境中。如果你爬取的页面正在变化,那么你的开发和部署环境应该与其匹配,这意味着需要一种脚本语言。

顺便说一句,“Java速度较慢”这一论据只是一些固守C的人们经常拿出来说的事情。这已经不是真的了,并且有无数独立的测试证明了这一点。

2009-12-09 13:38:41
stackoverflow用户3525
stackoverflow用户3525

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

2009-12-09 13:38:59
stackoverflow用户15795
stackoverflow用户15795

我的建议:

  1. 想一下在爬取过程中需要执行的一些字符串操作。用 C 和 Lua 写出这些操作的代码。我曾经写过一些示例,用 C 写了 30-40 行,而 Lua 只需要 1-2 行。

  2. 尝试使用 Lua 和 C 快速原型化你的系统的某个方面,然后进行比较。只有你可以确定这种原型化的时间是否可以被你的经理接受。

  3. 在你的团队中找到一位志同道合的盟友(或两位、三位),向他们展示示例和讨论要点。如果你需要进行设计审查,他们可以帮助支持你。

  4. 准备好接受这样一个事实:尽管你可能有一个非常好的设计解决方案,但它可能并不适合你的组织。并不是每个人都想学习或尝试新事物。如果一群“敌对分子”必须使用或维护你的项目,那么你可能会面临更多的麻烦,这可能不值得。

2009-12-09 15:47:05
stackoverflow用户33890
stackoverflow用户33890

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

解析字符串和屏幕抓取是那些解析需求一直在变化且需要很长时间才能稳定的问题之一。因此,您需要编写屏幕抓取软件、尝试、失败和学习的能力,并且需要能够快速做到这一点。

无论哪种情况下,您最好选择Perl和Ruby。Perl以其字符串解析而闻名。Ruby也很好,它有一个屏幕抓取库,例如(scrAPI)。

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

2010-01-08 18:35:18
stackoverflow用户187309
stackoverflow用户187309

未来的扩展性。

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

2010-01-08 18:38:00
stackoverflow用户137317
stackoverflow用户137317

配置。 Lua 被创建为一种配置/数据描述语言。您的程序可能也是以这种方式工作的,具有 C 内核,然后通过 lua 接口进行配置。您要让多少可以配置取决于您,但它可能会随着时间而改变。

2010-05-22 13:58:22