我应该为小任务选择脚本还是编译代码?
我是一名Java程序员,并且喜欢编译器,静态分析工具和单元测试框架,这些工具可以帮助我快速交付健壮高效的代码。我几乎在任何可以工作的地方都使用JRE。
在这种情况下,我看不到为什么我会选择使用shell脚本,vb脚本等的原因,如果我戴上其他酷炫的黑色sysadmin fedora之类的帽子,无论任务多么小。
我不太常戴其他帽子,在什么情况下应该选择脚本而不是编写已编译的代码?
解决方案
回答
我会说在哪里有意义。如果打开IDE,编译脚本等花费的时间比使用脚本文件来编辑脚本文件和完成脚本所需的时间更长。如果我们不打算经常进行更改并且可以更快地进行Java编码,则可以选择以下方法:)
回答
如果我们对Java感到满意,并且JRE遍及任何地方,那么我会说继续使用它。但是,有诸如perl和python之类的语言特别适合于快速解决问题。我建议学习perl或者python,然后根据判断来决定何时使用它。
回答
通常,编写脚本要比编译程序更快。我们不必担心不同平台和环境之间的可移植性。 Shell脚本几乎可以在大多数平台上的任何位置运行。因为我们是Java开发人员,并且提到我们到处都有Java,所以我们可能会想到groovy(http://groovy.codehaus.org/)。它是一种用Java编写的脚本语言,可以使用Java库。
回答
我看待它的方式(其他人不同意),所有代码都需要可维护。最小的有用代码集合是一个人维护的代码。即使如此,也可以从我们提到的语言和工具中受益。
但是,显然可能存在某些任务,其中专用语言比一种通用语言更具优势。
回答
如果我想快速解决一个小问题,则倾向于使用脚本语言。代码税较小,至少对我来说,结果更快。
回答
如果我们可以用Java更快地编写它,那就去吧。
请尝试并注意各种脚本语言可以做什么。
例如当我们可以使用bash单行代码做同样的事情时,请不要制作完整的Java应用程序。
回答
权衡该工具的重要性,以免弹出文本编辑器以进行快速编辑与打开IDE,重新编译,重新部署等不同。
回答
无论我们认为哪种方法对我们来说都是最有效的!
我有一个同事,似乎每个任务都使用不同的语言。 Perl用于快速文本处理,PHP用于小型内部Web应用程序,.NET用于我们的主要产品,cygwin用于文件系统。他倾向于使用最适合手头任务的技术。
我个人认为,在技术之间进行上下文切换是很痛苦的。我的日常工作是在.NET中进行的,所以这就是我想的用词。对于大多数任务,我发现在Cusing SnippetCompiler中删除某些内容比在PowerShell或者脚本环境中进行破解更为有效。
回答
当然,主要指令应该是"使用我们喜欢的任何东西"。如果Java能够按时正确地完成工作,请坚持下去。但是许多脚本语言可以为我们节省一些时间,因为它们针对不同的问题进行了调整。如果我们使用正则表达式,那么脚本语言非常适合。如果我们要使用Shell命令,脚本是不错的选择。
每当我编写较小的东西时,我都倾向于使用Ruby脚本,因为它编写起来快速,易于维护,并且(使用Gems)易于添加功能,而无需使用JAR或者任何东西。里程当然会有所不同。
回答
归根结底,这是一个只有我们自己可以回答的问题。基于我们说"我看不到为什么我会选择使用shell脚本,..."的事实,那么可能是我们永远不应该选择它的情况。
但是,如果我是我们,我会选择python,ruby或者perl之类的脚本语言,并开始尝试使用该语言解决其中的一些小问题。随着时间的流逝,我们会逐渐体会到何时写一个快速脚本比构建一个成熟的解决方案更合适。
回答
我使用脚本语言来编写程序,这些程序除非经过几次执行,否则预计不会得到维护。这些语言中的大多数都很少使用样板语法,并且确实具有REPL。这两个功能均可实现快速原型制作。
由于我们已经知道Java,因此可以尝试使用诸如Groovy,JRuby,BeanShell等之类的JVM语言。Scala的语法比Java轻得多,具有REPL,是静态类型的,并且可以在JVM上运行,我们也可以尝试一下。