This chapter describes some of the reasons why you might want to write your own MySQL-based programs rather than just using the standard client programs included in the MySQL distribution. It also gives a conceptual overview of the interfaces we'll use for the three languages covered in the following chapters (C, Perl, and PHP) and discusses some factors to consider when choosing between languages.