Comparing Water to PHP
1. Summary Overview
- PHP is a widely-used scripting language for building dynamic, thin-client, HTML-based web sites
- Water is a new, open object-oriented language designed to simplify the creation of new Web services
2. Water is native to Web services and XML, PHP is not
- In PHP, HTML and XML are treated as simple strings.
PHP has no way to validate generated XML or XHTML embedded within strings
- PHP has a special syntax for integrating PHP into HTML
The quoting rules are complex. Multi-level nesting of code and HTML is particularly difficult
- PHP files are not valid XML/XHTML files
- Parsing or creating XML data using any XML API is awkward, verbose, and slow
- PHP has no native ability to understand XML namespaces
3. Water has a much broader scope than PHP
- PHP only runs on the Web server, not on the client
Water runs in every tier.
- Using PHP still requires the use of multiple languages
HTML, CSS, JavaScript, PHP, XML-API's, Unix shell, and Make file still required.
Water eliminates the need for many special-purpose languages.
- PHP can not define custom tags for use by non-programmers
Water supports HTML tag abstractions for use by non-programmers.
4. Water is a full-featured, object-oriented language. PHP is not.
- PHP is not strongly typed
- PHP has no ability to create new user-defined types
- PHP is not a clean object-oriented language
Global variables are used in many places
- PHP is page-oriented, template-based scripting language
This makes it difficult to build complex applications.
- PHP lacks essential features for creating powerful abstractions
PHP lacks the ability to evaluate a PHP document from PHP code
Water lets you build custom control structures and have full control
over the execution of code.
5. Water was designed for building clean, secure, distributed services
- In PHP, presentation code is merged with business logic
PHP application code is typically embedded with HTML presentation code.
Water enables you to cleanly separate business logic and presentation.
- PHP has no real support for distributed programming
Water lets you start new Web servers from Water code.
PHP has no standard support for URI's as objects.
- Water has a strong trust and security model built into the core

|