perl – 混合语言Web开发环境

在我的工作中,我继承了一个广泛的,设计不良的网络组合.大多数页面都是用Perl编写的,因为站点上摄取,处理和显示的大多数数据都是平面文件的形式,然后必须在我们的 MySQL和Oracle数据库中进行精心复制和数据库处理.

作为这个环境中第一个经过IT培训的经理,我正在自己去研究网站并为开发过程奠定一些结构.我给出的一个选择是选择是否继续使用Perl. Java拥有丰富的内部人才,PHP非常容易学习.我已经考虑过从开发人员那里拿走缰绳并让他们选择他们想要用于他们页面的任何语言,但是如果选择PHP的人被公共汽车击中并且其他任何人都无法修复它,那就好像很麻烦.

随着岁月的流逝,招聘Perl的程序员变得越来越困难,以及维护传统Perl代码的复杂性,以前的开发人员主要关注的可能只是让页面启动并运行,这变得非常耗费资源.另一位前任(非IT)经理更专注于快速周转和立即满足页面,而不是确保第一次就做好(他已经在我们的分支机构之外晋升).

生产服务器是solaris. MysqL拥有我们的大部分数据,但新项目已经开始越来越多地使用Oracle(用于GIS数据). Web服务器普遍是Apache.我们住在与常规互联网断开的内部网中.我们的开发是以敏捷,迭代的方式进行的.

无论选择何种语言进行推进,都有资源让现有的开发人员重新接受培训.无论如何,进入我们环境的数据都必须被重新编写为死亡,因此perl不会很快消失.我向社区提出的问题是,上面定义的web开发环境有以下几种语言的优缺点:Perl,PHP,Java,Python,以及 – 在这里插入你最喜欢的语言 – .如果你要重新做一遍,你会选择哪种语言设置?

编辑和澄清:
让我在原帖上澄清一下.我不会扔掉所有东西.我有机会将船的航向调整到我认为更好的航向.即使我选择了一种新语言,perl代码也会存在一段时间.

假设,如果我选择汇编作为我的新语言(哈哈),我必须通过将它们发送到一些基本的汇编类来让旧开发人员加快速度.新页面/项目将使用新语言,旧页面/项目必须与新页面/项目一起使用.有些人可能有一天会被改写成新语言,有些可能永远不会改变.

Perl中可能永远存在的将是我们多年前编写的解析脚本以及平面文件中的数据库信息.但这没关系,因为它们不与网页连接,而是与数据库连接.

感谢大家的投入,到目前为止它非常有用.

解决方法

似乎您的问题是遗留代码和非正式开发方法,而不是语言本身.因此,如果您已经有员工的Perl开发人员,为什么不开始现代化您的方法代码库,而不是切换到新语言,并创建异构代码库.

Modern Perl在良好实践和强大工具方面提供了很多:强调测试,Test::*模块和WWW::Mechanize,数据库交互可以通过普通DBI完成,但也使用ORM模块,如优秀的DBIx::Class,OO和Moose现在开启与更现代的语言相同,mod_perl使您可以在Apache中获得大量功能. Perl也有相当多的MVC frameworks.一个受到很多关注的是Catalyst.

投资一些Perl Best Practices的副本,为现代发展方法的几个班级引进一个适当的培训师,并开始改变你的团队的文化.

如果你很难找到已经熟练掌握Perl的开发人员,你可以随时雇用优秀的PHP人员并对他们进行培训,这应该不会太困难.至少他们学习一门新语言的意愿将是他们灵活性和改进意愿的良好信号.

总是很容易将代码的状态归咎于它所写的语言,但在你的情况下,我不确定是这种情况. Lots of big companies似乎没有问题在Perl中管理庞大的代码库,这个列表很长,但主要的Web公司都在那里,还有许多金融机构.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...