To me that removes a lot of redundancy, plus, making core functionality reusable via standard OO mechanisms would be a significant improvement.
Of course, proper namespaces/packages would help as well. The previous example might look more like:
$arr = array::new(); array::push($arr, 42);
Though there's still redundancy here, in that I know $arr is an array, and I shouldn't have to restate that everytime I do something to it, at least it becomes easier to remember what function and procedure names are because they're shorter, and all grouped in an "array" package.
This has been my biggest problem with PHP's OO model. As good as they make it, very few people are going to use it.
Those who know enough to use it know that when it comes to web development with a bent towards obect-orientation there are far more pleasant (syntactically and/or semantically) alternatives.
Those who don't know the benefits of such an approach will see the huge library of built-in functions and think that must be the way to do things.
They would have been better off delaying the final release of PHP5 a year or two and just going through and converting the entire library to an OO model. That would be a step in the right direction.
But since the BIOS wasn't killed, a whole industry has evolved around that backwards compatibility. Intel finds themselves in a fix because they didn't kill it earlier, and now they have an obligation to maintain that tradition. Inertia is a tough force to fight, and Intel is learning that now.
The only thing I would add is that Mac OS X users should install Ruby themselvesbefore making any judgements on it. The version shipped with Panther is a bit dated, and if I recall correctly lacks some of the features you get from installing it yourself.
Apple's already doing this, just in a more subtle way. They see the writing on the wall. Hardware and even software as we commonly think of them are quickly becoming commodities that very few people will be able to profit from. There's still time to profit, and there will always be profitable niches, but on the whole, it's quickly evaporating.
The important battle will be over the infrastructure that exists between computers. File formats and networking protocols are the future.
Seeing this, Apple is using the overwhelming Windows monopoly against Microsoft. It's hard to convince people to switch operating systems or hardware. Those are still big intimidating changes. However, if you offer things like iTunes for free, and it installs easily, people will hardly think twice about installing it. They appear to be doing the same with Rendevous now.
All you would need is the ability to overload operators, and the ability to assign to an expression which returns a reference.
Againb, with Ruby on the brain, the simpler syntactic sugar would be:
$arr << 42;
That's Java/C# OO. Ever used Ruby? :-)
I'm thinking of things like:
$arr = array();
array_push($arr, 42);
vs.
$arr = new array();
$arr->push(42);
To me that removes a lot of redundancy, plus, making core functionality reusable via standard OO mechanisms would be a significant improvement.
Of course, proper namespaces/packages would help as well. The previous example might look more like:
$arr = array::new();
array::push($arr, 42);
Though there's still redundancy here, in that I know $arr is an array, and I shouldn't have to restate that everytime I do something to it, at least it becomes easier to remember what function and procedure names are because they're shorter, and all grouped in an "array" package.
This has been my biggest problem with PHP's OO model. As good as they make it, very few people are going to use it.
Those who know enough to use it know that when it comes to web development with a bent towards obect-orientation there are far more pleasant (syntactically and/or semantically) alternatives.
Those who don't know the benefits of such an approach will see the huge library of built-in functions and think that must be the way to do things.
They would have been better off delaying the final release of PHP5 a year or two and just going through and converting the entire library to an OO model. That would be a step in the right direction.
With the .Net runtime installed, is it possible to utilize Monad with Windows 2000 Pro?
But since the BIOS wasn't killed, a whole industry has evolved around that backwards compatibility. Intel finds themselves in a fix because they didn't kill it earlier, and now they have an obligation to maintain that tradition. Inertia is a tough force to fight, and Intel is learning that now.
Might it be more accurate to say that PowerPC is a subset of POWER? An imperfect one at that.
The only thing I would add is that Mac OS X users should install Ruby themselvesbefore making any judgements on it. The version shipped with Panther is a bit dated, and if I recall correctly lacks some of the features you get from installing it yourself.
Apple's already doing this, just in a more subtle way. They see the writing on the wall. Hardware and even software as we commonly think of them are quickly becoming commodities that very few people will be able to profit from. There's still time to profit, and there will always be profitable niches, but on the whole, it's quickly evaporating. The important battle will be over the infrastructure that exists between computers. File formats and networking protocols are the future. Seeing this, Apple is using the overwhelming Windows monopoly against Microsoft. It's hard to convince people to switch operating systems or hardware. Those are still big intimidating changes. However, if you offer things like iTunes for free, and it installs easily, people will hardly think twice about installing it. They appear to be doing the same with Rendevous now.
It occurs to me that by gving you this free software they financially compel you to continue using Windows, which gives you all kinds of problems.
Perhaps free software is to expensive to continue to accept.