作者clifflu (缺钱啦 @@)
看板PHP
标题Re: [徵求] php十大优点
时间Sat Oct 22 12:48:05 2005
※ 引述《hialan (You are dead.)》之铭言:
: ※ 引述《shrimp0427 (shrimp)》之铭言:
: 3. 跨平台。跨平台应该不是他们关注的焦点,但是因为使用技术的关系,
: 在平台上还是有限制。
: 而因为 Apache 在各种机器上都有版本,所以 PHP 应该也可以在所有机器上执行。
: 如果今天在 Win32 上面没有 Apache , PHP 也可以直接支援 IIS ,让 IIS 跑 PHP
: 而 ASP.NET 几乎不可能在 IIS 以外的伺服器上跑,
: 虽然他的 .Framework 号称跨平台,但我认为他所跨的是 Windows 32bits
: 和 Windows 64bits,当然这不较跨平台啦。
: JSP 在两个平台上应该都可以跑,因为 Java 在任何机器上也都可以跑。
理论上, open source 就足以让你跨平台
-- 只要 depending package / library 都存在
: 4. 语法近似 C 语言,适合熟悉 C 语言开发环境的人。
: ASP.NET 是使用 VB.NET
: JSP 是使用 Java
: 不过 C 语言还是最基本的语言,这也是优势。
php 的变数型态非常弱, 这能够让我们快速的开发,
但也能让我们写出很难想见的 bug.
: 1. 没有搭配好的元件以及所见即所得的开发工具。
: 例如 ASP.NET 使用 Visio Studio 或是新的 Web Developer,
: 左边有帮你写好的一些工具,像是日历之类的东西,一拖过去就好了。
: JSP 在这方面也是输给新的 ASP.NET
就 ASP.Net 的新观念来看, 我觉得他们有点想打破 server-client
间的藩篱 (虽然还是透过 page reloading / form, 而非其他帅气的技术啦 XD)
在观念上, 我会觉得这些套件没太多了不起的,
至少万变不离其宗, 而且自己写出这些东西 (喔,或写成套件, 如 form-gen)
也不是太困难, 要修改更是容易.
别忘了我们有物件导向技术... 什麽, 大家都有啊 XD
: 2. 物件化。这或许与 PHP 一直想要支援物件导向有关。
: 我使用 ASP.NET 编辑,假设要连线资料库,只要拖一个连线 SQL 的物件上去。
: 在原始码看到的只是一个标签。
: 这有甚麽好处? 假设今天连线资料库的这个地方有问题,我不必修改原始码,
: 只要该语言的发展人员放上更新就可以解决问题,而已经设计好的网页都不用动到。
: 但是今天 PHP 是把连线资料库这些动作写在程式里面,如果今天函式因为安全性
: 修改,那网站维护人员可能就要头大了。
: 如果 PHP 支援物件导向,而且开放社群自行撰写物件,我们以後如果要写程式
: 也只是引入几个物件,把参数打好。这样一来不只可以解决这个问题,也可以提供
: 比 ASP.NET 更多的类别使用。
当然可以. try PEAR::DB
我在 src code 所使用的, 也只有 $mydb =& new DB ; 而已.
如果你想把资料放在自己的设定档里, 那麽也可以如此产生 DSN
如果你会动态改变资料库帐号, 甚至可以 extend 你自己的 DB class.
: 3. 语言的规格化。
: 有的人跟我说, ASP.NET 可以提供验证甚麽什麽的,发展起来比较安全,
: 架构也比较大。当然我个人非常不以为然,但是这或许也是 PHP 的一个缺点。
: 怎麽说呢? 应该说是 PHP 这个语言本身太自由了,所以今天你可能写出来的程式
: 可以跑,但是并不安全,而学习 PHP 的使用者也并没有被教导要如何才能写出安
: 全的网站。
验证 ? 在 server side 重新检查使用者的输入资料, 应该是安全性的第一步吧.
php 也能透过 addslashes / htmlspecialchar 函数来做到既有, 已知的替换
你也能使用 POSIX or Perl regular expression replace 来做到其他事
: 我觉得这主要是在推广的问题而不是语言本身的问题。
: 在这方面, ASP.NET 和 JSP 就比 PHP 好。
: 在语言方面,就提供了很多很多大企业用的功能。
: 例如表单验证,伺服器资料快取之类的功能。
Server side cache ?
我以为这是 coder 的责任 XD
你应该要知道你需要快取哪些资料, 或是为使用者先抓哪些资料进来,
或者对静态页面, 直接从 apache 做到 cache.
就我的感觉, ASP.Net 对 PHP 最大的优势在於程式码的重复利用率较高.
并且整个 .Net Framework 也提供了许多高效能的资料结构型态,
或甚至某些运算的演算法. 这使得程式码执行效能上, ASP.Net 可以高过PHP
另外, 由於 ASP.Net 使用 code-behind 的概念, 我可以直接引入方案 (Workspace)
中的其他元件, 如此能够帮助横跨 server-ap, service, web-app 之间程式的开发.
对 PHP 想做到这样的事情, 难度可就高许多了.
即使能做出这样的 "功能" (透过 socket / php-executables),
效能也会是种巨大的问题.
并且当专案长的够大时, 缺少一些较严谨的特性如型别检查, 宣告,
以及目前仍未有完整 开发/文件 的 app schema generator (like javadoc)
也会造成某种程度的阻碍.
Visual SourceSafe ? 这什麽东西啊, cvs / svn 都是更开放的协定.
--
鬼压床怎麽办
骑上去啊
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.121.97