hn-classics/_stories/2007/11045776.md

148 lines
7.0 KiB
Markdown
Raw Permalink Normal View History

---
created_at: '2016-02-06T00:18:58.000Z'
title: Size isn't everything for the modest creator of SQLite (2007)
url: http://www.theguardian.com/technology/2007/jun/21/it.guardianweeklytechnologysection
author: mbgaxyz
points: 92
story_text:
comment_text:
num_comments: 26
story_id:
story_title:
story_url:
parent_id:
created_at_i: 1454717938
_tags:
- story
- author_mbgaxyz
- story_11045776
objectID: '11045776'
2018-06-08 12:05:27 +00:00
year: 2007
---
2018-03-03 09:35:28 +00:00
Richard Hipp's database is used by some of the biggest names in IT - but
he has not made a penny from it
2018-02-23 18:19:40 +00:00
2018-03-03 09:35:28 +00:00
In a world of people obsessed by turning the tiniest idea into something
profitable, Dr Richard Hipp's best-known software stands out for two
reasons - he actively disclaims copyright in it; and at a time when
multi-megabyte installations are booming, he has a self-imposed limit on
the size of his product: 250KB. And he's stuck to both aims. "I think
we've got 15 kilobytes of spare space," he says of the headroom left in
the code.
2018-02-23 18:19:40 +00:00
2018-03-03 09:35:28 +00:00
Thus his product - SQLite ([sqlite.org](http://www.sqlite.org)), a
self-contained database engine and client - now forms part of Apple's
Mac OS X operating system as well as part of its Aperture photo-handling
application. It is also used by Google, Adobe, Sun and a number of other
big names. But he receives no royalty for the millions of copies being
used by commercial and non-commercial users alike. The reason? He has
placed SQLite in the public domain. It contains the note: "The author
disclaims copyright to this source code. In place of a legal notice,
here is a blessing: may you do good and not evil. May you find
forgiveness for yourself and forgive others. May you share freely, never
taking more than you give."
2018-02-23 18:19:40 +00:00
2018-03-03 09:35:28 +00:00
**Unrestricted approach**
It is an unusual approach, even in the open source world. Most open
source code is licensed under an agreement such as the GNU GPL (general
public licence), which includes terms to ensure that the software
remains free. "I looked at all of the licences," Hipp says, "and I
thought, why not just put it in the public domain? Why have these
restrictions on it? I never expected to make one penny. I just wanted to
make it available to other people to solve their problem."
SQLite is an entire SQL relational database management system, wrapped
up in a single file. SQL, or structured query language, is the industry
standard programming language for storing and retrieving data.
Well-known SQL database managers include Oracle, IBM's DB2, Microsoft's
SQL Server and Access, and the open source MySQL and PostgreSQL.
"We're not trying to compete with those other engines," says Hipp. "Our
goal is not add all sorts of bells and whistles, but rather to keep
SQLite small and fast. We've set an arbitrary limit to keep the
footprint of the library below 250KB."
However, the application can support databases running to terabytes,
including gigabyte-sized elements. Being written in C, it can be
compiled to run on pretty much any operating system.
Samuel Neff is senior software engineer at B-Line Medical in Maryland,
USA. He likes SQLite because it has zero configuration and installation.
The code is freely available, so he can easily extend it with
customisations, and its performance is excellent.
In his tests SQLite was four times faster than Microsoft's SQL Server.
The comparison is unfair, though, since SQL Server is designed to serve
entire networks and to support huge databases with thousands of users,
whereas SQLite is mainly intended for a single user on a single machine.
Even so, Neff's experience shows the benefits of using tightly coded
software that does no more than is necessary.
Dr Hipp knows exactly when SQLite began. "I started on May 29 2000. It's
just over seven years old," he says. He was working on a project which
used a database server, but from time to time the database went offline.
"Then my program would give an error message saying that the database
isn't working, and I got the blame for this. So I said, this is not a
demanding application for the database, why don't I just talk directly
to the disk, and build an SQL database engine that way? That was how it
started."
In the past couple of years SQLite has increasingly been attracting
attention. Apple used it in OS X 10.4, released in April 2005, as part
of Apple Mail (for its message index) and to support its Core Data
services. SQLite is also built into PHP 5.0, the hugely popular open
source scripting language for web applications. It is in Symbian 9.5, an
embedded operating system for smartphones. The tiny database engine is
also part of the new Google Gears, which enables web applications to
work offline. Most recently, Adobe has announced the inclusion of SQLite
in Adobe Integrated Runtime for desktop applications based on its Flash
multimedia engine. "Performance is great," says Ben Forsaith, business
development manager at Adobe UK. "It's open source. It's lightweight,
really small and widely adopted."
So how many SQLite databases are in use? "We don't have a good way of
counting it," he says, "but we're guessing it's the most widely deployed
SQL database in the world."
**Dedicated effort**
Despite being open source, the SQLite code does not have many
contributors. "I have an assistant, Dan Kennedy, an Australian living in
Thailand, who contributes a lot of code," Hipp says. "He works for me, I
pay him. There are some people at Google who have been contributing to
the full text search capability. But Dan and I have done in excess of
99% of the code."
One of the limiting factors is that anyone contributing code must waive
their copyright. "I require anyone who contributes code to sign a
copyright disclaimer, and I keep those copyright disclaimers in my fire
safe," Hipp says.
Is he worried about the code fragmenting into many different versions,
because it is public domain? "I don't see that as a problem," he says.
"Other people are free to make a copy of SQLite and fork the tree
\[produce alternative descendants\] if they want to. So far I'm not
aware of anybody doing that. If someone decides they want to, it won't
hurt my feelings. But it has turned into a very complicated piece of
software, and it takes a dedicated effort to keep it in good shape."
Hipp attributes much of the reliability of SQLite to his use of tests.
Less than half of the program code is delivered as the database engine.
The larger part consists of thousands of automated tests, which exercise
the code and check that the results are as expected. "That's the real
key to keeping it working well," hesays.
There is a commercial aspect to SQLite. Hipp runs a company that
provides support for the application, and sells extensions for
specialised features including encryption and compression. It is only a
small company, despite the popularity of the software.
"It's very clear to me that if I'd had any business sense whatsoever I
could have made a lot of money, but I don't," he says. "I like to tell
people that we make enough to live fine in Charlotte, North Carolina. We
don't make nearly enough money to live in London or San Francisco, but
we don't live there so that's OK," he adds - with a touch, just a touch,
of wistfulness.