(...) trying to use the word "disingenuous" to sound smart.
I'm sorry you took it that way. I used the word "disingenuous" because I think the GGP is misrepresenting the magnitude of the Kent State shootings in comparison to Tiananmen: People are less likely to remember Kent State simply because of the smaller human cost. Just to reinforce, I am talking about impact and not necessarily political motivation.
most consumers are used to.
So in answer to your question, it's been working out very well indeed.
Meanwhile, the two biggest parties will have free reign, as long as they piss the voters off equally.
Yep, and if those two stay in power long enough, you end up with a duopoly on power (Hello, USA).
666 MB (0.8 KB/sec) 9 days, 11 hours remaining.
You sure you want to download that?
There's another photo showing the Shuttle and the ISS transiting the Sun and the two are very similar. In that photo, the ISS is the more prominent object.
No, there's nothing preventing you from including that header file multiple times for different types.
Okay, I missed that. However, once you start doing things like including generic functions/classes in other generics, and doing compile-time calculations you're going to have headaches, namely because the C preprocessor only does a single pass on the code.
Back to code length: the C preprocessor version forces you to define multiple constants and include a header for each specialization of the template. Given that C++ can also infer template arguments from function arguments, I would have thought the C++ would be shorter.
The only difference is that with preprocessor macros, you create the class explicitly up front with its own name so the instantiation syntax is cleaner.
My opinion is the complete opposite of this- explicitly having to specialize a template with a bunch of defines and an include each time seems fugly. Perhaps we'll just have to agree to disagree on that one
As for OO in PHP, I don't see why you think dynamic typing decreases the value of object-oriented programming.
It's not that I think dynamic typing decreases the value of OO, but that I think OO decreases the value of dynamic typing.
Dynamic typing just makes it a little easier to shoot yourself in the foot by not throwing up an error when you make the assignment or function call in the first place.
Which is why I really don't see the value of forced dynamic typing- it makes code less clear, puts 'compile'-time errors at runtime, and generally reduces performance all around.
[PHP is] remarkably close to what C++ should have been
...
Wow. Really? Somehow I feel you've never done any development for high-performance applications before.
Variable length arrays? Try STL's vector or map. C++'s arrays are backwards compatible with C's, but that's not to say it's not sensible behaviour- growable arrays have a fairly big overhead.
Also, I'm not sure where your gripes with C++'s string manipulation come from, but I suspect you really haven't looked into the STL libraries very much. I often see C++ coders rewriting even basic things like vector or some of the algorithms (poorly) just because they didn't know about them
Preach PHP all you want, but don't try to tell me that it's better designed than C++. It's simply not true.
A side note, what's the point of OO in dynamically typed languages? It kinda defeats the point of inheritance & polymorphism...
One man's constant is another man's variable. -- A.J. Perlis