PHP: PHPと他の言語 - Manual
PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<PHPとCOMPHP 2からPHP 3への移行>
view the version of this page
Last updated: Tue, 21 Dec 2004

第 72章PHPと他の言語

PHPはウェブプログラミングをするには最高の言語です。が、他の言語はどうなので しょうか?

1. PHP vs. ASP?
2. ASPからPHPへのコンバータはありますか?
3. PHP vs. Cold Fusion?
4. PHP vs. Perl?

1. PHP vs. ASP?

ASPそれ自体は言語ではなく、Active Server Pagesの頭文字です。ASPを作成す るのに使用される実際の言語はVisual Basic ScriptかJScriptです。ASPの最大 の欠点は、それがMicrosoft Internet Information Server (IIS)でのみ動作す るメーカー独自のシステムだという点です。これにより、ASPはWin32ベースのサー バ上でしか動作しません。ASPを他のプラットフォーム、ウェブサーバで動作さ せようといういくつかのプロジェクトが進行中です: の(商用)、の(商用)、そしてです。 ASPはPHPに比べて遅く、面倒で安定性も低いといわれています。ASPのプロフェッ ショナルの人たちの中には、ASPでは主にVBScriptが使用されているのでVisual Basicでのプログラミングに慣れている人にとっては覚えるのが比較的簡単だ、 という人もいます。また、IISサーバではASPサポートがデフォルトで有効になっ ているので設定が簡単という利点もあります。ASPに組み込まれているコンポー ネントは非常に限られていて、もしFTPサーバと協調するといった「進んだ」機 能を使おうと思ったら別途コンポーネントを購入しなければなりません。

2. ASPからPHPへのコンバータはありますか?

はい。サーバーサイドのは オプションと同じくらい有名です。

3. PHP vs. Cold Fusion?

世間ではPHPはCold Fusionに比べて速く、複雑なプログラミングを 効率的に行うことができ、新しいアイデアを意欲的に取り込んでいる、と言われ ています。また、安定していてより少ないリソースで動作するというのが一般的 な意見です。Cold Fusionはエラー処理、データベースの抽象化、日付 の扱いにおいて優れていますが、データベースの抽象化についてはPHP 4で行わ れています。Cold Fusionの利点として挙げられることの一つに、その優れたサー チエンジンがありますが、サーチエンジンはウェブスクリプト言語に含まれるべ き機能ではないのではないか、という意見もあります。PHPはほとんど全てのプ ラットフォームで動作しますがCold Fusionが動作するのはWin32, Solaris, Linux, HP/UXだけです。PHPは初期段階から多少のプログラミングに関する知識 を必要としますが、Cold FusionにはすばらしいIDEがあって、一般にとっつ きやすいと言われています。Cold Fusionはプログラマではない人たちも意識し てデザインされていますが、PHPはプログラマ主なターゲットとしています。

Michael J Sheldonによるこのトピックに関するすばらしいサマリがPHPのメーリ ングリストに投稿されました。でその内容を読むことができます。

4. PHP vs. Perl?

PHPのPerlに対して最も有利な点ははPerlが何もかもやろうとしてその結果複雑 になってきているのに対して、PHPはウェブスクリプティングを念頭においてデ ザインされていることです。Perlの柔軟さ/複雑さは、他人にとって非常に読み にくいコードが簡単に書けてしまうということでもあります。PHPは、柔軟さを 失うことなくそれほどややこしくもなく厳密でもない構成になっています。 PHPはPerlに比べ、簡単に既存のHTMLに統合することができます。PHPにはPerl で使用されている非常に多くの「良い」機能があります:構成や文法等です。そ してこれらがPerlほど複雑になることなく提供されます。Perlは80年代後半から 在る十分に枯れた真の言語ですが、PHPは急速に成長しています。



add a note add a note User Contributed Notes
PHPと他の言語
symcbean
20-Feb-2005 11:00
I really must take issue with (Cash at nospam dot thesilverside dot com)'s comments regarding enterprise applications and PHP.

Yes, PHP is an interpreted language (but...PHP Accelerator? also you can write caching *with* PHP, also checkout and have you seen the benchmarks for Pharrot?). Adding more tiers into your application is a recipe for disaster since it reduces scalability by creating bottlenecks/crossovers and has a big impact on transparency. I'll admit that for a very few applications, then server hardware is more expensive than developer time - like if you're turning around more than 500000 hits/hour, then it may work out cheaper to develop in 'C' with half the servers than PHP, but this is far from the sort of volume I've seen on an enterprise application. There's a lot been written elsewhere on PHP and scalability which I won't repeat here.

