程序员(一般)定义好的编程语言是他们知道最好或最经常使用。我是一个PHP程序员,约翰是一个JavaScript程序员,DHH是一个Ruby程序员,施瓦茨和兰德尔是一个Perl程序员。 每个不同程序员看待问题都是不一样的,但是总有一两个会被共同认为是最好的。
每当听到PHP被不尊重的时候,作为一个PHP开发人员,感觉很受伤。
虽然我们必须使用PHP为一个用于Web应用程序的语言,但它是一个烂语言,其使用不应予以鼓励,或支持超出了必要。
哎哟,听说我日常使用的语言,被给予很烂的评价时候,有人可能会说你不应该管其他人对你选择的语言的评价,只要自己认可就行。我想我真的不应该吗,而且该声明暗示的是,不仅是语言很烂,开发商烂,而且我们PHP开发者也烂。
那么,究竟应该怎么做才关闭他人的大嘴巴呢?我们能否使PHP语言受到尊重? 我们能否让PHP开发人员受到尊重? 让我们来分析某些方面我们可以做到这一点。
一、打破一切
PHP7要打破一切。 PHP开发人员应该接受打破版本之间向下兼容的定律。只要不允许大量的向后兼容,PHP7将是一个高度尊重的语言。
1、创建一个具体的核心语言
删除所有库方法,并保持在对象集中的核心方法。 您应该能够编写无需任何外部库或扩展PHP7和对基本输入/输出,字符串处理和数学一个很好的完整的语言。库以外的任何应该通过批准扩展。
2、一切都当作一个对象
以从Ruby,Smalltalk和(主要)的Java对象,并把它一切当作对象。 整数是对象,字符串是对象,他们每个人都可以操作的方法, 我不相信PHP需要的Ruby和Smalltalk在对象之间传递彼此讯息的观念,而调用对象的方法才是最好的。
3、一致的命名方法和类
由于PHP的最大的抱怨之一是不断要检查,(needle,haystack) 或(haystack, needle),或some_function(),或function_some(),或someFunction(),一个一致的格式需要制定。
4、让事情严格
尝试传递到一个方法浮动字符串? 这是一个警告。
5、 一切是Unicode
在PHP6中的所有字符串都是Unicode,这很好,我主张PHP7也应该保持。
6、中央启动点
创建一个主类或初始化,所有代码执行源于此。
7、清理C代码
我不是一个C的专家,但如果你比较了解Ruby的C代码到PHP的C代码,可以很容易地了解了PHP与Ruby的内部。 我非常熟悉PHP,所以我自己的写扩展更容易。
8、摆脱eval()
eval()是邪恶的。 如果你正在使用它,那么这是一个错的主意:这将打破PHPUnit,抛弃它从现在开始。
9、支持操作符重载
因为一切都是对象,开发者只需掌握操作对象的方法即可。
10、允许的方法签名
允许真正的方法签名,所以程序员可以有不同的参数列表或返回类型的同名方法。
- class A {
- public int function doSomething(int $a, float $b) {
- // Same as $a->*($b->to_int());
- int $c = $a * $b->to_int();
- return $c;
- }
- public float function doSomething(int $a, float $b, float $c) {
- // Same as calling $a->*($b->*($c)); since * is a method on each object $a and $b.
- float $d = $a * $b * $c;
- return $d;
- }
- }
11、建立一个PHP虚拟机(PVM)
我不能完全肯定这是可能的,因为我不是一个语言设计师,但它会是不错的一个PHP虚拟机。 它可以执行PHP字节码,并允许一个明确的堆和堆栈。