何时应该使用脚本语言而不是更冗长的编译语言,例如C++、C#或Java?
为了让问题更有趣,我们可以这样回答:
当......BLANK......时,您应该使用脚本语言。
当您需要 A 时,请使用脚本语言 X。
当您需要 B 时,请使用脚本语言 Y。
当您需要 C 时,请使用脚本语言 Z。
何时应该使用脚本语言而不是更冗长的编译语言,例如C++、C#或Java?
为了让问题更有趣,我们可以这样回答:
当......BLANK......时,您应该使用脚本语言。
当您需要 A 时,请使用脚本语言 X。
当您需要 B 时,请使用脚本语言 Y。
当您需要 C 时,请使用脚本语言 Z。
如果开发速度比执行速度更重要时,您应该使用脚本语言。
这略带有宗教色彩。我使用一种脚本语言来处理临时任务,例如:
所有这些任务也可以用编译语言完成,但对我而言,使用脚本语言(我使用 Ruby,但 PERL 和 Python 也很好)更快更容易。
这是我的层次结构:
使用grep尝试解决问题。
如果不能使用grep,使用sed。
如果sed不够强大,使用awk。
如果awk不够强大(或开始变得非常混乱难看),使用C、C++或者其他你选择的全能通用编程语言。
请注意,在awk和C之间没有“脚本语言”。这是有意为之的。
我认为脚本语言非常有用,尤其是在特定任务适合该语言的优势时(例如使用perl进行字符串处理,使用ruby进行Web开发等)。特别是在Web开发方面,脚本语言具有更快地显示代码更改结果的属性。
有些情况下,您会将编译语言与脚本语言混合使用,比如在某些游戏中。当您可以在脚本语言中更快、更干净、更简单地表达较少量的行为时,这样做非常有用。例如,C++是一种非常表达力强的语言,但其开发成本比lua等语言要高。
如果您计划编写一次或保持简单,则使用脚本语言。一旦您的项目变得更大,强类型语言会更好。想想看,在一个大型项目中,花费多少时间进行初始开发与集成和维护。您宁愿维护一组大型脚本还是强类型语言来强制执行您的类型行为?
我使用脚本语言来挖掘数据并将其作为cron作业馈送到数据库中。这样做更容易,因为我可以轻松地在Windows计划程序或Unix的crontab中设置它们,并且由于perl中的一些关键功能(如regex),我发现编写更容易。
此外,我能够从CPAN获取数百万个模块...
当交互操作很重要时,例如命令行 shell 或者你正在为其他用户导出简单操作的功能时,请使用脚本语言。他们不应该编译;脚本就足够了。