There are issues with using PHP for this kind of application. Firstly managment of privilege - but that applies (AFAIK) to any web-based system. There's also the problem of namespace collisions in large apps.

Since I regularly develop embedded applications with PHP using HTTP as the communications substrate for transactions spanning 6 or more origanisations, I'd like to know whay I shouldn't be using PHP / processing synchronously, and how I can create a near real-time system without synchronous operation.

It'd be a sad world to live in where there was only one programming language/methodoly/idiom - diversity is a great thing. Java provides beans and struts, Coldfusion provides fast development and .NET....(suggestions please). PHP comes closest to solving my problems, many of which are very much in the enterprise applications domain.
Web Consultant Since 1994
19-Jan-2005 07:26
...Well, all I can say about ASP.NET and the .Net frameworks is that rather than adopt them we decided to switch all of our development to PHP and other open-source tools. We simply got tired of all the churing of the development platform from $soft: things like changing API's during final betas, undocumented api's etc.

Ive programmed in C, C++, VB, ASP (since the original beta in 1995) and ASP.Net, Com, Com+, .Net Frameworks and in C("sharp"). The fact of the matter is that most of these new and "improved" development tools dont save much, if any money, and are mostly, unnecessary. We have found PHP to be an excellent replacement for similar $soft tools and technologies for web development.

Its true that there is a bit more code required to supplement things that $soft and others give you for a price, but the bottom line is that most of these things are not very difficult to do properly. In our business there is a huge risk from not having access to source code and we simply cant be held hostage by a third party company: when you add up the dollar value of this risk for our business it far exceeds the few dollars we need to spend in extra supplemental coding - which is done once so its a one-time cost.
berjoza at bigmir dot net
26-Mar-2004 04:25
How about PHP and JAVA?
You can use PHP vs JAVA in following order
  1. In php.ini file add
   - extension=php_java.dll
   -
     [Java]
         java.class.path  =  "c:\usr\local\php\extensions\php_java.jar"
         java.home      =  "c:\usr\local\j2sdk1.4.2_03"
         java.library      =  "c:\usr\local\j2sdk1.4.2_03\jre\bin\server\jvm.dll"
         java.library.path =  "c:\usr\local\php\extensions"
Cash at nospam dot thesilverside dot com
12-Jan-2004 07:12
To correctly utilize PHP in enterprise applications, one may want to bear in mind that if PHP is being used synchronously, it should be kept to the presentation layer only. Other languages that were previously mentioned througout the notes above (such as Perl, Java, and the .NET CLR... if you're on Windows) would be more appropriately used within the business process and data access layers. If you really want to maintain higher speed on presentation, then perhaps one would want to incorporate asynchronous instead of synchronous processing into the presentation layer of your application.

In other words, if you are using a connected data source, such as a SQL database, try shifting the processing time back a layer by providing a medium interval return from the data source to an XML file that the web service can access. This will allow your web presentation layer to load the data significantly faster than it is now. It will also give more resources back to PHP and your web service processes.

If you still cannot get the PHP processes back up to par, then you should consider using PHP as an asynchronous page constructor, thus shifting PHP itself back to the business process layer and allowing the web service (Apache, IIS, Netscape, etc.) to return HTML files instead.

Aside from page caching, (to my knowledge) you simply cannot get any faster than that.
Tricrokra
26-Oct-2003 01:28
I have to note that a very big advantage of PHP over ASP is that PHP has much easier commands...

Take openening of a file in ASP...
First create a file object... I put this into a function because the line is simpy to long and I called it "Init fileobject"

<%
Initfileobject    'The Sub I created in order not to type that idot line all the time
Set Fil = FileObject.OpenTextFile(Server.MapPath("data")&"\datafile")
datavar = Fil.ReadLine
CloseFile Fil
Set Fil = Nothing
Set FileObject = Nothing
%>

Why always those objects...

The same thing in PHP

<?php
$fil
= fopen("data/datafile","r");
$datavar = fgets($fil);
fclose($fil);
?>

That's all...

And that while VBScript is based on BASIC (BEGINNERS Allpurpose Symbolic Instruction Code)...

I code too shortly in PHP to make a full analysis yet, but the complex object structues of VBScript is something I really put in question, PHP has a much easier syntax when it comes to that...

One of the first things I saw was that PHP is based on C, which is one of the hardest programming languages in the world. That makes the syntax of for example the "for" statement less to my desire, which I like better in VBScript (ASP)... If you are an experienced C or C++ programmer, I think PHP makes automaticly the best choice out of PHP vs ASP.

But I did find out in only 1 hour that the syntax of PHP gives you much less typing than ASP, that is a fact. I think that for the rest the pick of language is pretty personal.

When it comes to stability. ASP servers crash very much. I don't think ASP itself is the evil one in this. ASP only runs on Windows servers, and we all know how much Windows crashes. I truely believe that also picks a part of the puzzle...
atoi_monte at hotmail dot com
24-Jul-2003 06:34
---------------------------------
QUOTE:
This is a comparison between PHP and Java/JSP:



Any comments?
---------------------------------

Probably the worst comparison I have seen in a long while. They penalize PHP for class scope and global variables and such.

1)  While that may be relevant for APPLICATION programming, it's totally irrelevant for web programming.  Web programming, imho, is about being able to get a quick, organized solution out QUICKLY so that it can be maintained and dynamic. The global variables, lack of package system, and loosely typed nature of PHP makes it easier to use and get stuff done in, while the syntax is still clean and easy to maintain. On applications programming.. yes.. Java is a better solution. But for web programming, JSP doesn't hold a candle to PHP, imo.

