ownCloud作者谈PHP未来的无限遐想
时间:2014-11-20 22:55 来源:linux.it.net.cn 作者:IT
德国开放源码软件开发者Frank Karlit-schek主导的ownCloud项目,是目前采用PHP编写的最大型开源项目之一。他在谈及为何选择PHP时,提到以下几点。
优点
普遍性:ownCloud的目的是让所有人来托管自己的云服务器。而PHP目前广泛用于Web服务器、操作系统,平台的优势使得用户能轻松地进行部署。
通用性:作为脚本型语言,一个服务器tar文件可以运行于所有的平台而无须复杂的额外编译。
门槛低:大多数程序员对PHP都不陌生,即使是零基础的用户,学习PHP也是相对轻松容易。
轻巧强大:只要使用得当,PHP运行速度快,功能强大。维基百科、Facebook、WordPress等大型Web应用都是用PHP编写的。
资源丰富:PHP拥有庞大的开发生态系统,包括类库、组件、连接器/驱动等。使用它就如同站在了巨人的肩膀上。
不足
但纵然PHP有这些亮丽的优点,Frank也指出它有不足之处。
安全性:作为20世纪90年代的产物,它在安全性方面的表现不能令人放心,毕竟那个时候人们的安全意识还是比较天真幼稚的。
编译时间/运行时配置:调用 ./configure脚本来随心所欲地按照自己意愿编译PHP听起来很有趣,但如果进行换位思考,我们在维护时要逐字逐句地查看别人的脚本配置那就不见得那么美好了。
矛盾的函数和类命名:一时是下划线,一时是驼峰命名;某些特性可以是过程风格或是面向对象接口风格,甚或兼而有之。
静态类型:PHP在静态类型上可以做得更好。
最近Apple新推出的开发语言Swift触动了Frank,语言在更新换代时是需要保持向下兼容还是完全创新?而如果是类似Perl和Python那样 无法前后兼容,最终分道扬镳的局面,是大家不想看到的。对此,Frank就PHP的未来提出了自己的想法。
安全性:摒弃_Get、_Post、_SERVER,引入一个合适的API来对数据输入进行筛选。
数据库:PHP的数据库支援API真的太丰富了。但某些API已经非常老旧甚至过时了。Frank建议对此进行标准化,最终形成唯一的面向对象接口就可以了。PDO是他做出的第一步尝试。
32位/64位:在32位或64位运行PHP时,人们多少会发现特别是整型数据的运行差别。消除不同类型系统的运行差别是非常必要的。
剔除save_mode、open_basedir等传统概念,使用unicode字符。
移除大部分有关编译和运行时配置的选项:所有下一代PHP的运行时环境应该是尽可能统一和稳定的。
类型:引入可选静态类型的做法必定是非常令人激动的。这样的话一个变量可以定义为布尔或整形。如果错误地使用了变量,会抛出一个异常。
(责任编辑:IT)
德国开放源码软件开发者Frank Karlit-schek主导的ownCloud项目,是目前采用PHP编写的最大型开源项目之一。他在谈及为何选择PHP时,提到以下几点。
优点普遍性:ownCloud的目的是让所有人来托管自己的云服务器。而PHP目前广泛用于Web服务器、操作系统,平台的优势使得用户能轻松地进行部署。 通用性:作为脚本型语言,一个服务器tar文件可以运行于所有的平台而无须复杂的额外编译。 门槛低:大多数程序员对PHP都不陌生,即使是零基础的用户,学习PHP也是相对轻松容易。 轻巧强大:只要使用得当,PHP运行速度快,功能强大。维基百科、Facebook、WordPress等大型Web应用都是用PHP编写的。 资源丰富:PHP拥有庞大的开发生态系统,包括类库、组件、连接器/驱动等。使用它就如同站在了巨人的肩膀上。 不足但纵然PHP有这些亮丽的优点,Frank也指出它有不足之处。 安全性:作为20世纪90年代的产物,它在安全性方面的表现不能令人放心,毕竟那个时候人们的安全意识还是比较天真幼稚的。 编译时间/运行时配置:调用 ./configure脚本来随心所欲地按照自己意愿编译PHP听起来很有趣,但如果进行换位思考,我们在维护时要逐字逐句地查看别人的脚本配置那就不见得那么美好了。 矛盾的函数和类命名:一时是下划线,一时是驼峰命名;某些特性可以是过程风格或是面向对象接口风格,甚或兼而有之。 静态类型:PHP在静态类型上可以做得更好。 最近Apple新推出的开发语言Swift触动了Frank,语言在更新换代时是需要保持向下兼容还是完全创新?而如果是类似Perl和Python那样 无法前后兼容,最终分道扬镳的局面,是大家不想看到的。对此,Frank就PHP的未来提出了自己的想法。 安全性:摒弃_Get、_Post、_SERVER,引入一个合适的API来对数据输入进行筛选。 数据库:PHP的数据库支援API真的太丰富了。但某些API已经非常老旧甚至过时了。Frank建议对此进行标准化,最终形成唯一的面向对象接口就可以了。PDO是他做出的第一步尝试。 32位/64位:在32位或64位运行PHP时,人们多少会发现特别是整型数据的运行差别。消除不同类型系统的运行差别是非常必要的。 剔除save_mode、open_basedir等传统概念,使用unicode字符。 移除大部分有关编译和运行时配置的选项:所有下一代PHP的运行时环境应该是尽可能统一和稳定的。 类型:引入可选静态类型的做法必定是非常令人激动的。这样的话一个变量可以定义为布尔或整形。如果错误地使用了变量,会抛出一个异常。 (责任编辑:IT) |