Loading...
23
Jan

草根PHP VS 大碗Java/.NET

      随着所谓WEB2.0时代来临,程序员从来没有象今天那样受人注意,很多程序员对于语言的争论也从来没有象今天这样剧烈,Java、C++、PHP、ASP等等,最近又出来一个Ruby,加上Python。无数的FANS在中间进行争论不休,也就是在internet上,如果是在现实生活中,大概会象《倚天屠龙记》里描述的那样,会决战光明顶来定一个胜负,或者说定出天下第一大门派。

      人民群众是很爱戴PHP的。至少在我看来。没接触过PHP项目,但是身边的PHP项目越来越多,虽然都是小公司,还听说PHP很火,500W招高级PHP程序员--不知道是不是那CEO前一天晚上洗澡脑子进了水,或者薪水是越南盾之类的~

      偶在Google Groups上转,想找到说服自己的答案,找了很多developer问,PHP、ASP与Java,他们之间谁更好?Generally speaking,they would say,ASP out,Microsoft出的垃圾,PHP and Java are good choice,Java适合做大项目,PHP适合做一些短平快的东西。的确,世界上最大的C2C eBAY,就是用Java的,中国最大的社区ChinaRen校友录也是Java---而很多小的网站,初期都是PHP,后来各种原因都必须改到Java上面去。

      这种感觉就是像说,如果你想学武功以便出去砍人,或者说在江湖扬名立万,那么军体拳你就不用练啦,这个东西是GOV拿出来强身键体的,五虎断门刀这个东西你用来对付一般的流氓是绰绰有余,但是碰到绝顶高手你就歇了。而Java有点象太极拳,当今武林最大的门派之一SUN的首推武功,是对负高手的不二选择,于是很多人就认定:PHP是低等武功,练到最好的结果也就是给赌场看看场子,只有练就Java才能做武林盟主。

      看网上说,很多人都有这种心理,他是使用Java的,而你如果让他写PHP,,很多人会有一种受到侮辱的感觉,不是觉得经理不重视他,就是在想自己什么时候得罪了经理,竟然被发配到PHP这种偏远的小地方去了。越是大公司,PHP的项目越难开展起来,这个让很多技术leaders很是郁闷,但也很是奇怪。所以,下面,咱们一起分析一下形成这种被人民群众认可,却不被很多开发人员看好的语言——PHP。 PHP 进入中国是98,99年,进入的时候,初期应用的典型是Chinaren校友录,还有很多的互动应用,它以开发方便,容错性好,迅速成为很多网站的选择。到了00,01年,互联网泡沫的时候,很多都是PHP完成对网站的开发,它的流行有以下几个原因:

  • 兼容C的语法,容易掌握
    就这一点来说,它保证了开发人员的稳定来源,基本上说,每个学计算机的人员,没有不学习C 语言的,所以都能在一到两周左右快掌握这个新的语言,然后经过简单的指导,就能开始初期的开发工作。单从程序本身的开发而言,写了三年以上的程序员,和开发了半年以上的PHP程序员差别不是太大。
  • 运行的快速
    在网路上面,速度是很重要的问题,这一点来说及时是对PHP非常不屑的人也不得不承认PHP得运行速度还是比较令人满意的,只不过由于没有很实际的数据,只是很多人感觉,所以这一点来说,没有非常有力的证据证明。
  • 非常强的容错,很好的鲁棒性能(鲁棒性要强调下,前几天同学问我什么是鲁棒性,因为人脸识别这块很多这个词,我想破头都没想出来,后来才知道是robustness,郁闷至极,这是经常碰到的单词,但没想到是这样翻译)
    很多写PHP的人员应该有这个感觉,举个例子,你申请一个PHP中的变量,做数字也行,做数组也行,做字符串也可以。我有时候都在想,这么随意的风格,他是如何保证效率的,只能说写这个语言编译器的人实在太不可思议了。
  • 丰富的函数和简单的操作
    能想到的一些操作,如果不是太罕见,你基本都能找到函数库来解决,典型的就是读文件的内容读到一个变量,到现在为止,我知道的好像只有PHP提供一个专门的函数来解决这个问题

以上四个特点,用PHP开发程序非常得普遍,但作为程序来说,这些看起来非常不错的特征也形成PHP的一些问题,造成在很多资深的程序员对其评价很低。

      首先第一条,也是让很多资深的程序员对其尴尬不已的,做了3年以上的PHP程序员,当一个初学者问其一些技巧的时候,他们突然发现,PHP这种语言实在是没有好说的,看它的帮助就能解决问题或者看一下教程。不像Java,一个仅仅写了半年左右的Java开发人员和3 年以上的Java开发人员可以说有本质的区别,后者可以讲很多JAVA的开发架构和分布问题,讲的那个菜鸟满脑浆糊,满脸崇拜。

      第二条还是效率的问题。市面上对于WEB语言的效率,PHP快只是感觉,并没有一个非常有力的测试证明它比别的语言快很多,而JAVA和ASP却有一个非常有名的一个测试性能比较。

      有人做过试验,对这三种语言分别做循环性能测试。在循环性能测试,JSP用了20000*20000的循环? 共四秒钟。而ASP、PHP测试的是2000*2000循环(少一个数量级),分别用了63秒。PHP测试的是2000*2000循环 84秒 。

      一个有意思的测试,说明一个问题,对于大量的运算,PHP看起来不是一个太成功的语言,这个也是很多高手不是很看好PHP的一个实际例证明,然而实际是这个仅仅是一个有点BT的测试,谁会在互联网上写一个循环400万次循环以上的一次请求应用。实际上,在WEB应用中这种循环或者说密集的运算非常罕见,如果有,首先该考虑的也是算法的优化,减少循环的次数,然后才是考虑语言本身。并且就算是必要的,也不是Java、PHP和ASP能够解决的,这个时候,如果用的比较多,C会粉墨登场,再多一点,可以使用汇编,非常多的情况下,芯片的设计我想是比较好的选择,怎么样都不会轮到Java这种语言,所以用这种方法来评价PHP是非常不妥的。