2) With PHP 5, I would just like to remind everyone, there will be a lot of concessions to Java programmers (mostly to lure C++ hackers to PHP over C# or Java) like constants, abstract stuff, and access control. While it won't impact the programming that much ( you can still code just like you always have) you can at least feel more like C++ when we finally get to use PHP5.

dan
anonymous at coward dot com
09-Apr-2003 07:23
As far as I can see, Web Consultant apparently missed the topic, which was "3. PHP vs. Cold Fusion", not "PHP vs. compiled languages (JSP,ASP.NET, and ColdFusion MX)".

We probably all agree that PHP, compared to what ColdFusion was at the time of the writing of that part of this FAQ, is far more capable of complex scripts, and also generally outperforms ColdFusion in similar tasks, too.

I'm not familiar with ColdFusion MX, but as it sounds like it's a rather new product, I would draw the conclusion that it isn't what the writer of this FAQ had in mind when addressing PHP vs. ColdFusion comparisons.

Surely, Web Consultant must have made the same conclusion based on his discovery that the FAQ is outdated and thus should be updated.

cheers.
Web Consultant
04-Apr-2003 09:39
Sounds like this FAQ needs to be updated.

How about ASP.NET and .NET Framework?
How about ColdFusion MX? 

PHP has limited/None out-of-the-box database integration with popular RDBMS(Oracle,SQL Server), integration with COM and to Java Servlet and Enterprise Javabeans, that alone make ColdFusion MX and ASP.NET an attractive development platform. 

PHP might be good for developing non complex websites for no cost; however when you are developing enterprise web  systems that have to integrate with many different flavor of sources .. php does not have the out-of-the-box functionality for the above needs.

"PHP is commonly said to be faster and more efficient for complex programming tasks and trying out new ideas. PHP is generally referred to as more stable and less resource intensive as well. "

I like to see proof of this statement. How is a interpreted  languge faster and less resource intensive than a compiled languge(JSP,ASP.NET, and ColdFusion MX)?

ColdFusion MX Server cost about $1300, but the total built in functionality and versatility makes it a worthwhile. If you start out with PHP, ask yourself how much time and money you have in developing the source to provide the functionality you are looking for.

PHP vs ColdFusion MX
phalcomb at arbolnet dot com
06-Feb-2003 02:29
My experience with ASP and PHP is about equal, I think they both serve equally as good of a purpose depending on what the programmer is trying to do. I do like the syntax of PHP a lot and the speed of it is great, although the client/server interactivity of ASP with Windows and MAC clients is what I'm excited to see grow with future versions of PHP.
mavi_br at someplace dot com
14-Dec-2002 01:02
I've been working with PHP, JSP, Java and CFM for 2 years now.
I can tell that for web development only, php is not nearly as good as cfm on speed, on ease to use and on interaction.
On the other hand you just can't do anything very special with CF like opening a socket with the ease of php.
I would say : use what you need for your application, cfm is truly the fastest, as it has a daemon running instead of a per request, plus the ability to cache queries that is awesome.
php is fast but is a pain on some aspects and has loads of bugs.
JSP have almost no bug at all, or at least i did not find any, but it is hard to debug.
Good thing on JSP is that you can write real applications and have perfect interaction by using classes, plus it is much more of a serious language.The only problem is that you take at least twice times to make same program on JSP and it is not even close as well documented and easy to use as php.
nospam at phppatterns dot com
23-Nov-2002 12:54
Here's a PHP coders response to Abduls "Java or PHP" article?

"PHP or Java?":
dir at badblue dot com
26-Sep-2002 04:51
To ahabra,

Very interesting page.  I would ask the following, however as you investigate this topic further... you'll soon become the PHP vs. Java guru.
 
Your comparisons are interesting and well thought out.  I would also add some higher-level (less computer-science oriented, simply because the task at hand is generating web pages 'on the fly').  As a pure CS language, there is no doubt that Java is superior.  But as a web page generator, I have moved from a Java-centric approach to a PHP approach, leveraging servlets or beans as needed "under the covers".
 
Therefore, some higher-level things to consider:
 
1) Compare the complexity of real-world production applications (postnuke.com vs ? in content management, phpbb.com vs. ? in discussion boards, jpgraph vs. ? in graphing).  In my mind, the proof is in the pudding - which technology results in the better, more production-ready applications?  They may be out there for Java - I would just like to know where they are and who is using them.
 
