The problem, of course, is changing and removing things can break BC. I'd love to remove list() too, but that would break code relying on it. On Jul 17, 2012 4:23 PM, "Christoph Hochstrasser" < christoph.hochstras...@gmail.com> wrote:
> Hi, > > Some of the things I want to see in PHP 6: > > New designed Standard Library: > > * Clearly defined conventions for organization, naming and error handling. > * Use Namespaces and groups functions by their purpose ("net", "strings", > "arrays",…) > * Promote SPL functionality ("spl_autoload_register", Data structures) to > proper > Core APIs by dropping the "SPL" prefix. > * Converts all resource based APIs (file, stream,…) to Object Oriented APIs > * Maybe find a way to share the standard library between multiple > implementations > of PHP (HipHop, Quercus, Phalanger). > > A better parser which is more maintainable and makes it easier to implement > language features every modern programming language has. > > * Slicing operators for Arrays (and Strings?) > * Splice Operator: splits an array into arguments for a function call. > Then we can finally remove call_user_func_array(). > * Optional Semicolons? I recently started doing some programming in Go and > I > really like this. > > Clean up the language: > > * Remove the old array() declaration syntax. > * Replace some keywords with syntax constructs. For example remove list() > and > use multi assignment syntax like $var1, $var2 = foo(); or remove the > array() > syntax. Makes names like "List" and "Array" usable as Userspace class names > again. > > Remove features which were made obsolete by the SPL: > > * __autoload() — was made obsolete by spl_autoload_register() > * dir() — DirectoryIterator, probably make dir() just return a > DirectoryIterator. > * probably more. > > Make some runtime features more consistent: > > * Autoloading for all kind of missing constants (function names, namespace > constants) > * Function importing just like Class importing > * Language Specification which makes it easier to maintain competing > implementations. > > There's probably a lot more we could do, but these are some things from > right the > top of my head. > > > > -- > Christoph Hochstrasser > http://twitter.com/hochchristoph | http://christophh.net | > https://github.com/CHH > > > > Am Freitag, 13. Juli 2012 um 17:33 schrieb Anthony Ferrara: > > > Hey all, > > > > I know that 6.0 was originally supposed to be the unicode conversion of > the > > engine. However it appears that all progress on that has stopped for > quite > > some time. > > > > So, I was curious if we could start a conversation around what 6.0 would > > look like if we didn't go the unicode route. What would be the major > > changes that we'd base it on. > > > > Here are a few of the ideas that have been floating around in my head. > > > > 1. Change the error handling system from the current E_* system to typed > > exceptions for everything but advisory errors (E_STRICT, E_NOTICE, > > E_DEPRECATED). Why? Because the current error system encourages ignoring > or > > not checking what the error was, and it makes defensive programming quite > > difficult. This is arguable and preference for sure, but it's a major > > change that could have large benefits. > > > > 2. Make namespaces first-class meta-objects. That way, you could have > > namespace private and protected classes, functions, variables, etc. This > > would allow for better scoping of modules... > > > > 3. Make all zval types pseudo-objects. Basically enabling something akin > to > > auto-boxing allowing a significant amount of the standard library to be > > eventually deprecated in favor of acting on methods (not initially, but > > opens the door). > > > > 4. Rewrite the entire parser completely. I keep hearing about how bad > PHP's > > parser is, and how it's growing out of control. Perhaps this is a good > time > > to rewrite it (perhaps changing semantics slightly) to be better adapted > > towards future changes... > > > > I'm not saying all of them are solid. I'm not saying any of them are > solid. > > But hopefully this can spark a discussion around it... > > > > Thoughts? > > > > Anthony > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > >