On language design

Kernighan & Ritchie's original C manual was under 300 pages long.

PHP declares over 3,000 built-in functions.

Take a guess at which is more powerful.

Ergo:

array_uintersect_assoc -- Computes the intersection of arrays with additional index check, compares data by a callback function
array_uintersect_uassoc -- Computes the intersection of arrays with additional index check, compares data and indexes by a callback functions
array_uintersect -- Computes the intersection of arrays, compares data by a callback function

Design by commitee is tough.

Being a large open source project is tough.

A programmer's main activity is design. His tools should reflect that.

The distinction between native 'types' and objects makes for an amorphous pool of native functions:

There is inconsistency in the naming, arguments and return types. Most of these criticisms are documented by wikipedia.

Most don't think twice about these issues until they start with C and Ruby; both masterclasses in good language design.

Matz designed Ruby. He says,

One way is by looking at what can be done with that language. The other is by looking at how we feel using that language—how we feel while programming.

Dennis designed C. He says,

C is not a big language, and it is not served well by a big book.

Rasmus invented PHP.

He is coming to our local pub for a drink this week.