Portland is a particularly appropriate setting for the
2003 O’Reilly Open Source Convention,
for deeper reasons than being a fun city that knows how to host
conferences. Portland just happens to be a hotbed of Linux
development. I attended a casual gathering of kernel developers this
evening at a bar, and nearly a dozen showed up–besides which, a few
more couldn’t make it. These people’s work ranges from drivers and
advanced filesystems to security and power management. I’m convinced
that if Linux and the BSDs vanished tomorrow, the people at that table
could create an operating system from scratch.
There are many reasons Portland sports such a concentration of kernel
Open Source Development Lab,
of course, is headquartered here, but that’s only a small part of it.
Several other companies in the area contribute developers to Linux.
Not much was said about Linux at the bar this evening, actually (they
spent almost as much time talking about Linus Torvalds’s car) which
was good because I was suffering from jet lag and had spent a full day
at the conference which I am about to describe to you, so after two
beers I couldn’t have told a pid from a pilsener. But this was an
everyday kind of guy and gal crowd, an unusual group of hackers who
are just as comfortable talking about houses and kids as about
computers. Maybe we’ll get a few of them to a Meet the Developer
session here at the conference; we’ll let you know if we do.
The conference started off quietly as usual with some tutorials; the
one I attended was Sterling Hughes’s
Sterling is a developer on the PHP team, and a natural draw because
everybody knows he has the goods to offer. Fifty attendees packed the
room. Sterling, who seems to be predilected toward enthusiasm, waxed
particularly enthusiastic about SQLite, upcoming XML support, and some
briefly illustrated .NET integration. (These were by no means the
central themes of his talk. Although he just touched on them,
something made them stand out to me as interesting.)
SQLite is a database founded on flat files. It initially sounds
primitive, but actually possesses some features, such as triggers and
subqueries, that aren’t supported by MySQL yet. Sterling described
SQLite as ideal for logging, which is something every PHP script
should do in handling errors.
Sterling mentioned that starting with PHP 5.5, SQLite will be bundled
instead of MySQL. This will not diminish the use of MySQL with PHP in
any way, of course; people can still install MySQL and uses all the
familiar PHP calls. But there are two reasons the PHP team decided to
include SQLite. First, the PHP license is more permissive than the
MySQL license toward people basing a commercial application on it. The
mismatch was proving difficult. Second, they occasionally
experienced build problems as new MySQL versions came out, until
things settled down.
- Upcoming XML support
Sterling is working on an XML parser for PHP 5.5. It looks like it
will quietly handle all the XML syntax oddities in the background, as
XML support does in other popular languages such as Perl, and will let
PHP developers manipulate XML files with a few simple statements.
- Upcoming .NET integration
Sterling said even less about this than he did about the others, but
clearly there’s some integration with
Well, that’s enough for the rumors. What was the actual content of
Sterling’s talk? In brief, he discussed robust ways to:
- Do unit and stress testing on PHP, with PHPUnit and other tools.
- Document code, partly through a Javadoc-like system called PHPDocumentor.
Handle errors (an area where you definitely don’t want to let PHP do
what it does by default).
- Tighten security (a standard laundry list of good practices).
Improve performance through profiling, benchmarking, and various forms
A part of each topic was Mom and apple pie, but Sterling knew what was
unique about PHP in each case and concisely pointed attendees to what
they needed to know. In some cases, PHP is distinguished by how its
called within the overall Web server architecture. While traditional
programs tend to be monolithic and create a hierarchy of function
calls, PHP is broken into Web pages that run individually and
cooperate only loosely. It’s like doing all your coding as callbacks
(my analogy, not Sterling’s). And it clearly imposes some difficult
constraints on a type of coding that for a while looked like child’s
Well, that was just one day at OSCon. When it really gets going, with
keynotes, multiple sessions, and birds-of-a-feather, this conference
promises to be hot.