而对于PHP开发中较好的鲁棒性(再次寒一下),你怎么写它都能运行,并且很稳定,从而也造成PHP程序员的散漫,程序的开发非常随意,又加上中国互联网产品开发的紧急性,几乎都没有很好的文档,从而后期PHP程序的维护成为无数项目经理的噩梦。这一点也是很多高手或者说资深程序员对于PHP评价很低的地方,而当很多项目经理需要要规范开发的时候,却又发现无从规范起,Java有Struts、MVC……而PHP却缺乏成体系的开发架构,从而也成为PHP很难成为企业应用系统的选择。至于丰富的函数操作,这个大概是唯一没有被人诟病的地方,但是 Java、ASP以及Perl都有很丰富的函数,PHP在这一点没有非常大的优势,所以只是成为人们选择它的一个不是很重要的理由。

  Google  Me 

 

Tags: , , ,

20
Jan

用McAfee阻止其他用户使用本机QQ

只剩English和Dialectics of Nature考试了,很随意的,闲来无事,研究了下McAfee的规则。用McAfee好几年了,一直都对它的自定义规则推崇有佳,我的MM和同学都开始加入了McAfee的阵营~不过如果不定义规则,McAfee就是一个摆设~

有时候不想让别人用自己的机子,特别是QQ,刚研究了下,这时候McAfee的自定义规则就有用武之地了:

  • 进入安装目录,假设安装目录为E:Program FilesTencentQQ
  • 删除以QQ号命名的文件夹,保留自己要登录的一个。添加规则。

规则为:E:Program FilesTencentQQ*。在规则表达式里,通配符*和**是不一样的,这就不详述了。

为了不影响自己正常登录和使用QQ,这里选择阻止“创建新文件”,在*通配符下即表示,不能在QQ文件夹创建新文件和文件夹。但不影响子文件夹下的文件文件夹的创建,也即不影响自己使用。

如要防止把QQ文件夹拷贝到另一位置避开此规则从而继续上,可以将规则改为:**QQ*
如果要是把文件夹名称改一下,规则不攻自破。(这也是McAfee的FD保护的一个不足之处)。所以,最好是直接禁止某QQ号登录,因为那文件夹是以QQ号为命名的,这样就可以完善一下,如,不想让1234567号登录,直接把规则设为:
**1234567*

 

Tags: , ,

16
Jan

解除QQ2006 Standard 的右键自动添加

用XX大师或者XX兔子可以暂时去除,可是不过多久又会出现,我是用正式版才会这样,原来的2005beta不会~
用那些XX卫士或者XX安全助手也没用~还是自己DIY吧!
用eXeScope编辑QQRes.dll
编辑:
资源 -> 字符串 -> 2104
删除里面的33652-33655

33652,添加到QQ自定义面板
33653,添加到QQ表情
33654,上传到QQ网络硬盘
33655,用QQ彩信发送该图片

 

Tags:

07
Jan

Ruby on Rails

现在新技术越来越多,让人不知所措。满世界的OOL,这个宣称比那个更有效率,马上又有第三个跳出来说我更安全,接踵而至的是第四,第五。。。。。

作为一种自称为纯粹的OOL,的确在这一年又前进了一大步。作为一个日本人开发出的语言,现在看来的确有它许多的优点:

Rails是敏捷的,已面向对象的方式构建了纯MVC框架。(Model-View-Controller) 完美的分离模型(数据库)代码,控制器(应用逻辑),视图(表现层)。让代码的维护变得更加简单。在修改数据模型后,你甚至不需要改动其他另外两层的任何代码。 另外,Rails的敏捷体现在它发明的数据迁移(Migration,由于没有官方译法,暂译作数据迁移)功能。数据迁移使得数据库的修改非常方便,你可以随时在原先的表格增加、删除字段或者修改字段的名字和类型。 Migration甚至提供了与Undo 和Redo类似的数据库修改功能,让开发者可以在几个数据库结构中反复切换。Rails把修改数据库,这个曾经Web开发人员最头痛的地方变得十分简单。

Rails的是简洁的,相同功能的系统,用Rails编写的代码大概只有用Java编写的代码的 1/20,因为它最大限度的减少了重复代码,使每一个代码行都直接反应到应用业务逻辑上。 还需补充的一点是,Rails封装了大量Ajax代码,开发者用Rails提供的API,可能不需一行js代码便能实现带Ajax功能的交互页面。

可是在这,我突然觉得这是遥不可及了,虽然作为我需要了解最新的技术,可是这项技术,好像是水中月,镜中花-

电脑好吗?当然好。但没有电就什么用也没有。rails好吗?当然好,但没有服务器虚拟主机的广泛支持,那就竹篮打水一场空。。。。。

最后讲一个中国古代的寓言:

屠龙术

这个故事记载在《庄子·列御寇》里:

“朱泙漫学屠龙于支离益,殚千金之家,三年技成而无所用其巧”

翻译过来是说有个叫朱泙漫的人,比较好干大事业,不惜倾家荡产,费尽千金的家产去跟着一个叫支离益的人学习屠龙的技术,学了三年终于学成了,但是却根本找不到龙去给他屠。

 

Tags: , , , ,