1,920 karma · joined December 16, 2011
What is crappy about the late static binging support for example?
Btw, you can bind and rebind $this as of PHP 5.4.
On the one hand you have all the people maintaining legacy apps and not interested in improving their code. They'll scream at you for breaking BC. On the other hand you have other people complaining that the library sucks due to all the old stuff and why they don't just remove all the crap.
I noticed this in particularly in the context of PHP. People really hate some parts of the language (for good!) and commonly demand a big BC breaking release that fixes all the bad parts. But every time something is fixed (obviously breaking BC in some way) there is a big outcry about wtf the developers have been thinking and whether they are all braindead - well, the usual stuff.
So really, before you start calling people idiots because they didn't keep comparability with an older version (or here even a completely different version), think again. There probably was a lot thought put into the decision. It's not like people just say "Oh, let's drop this, just so everyone can change his code!"
You seem to think that browser are less secure than running native software. This is totally absurd. And this blog entry shows exactly that. In order to bypass the advanced sandboxing techniques employed by modern browsers you have to build up complex chains of dozens of bugs.
This is very different with desktop software. Desktop software is protected far less than code running in the browser.
So the idea that running apps in the browser makes you more vulnerable than running native applications seems very unrealistic.
Also you seem to have the very nostalgic view that the web should be just static websites with a few links in between. This concept again seems completely absurd. From my point of view as a PHP programmer the dynamic web is pretty much the best thing that happened to mankind. It allows you to run software without having to install it. From everywhere. From the the point of view of the end user this is still true. Just look around. Look at Facebook, Twitter and stuff.
What is shown here is just a rare edge case that you should not normally encounter.
But I think that == has some other behaviors which are really detrimental. Like 0 == 'hallo world'. Sadly those can't be fixed due to backwards compatibility.
I can imagine that look so well...
I don't really know C well, as I'm mainly programming in PHP. Sure, I can read and write it, but I definitely don't know the details of the language (and yes, I'd consider that a detail as the only difference I know of is the behavior of sizeof).
The parser is more for analyzers that are not interested in the precise formatting of the code, but want to look at the code from a higher level perspective.
For example, if you want to do control flow analysis and type inference working directly on the tokens would be really hard. An Abstract Syntax Tree makes this kind of work much easier, as you don't have to think about the tiny details of the language.
Also I don't really understand why you think that factories are an antipattern. As I see it factories play an important role when using dependency injection.
Consider this:
$foo = array();
$foo['bar'] = 'x';
$foo['bar'] = 'y';
In this case the second set of the 'bar' index modifies an existing element in the linked list and is not appended as a new one.I don't know what a MacBook Air uses, but given that it's a notebook probably something slower :)
This is a problem that hashtables have in general (unless they are randomized).
By the way, you can test that yourself too. The codepad I posted the same on has a switch for PHP 5.2, 5.3 and 5.4, so you can easily see for yourself :)
The Windows number still is 8 bytes per element larger than the number I wrote (76 per element). This might have various reasons, one could be that it was compiled with head protection :)