The only scripts that would break (far from "trillions") here would be
those where you had a space-less ternary statement comparing two
constants (NOT namespace constants -- they don't even exist yet), as
in the following case:

define('foo','odd');
define('bar','even');
$var = rand() % 2 == 1 ? foo:bar;

It seems like the solution here would be to give constants a higher
priority in the symbol table than namespaces, though I certainly don't
have the knowledge of the code base to make any conclusion as to how
difficult that might be.

Personally, I'd rather have namespaces with stupid symbols than no
namespaces, but my preference would definitely be either single or
double colons, as would most users, I wager, since that's probably the
most common namespace symbol in use amongst popular languages that
support namespaces. The argument that PHP isn't <insert language>
sounds good on paper, but in practice the language still has to
conform to some basic expectations when it comes to syntax. There's a
reason why the -> operator was chosen for member access, there's a
reason why || and && are used for logic operators, there's a reason
why the dollar sign is used to declare variables, and there's a reason
why a semicolon is used to end statements. NS:Class vs NS::Class vs
NS\Class is largely insignificant at the end of the day, but it's
better to try to stick to some common symbols that programmers of
different disciplines will be able to pick up on. PHP isn't taught in
most universities, and making things even harder for people to pick it
up seems counter-intuitive.

People who's "php coding" is limited to editing config files for
vbulletin and xcart certainly couldn't care less about namespaces, but
those of us who are writing applications and middleware, as well as
complex sites, would find the functionality tremendously useful. I'm
tired of walking on glass worrying about naming conflicts.

It's easy to say "well, name your classes sensibly!", but the reality
is that it's totally non-sensical to ask a developer to prefix THEIR
classes in application code. We're not psychics, we can't guess that
one day some core developer is going to create a Date class that will
cause fatal errors in our code. It's not just Date, of course -- it's
every common name out there. Should I not name a class
FrontController, because the SPL might implement one later? The list
goes on and on. The only real solution is to use NON-sensible class
names (I prefer greek dieties) to guarantee future-proofness.
Virtually every major application out there, from vbulletin to
MediaWiki to phpAdsNew has had a major naming conflict with another
application. Having silly dangly things on every classname / function
name gets annoying (at best), and is a giant waste of time. We want
short, concise function and class names, not
"my_application_html_clean_sessions()" Being able to import a
namespace that you need with aliases (or even just into the global
namespace) is a HUGE plus. This is especially true since PHP itself
doesn't even really follow a naming convention (htmlentities vs
html_entity_decode, isset vs. is_int and so on and so forth). If the
core doesn't follow conventions, how can you expect userland code to?

Even if the namespace patch is something that has to be done as an
extension, I'd be happy to see it in place. It's a fairly easy task to
get users to add --with-namespaces to their configure scripts, but
it's much more difficult to ask them to try to use diff and patch to
maintain their own builds (much less hand-edit C code).

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to