2) Compare slinging (generation) of markup which is where PHP excels (as it was designed to sling markup - this includes features such as character transformations, variable accessibility, web page captures (see the fopen call which captures a web page in a single function call).  Your point about a string being encapsulated in a string class is somewhat irrelevant if you are a programmer cranking markup.  Embedding object-oriented code into a page can be much more painful (and slower to execute) than leveraging traditional coding techniques.
 
3) Compare native database and directory support.  Java would have the advantage in generic database access (JDBC) but PHP has the advantage in LDAP support (JNDI has several bugs which we have run into - quite painful) and native database access (e.g., Oracle or MySQL integration).
 
Overall, well done - and a very popular topic!  It's worth building it out further.
developer at i-space dot org
04-Mar-2002 04:34
If you ever tried to configure a web server for WAP, serving WML content you know it's not an easy job. You can easily make dynamic WML pages for mobile phone users with PHP. All the options and extras from DB+PHP oriented web-site can easily be transfomed into a WAP version of your site. With a single line - Header("Content-type: text/vnd.wap.wml"); you can be in another "mobile" dimension :). Take all you need ... and even more.
nick at divbyzero dot com
29-Aug-2001 10:45
Actually, ASP isn't as terrible as one might think, if you have a background in Javascript (or other object-based languages with dot-notation (object.object.function()). VBScript is a pain, true (cuz it looks, feels, and smells of VB), but JScript is a lot nicer and syntactically looks like Javascript with extra functions added for server-side stuff (ie., file i/o) that Javascript can't do client-side.

And while most of the code samples on the net and documentation talks about VBScript, JScript docs and manuals can be found on M$'s sites in a few places.

Where VBScript has that painful

IF ...
ENDIF

crap, JScript has the friendly

if () {
 // ...
}

and even

for (indexVar in ArrayName) {
  // ...
}

stuff, very much like PHP's foreach() looping.

Once you get around the bulky object syntax for opening, closing, writing, appending files/folders, it's not too bad. Good regExp handling, too. And translating from PHP to ASP and back again is a good programmatic exercise for those trying to stay grounded in object (Javascript/Jscript) and function (PHP) notation differences.

eg., preg_replace("/pattern/","replacement",$source);
becomes source.replace(/pattern,"replacement");
etc.

For examples of code workarounds I've built to translate PHP functionality to ASP and vice versa (like translating PHP's file() into ASP), check out: and

- [email protected]

<PHPとCOMPHP 2からPHP 3への移行>
 Last updated: Tue, 21 Dec 2004
show source | credits | sitemap | contact | advertising | mirror sites 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: /
Last updated: Mon Mar 14 08:13:06 2005 Local time zone must be set--see zic manual page