Stut wrote:
On 29 Sep 2008, at 12:47, Nathan Rixham wrote:
Last week I got to thinking about PHP vs other languages.. sparing the
details this is what I decided I'd like my code to look like :) [what
*I* /as an OO developer/ need(?want)]
<?php
package com.mydom.thispackage
Looks a lot like Java, not that that's a bad thing.
{
Completely agree that multiple namespaces per file should be allowed,
and using curly brackets is the obvious syntax.
import com.anotherdom.MysqlDbHandler as DbHandlerA;
import com.somedom.DbHandler as DbHandlerB; # "as" makes this easier
import com.mydom.thatpackage.RssParser; # we don't have to "as"
Would this then be available as RssParser:: or would you need to specify
the full name.
just RssParser.. I'd see "import" being a replacement for include
import com.mydom.thatpackage.RssParser;
same as
import '/classpath/com/mydom/thatpackage/RssParser.php';
import net.php.pecl.Tidy into TidySpace; # "into namespace"
import org.nicedom.alwaysusethese.*; # why not?
How does PHP work out where these "packages" are?
see above + in this case compiler would loop through the directory
'org/nicedom/alway/usethese/' and include all files (one class per file)
public class MyClass # visibility on classes
{
private $dba:DbHandlerA = new DbHandlerA();
private $dbb:DbHandlerB = new DbHandlerB();
Can't do this. This would require the compilation phase to execute code.
This is what constructors were made for.
my mistake I meant:
private DbHandlerA $dba = new DbHandlerA();
private DbHandlerB $dbb = new DbHandlerB();
scope type variablename = new class();
obviously calling __construct as per normal.
Personally I'd prefer the fairly standard "type varname" order rather
than the "varname:type" you have here.
agreed - thought that as an after thought; no need to change everything!
protected $xmlString:String;
public function __construct( String $xml ):void #return types
Here you've switched to the "type varname" order for the parameters and
gone back to ":type" for the return value. Why not just "function x(type
varname) type" ?
see above.. "type $variable" is better [well matter of preference, no
need to change] :)
{
if( TidySpace::tidy_is_xml( $xml ) ) { #namespace function call
$this->xmlString = TidySpace::tidy_repair_string( $xml );
One would hope that when namespaces are ubiquitous there will be no need
to prefix functions with package identifiers.
surely that would defeat the point of namespaces.. if the function
exists in two or more namespaces/packages then namespace prefix is required.
with NAMESPACE {
}
syntax would be cool as well
}
}
}
}
?>
all purely a made up example; I'd be interested to here any comments
or what your ideal language (/modified php) would look like.
I've never really thought about how I'd like a languages syntax to be,
I've just accepted the way it is. Having said that I've built a couple
of compilers in my time and for the most part they were a combination of
C, C++ and Perl, much like PHP. So in that respect PHP is the one that
clearly makes the most sense to me for procedural languages.
In terms of OO I've always liked the Objective-C way of doing things. It
seems more natural than the C++ syntax.
-Stut
why not throw out your ideal/made up procedural php language syntax;
would be interested to see how what I as an OO dev would prefer compares
to what you as a procedural dev would prefer.
thanks for the reply - probably a wasted convo but an interesting one
that may lead somewhere!
--
nathan ( nathan@xxxxxxxxxxx )
{
Senior Web Developer
php + java + flex + xmpp + xml + ecmascript
web development edinburgh | http://kraya.co.uk/
}
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php