Hi, we have been thinking and discussing about this for some days, and just wanted to share with you about the point (L02) that is giving us the most headaches, so I'm pasting here the contents under debate.
thanks for feedback. So it seems that there are 2 alternatives for the level2 thingy, ignoring any other from now:
1) We forbid the use of any API as level2 (they get reserved for those API related things). We give 100% freedom for any other level2 word. Current code basically follows this.
2) We create a new "core" level2 (or "api", why not, shorter and clear), where we put all those API classes (mainly events for now, but will grow, for sure). Obviously only APIs can go there and level2 gets 100% freedom for everything else. Obviously "api" will be the only level2 forbidden word. This requires to move current stuff but it a) does not require to be done now b) should be really easy to move. I bet any IDE can refactor that perfectly (99% of success).
Finally, but not less important, I'd remark some points from my previous post:
P1) namespaces are not mandatory.
P2) global-scope code is not forbidden (yet).
Also, I like the idea (Tim) of having a plan to move current datalib, weblib and friends to level2, "data", "web"... in the future, of course, and while not fitting into any API.
Let's vote. As said, I've ignored other options coz think the 1) and 2) above are the only we can really implement (seems people is tremendously against to enclose their code inside a 3rd level ("componentapi" or similar), but loves/proposes to enclose all the core apis there. I really don't understand why, but ok, can accept it).
PS: As commented in the initial post here, all the rest of rules and votes can be found at:
(don't think there are other points to discuss there, but just in case you want to give all them a final review. The one we are deciding here and now is, exactly, L02)
So basically 2 options (all the rest have been discarded):
1) Allow both APIs (reserved) and developer's level2 to coexist. Can be problematic when new APIs land/are reorganized. That's more or less current way, so it son't require many changes.
2) Move all APIs to an "api" level2 (that would be the only one reserved word) and bring developers the whole level2 space for their enjoyment. No conflicts because core apis will be confined/separated always. But requires to move all current (level2, \core\event* => \core\api\event and so on) code to that new directory (big but not complex to do at all).
And that's the point we wanted to share here, any argument is welcome.
Again, this is exclusively L02, plz avoid any other, unrelated comment. TIA and ciao