Неудивительно, что имея такой широкий выбор, разработчики порой даже затрудняются предпочесть тот или иной программный интерфейс для разрабатываемых приложений. У каждого из вышеперечисленных языков программирования есть свои достоинства и недостатки, и выбор должен быть сделан только после внимательного рассмотрения многих факторов.
Требования платформы и приложений
Часто платформа, для которой делается разработка, определяет выбор программного интерфейса или языка программирования. Если большинство языков поддерживают ар­хитектуру Intel 80x86, то на менее популярных архитектурах такой выбор невозможен. В таких случаях наличие языка и среды разработки играет решающую роль при выборе программного интерфейса. Например, компиляторы языка C, имеются для большинства архитектур, но интерпретаторы PHP и Perl могут быть недоступны.
Не лишним будет повторить, что каждый язык имеет свои преимущества. Так, например, ЯП Perl удобен при обработке текстов, а C и C++ предлагают отличное управление памятью. Исключительно важно выбрать язык, обеспечивающий преимущества, соответствующие требованиям приложения.
При создании приложения для устройства с малым объемом памяти, скажем, для флэш-карточки, очевидно, что предпочтение будет отдано программному интерфейсу языка C, так как его использование позволяет создать небольшой и быстрый исполняемый файл, а также предоставит расширенное управление ресурсами для не очень мощного устройства. Однако этот же аргумент может быть плох для Web-приложений, работающих с MySQL, где управление памятью уступает скорости, надежности и доступности высокоуровневых конструкций, ускоряющих разработку.
Производительность
Очевидно, что производительность приложения - это важнейший фактор при выборе программного интерфейса и языка. В общем, чем быстрее ваше приложение, тем счастливее клиенты. Если допустить, что все остальное равнозначно, основное решение,которое нужно принять, - это выбрать для вашего приложения либо транслируемый язык (такой как С), либо интерпретируемый (такой как Perl).
У обоих подходов есть преимущества и недостатки. Транслируемый код обычно работает быстрее интерпретируемого, так как перед его выполнением компиляторы преобразовывают исходный код в машинный язык, получая солидное преимущество в скорости перед интерпретируемым кодом, который транслируется во время выполнения. С другой стороны, интерпретируемые языки великолепны для разработки кода и отладки, так как при тес­тировании кода на каждом этапе исчезает необходимость в этапе компиляции.
В то время как интерпретируемые языки предлагают преимущества в скорости разработки, транслируемые языки позволяют управлять использованием ресурсов и распределением памяти, что очень важно при работе на маломощных платформах с малым объемом памяти. Обычно транслируемый код нельзя переносить на другие архитектуры - приложение нужно перекомпилировать для каждой новой архитектуры, на которой оно будет выполняться, а интерпретируемые программы всегда будут работать на любой платформе или архитектуре при условии доступности интерпретатора исходного кода.
Среди различных описанных здесь программных интерфейсов, наибольшую скорость дают интерфейсы C и C++, а также меняющиеся местами в зависимости от конкретного приложения интерфейсы Java, PHP и Perl. Для приложений, много и часто взаимодейст­вующих с сервером MySQL, PHP чаще побеждает в тестах на производительность, поскольку он имеет самый прямой доступ к "родным" функциям программного интерфейса языка С, а Perl и Java должны работать через дополнительные уровни абстракции DBI или JDBC.