On Fri, Sep 7, 2012 at 8:29 PM, Stas Malyshev <smalys...@sugarcrm.com> wrote:
> Hi!
>
>> Back on the namespace topic. I won't judge on anything, but i know
>> namespaces from c++. I understand that PHP isn't a compiled language
>> and quite frankly that doesn't matter at all. What does matter is that
>> PHP uses the name: "namespace" which C++ obviously had earlier.
>
> Here is something that I would like to emphasize. There's no "one right
> way" to do namespacing. And while PHP borrows a lot from other
> languages, it was never promised or guaranteed that PHP would work
> exactly like C++ or Java or Python or Ruby or any other language. If it
> makes sense for PHP, it is taken in. If it's not, it is not taken.
>
> In the case of namespaces, we needed to solve a particular problem of
> PHP - global namespace pollution and people inventing super-long really
> tedious names to deal with it. Moreover, it is in general *exactly* what
> namespaces are solving in each language.  Namespaces were designed and
> implemented to solve this particular problems, while keeping all other
> parts of PHP working properly.
>
>> Naturally someone that knows both languaes (c++ and php) simply assume
>> that a namespace in php probably works the same as those in C++. If
>> that's not the case then it shouldn't even carry the "namespace" name.
>
> I couldn't disagree more. Namespace is a generic term, not belonging to
> C++. PHP is not some offshoot of C++ that is required either behave like
> C++ or stay away from it. Again, if it made sense in PHP to implement
> *generic* concept of namespaces in a *particular way* that C++ does it -
> we might do it. But it didn't, so we didn't. We have no responsibility
> and no obligation to make implementations of generic concepts match
> those in other languages or invent awkward names for those if they do
> not. There's a value in behaving like other languages, but it only goes
> so far.
> Namespaces in PHP are as valid implementation of namespacing as those in
> C++, they are just different. You came to it with prejudices about how
> they should be working, these prejudices proved to be wrong, now you
> know more and you continue to be more productive. This is natural and
> happens to many people (myself included) quite often - one assumes
> something, one is sometimes right and sometimes wrong. If one is wrong,
> one corrects the mistake and becomes wiser. However I can't understand
> how it makes sense to blame the language for not matching somebody's
> personal background and prejudices.
>
>> To me this namespace in php stuff just looks like and alias. So why
>> isn't it named as that: "alias"? I do not want to question the ones
>> that implemented namespaces in php, but i do think that the name
>> itself is at the very least confusing.
>
> It's not an alias. Aliasing is a part of it, but not the whole.
> Declaration and the beginning of the file saying "alias My\Database"
> makes little sense, declaration "namespace My\Database" makes great
> sense - it shows that the file belongs to namespace My\Database, with
> all consequences of that.
>
>> Also, lets keep this discussion polite people. I'm not here to smash
>> toes. All i would like to know is the reasoning behind the above and
>
> I think I have explained the reasoning - specifically, why we have no
> global imports - in my previous emails, but if you still have something
> unclear, you are welcome to ask. It would make me happier though if you
> tried to read through the archives where namespaces were discussed and
> see all those arguments so we won't have to repeat them again, even
> though I understand that nobody really does that :)
>
>> if there is any intention of changing the namespaces to be more c++
>> like.
>
> I would evaluate the chances of it as very small and I would be in a
> very vocal and active opposition to that.
> --
> Stanislav Malyshev, Software Architect
> SugarCRM: http://www.sugarcrm.com/
> (408)454-6900 ext. 227

Oke, it's clear to me now. I understand why PHP decided to do it this
way (preventing global scope pollution). I don't agree on that, but
it's nice to know the reasoning behind it. Guess i just have to live
with it ^_-

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

Reply via email to