在我的工作中,我继承了一个广泛的、设计不当的网络投资组合。大多数页面都是用 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 中可能永远存在的将是我们多年前编写的用于从平面文件中筛选和数据库信息的解析脚本。但这没关系,因为它们不与网页交互,它们与数据库交互。
谢谢大家的意见,到目前为止它非常有帮助。