在Perl商店中进行Java开发:如何选择合适的工具?
我的小组是一家非常异构的组织中的Perl商店。尽管我们支持奇怪的Java,PHP或者Python安装,但几乎所有Web应用程序和系统/数据编组任务都使用Perl。尽管我们也与IIS系统交互,但我们所有的机器都是Linux。
至少在我们的某些工作中,我们承受着来自管理部门的压力,要求迁移到Java。我想为正确的任务使用正确的工具,但是对于我们的工作,由于我们的集体经验,Perl似乎是适用于所有事物的正确工具。
我最初的想法是将Java用于对整个组织开放的应用程序,因为与Perl相比,Java的参与度更高。
有没有类似的经历?如果可以选择的话,从应用Java开始应该执行哪些任务?我们应该坚持使用Perl执行哪些任务?有什么区别吗?为什么或者为什么不?
解决方案
如果团队要支持这些应用程序,那么请坚持使用我们所知道的。
如果有其他团队支持应用程序,那么我们可能需要考虑Java,因为Java在当今的企业界无疑具有更大的渗透力。
管理层被告知Java是唯一的方法,或者说"真正的企业使用Java",因此他们认为自己必须使用Java。我知道我在哪里工作,他们认为Java是唯一的语言,诸如Care之类的东西仅用于"战术"项目,而不是用于"战略"项目。
我们应该使用最好的工具来完成这项工作。
切换到Java是否有特定的技术原因?我们可以使用Java进行某些操作,但不能使用Perl吗?有性能差异吗?是否还有其他与Java有关的小组/人员,又不想学习Perl?
我的经验是,我们应该坚持自己所知道的。团队非常了解Perl。我们已经咬了牙,有些人可能已经获得了超级Perl专家资格。
因此,我想坚持我们所知道的,除非我们能想到一些充分的理由。
我遇到了与前公司相同的情况。我们想要使用Java并远离Perl,这一事实有所不同。我们的Perl遇到性能问题,扩展性不佳。我们的用户管理也一团糟。我们转而使用Java并使用了一些"单一登录"功能,我们对结果感到非常满意。这可能更像是移出了很久以前编写的遗留代码的情况。
如果允许我们迁移到与Java兼容的某种东西,但其语法至少比Java更接近Perl,请查看Groovy。 Groovy是一种动态语言,可以编译为Java字节码。
我们可以使用Java类的类和函数或者Perl / Ruby的动态"脚本" ...或者两者进行编码。
我建议,如果由于性能问题而将我们从Perl中撤出的原因,那么我将推动将Perl XS模块中的应用程序中最受益的部分重写为C,而不是大量批发。到新的开发环境。我在Perl的环境中工作,但系统的关键部分已用C和C ++重写,以满足性能要求。
我曾经在这里工作过,这可能是一个非常痛苦的过程。
如果我们有一支优秀的Perl团队,那么我建议我们抵抗。像样的Java几乎无法做到像样的Perl无法做到的事情。我可以看到的唯一有效切换理由是,如果我们在聘请体面的Perl编码器时遇到困难。
归根结底,如果管理层在推动它,那么除了尝试找出他们在推动它的原因之外,我们无能为力。团队接受/推回的数量应取决于原因。
如果我们确实转而使用Java,建议我们确保雇用一个知道他们在Java中正在做什么的人(不仅知道语言,而且知道框架和应用服务器)。它不是魔术,并且像使用其他语言一样容易用Java制作垃圾应用程序,这只会花费我们更长的时间。
管理 :-(
给他们一个转换为Java的成本/收益分析。说明整个开发团队都有这种感觉。
Java的好处不在于语言本身,而在于其周围的支持基础架构。类库是一回事,但是接着我们看一下应用程序服务器,消息传递基础结构,开放源代码库和框架,清单就不胜枚举了。
因此,选择一个区域并进行一些研究。看一下伪造的源代码,apache,codehaus,java.net和Google。查找适合该问题的库和框架,并查看它们是否将减少开发成本。看看Spring,Hibernate和Struts2. 看一下IDE选项,看看它们是否会使工作效率更高(Eclipse,NetBeans和IntelliJ IDEA是领先者)。收听诸如Java Posse之类的播客,以获取想法并阅读诸如Java World,InfoQ和The Server Side之类的站点。
迟早我们会想到可以节省时间和金钱的事情,一旦发生这种情况,我们可以将脚趾伸入并放开脚步。如果没有按计划进行,请找出原因并下次再做得更好。
如果我们有候选人并且对库,产品和框架的选择感到迷惑,那么有很多经验丰富的Java开发人员会在堆栈溢出时愿意提供指导。
我希望这个对你有用。