Harbour (язык программирования)

Материал из Викиучебника — открытых книг для открытого мира

Harbour — язык программирования и кроссплатформенный компилятор с препроцессором, полностью совместимый с Clipper (язык программирования семейства xBase, «выросший» из dBase II/III; другим представителем этого «семейства» является FoxPro). Он позволяет создавать 16-, 32- и 64-разрядные приложения для операционных систем DOS, Windows, Unix/Linux, OS/2, Mac OS X, Windows CE, BSD, Pocket PC, Symbian, Apple iOS, QNX, VxWorks, Ecomstation, Haiku/BeOS, AIX. Harbour является свободным программным обеспечением.

Кроме работы с локально расположенными данными, Harbour позволяет работать с данными как в режиме «файл-сервер», так и в режиме «клиент-сервер» (в том числе, в режиме запросов к удалённой системе управления базами данных, поддерживающей SQL).

Язык использует традиционные конструкции Clipper, объектную нотацию, принятую в языке C++, а также дает возможность писать на языке C. Harbour активно развивается и в язык включаются некоторые современные технологии программирования.

xHarbour (англ. extended Harbour) — ответвление (форк) проекта Harbour; существует как в коммерческом, так и в свободном вариантах.

Имеются GUI-библиотеки — как коммерческие, так и бесплатные (в частности, MiniGUI — для Windows; hwGUI — для Windows и GNU/Linux).

Harbour распространяется под свободной лицензией, схожей с GNU General Public License, за исключением того, что на Harbour возможно свободно разрабатывать и распространять коммерческие приложения.

История создания[править]

Первые версии Harbour были созданы Антонио Линаресом (исп. Antonio Linares) (Испания) в 1999 году.

В 2009 году Harbour был глубоко переработан, в основном усилиями Виктора Сакаца (венг. Viktor Szakáts) и Пжемыслава Черпака (пол. Przemysław Czerpak), по состоянию «на сегодня» ведётся активное развитие и разработка, имеется активное как международное, так и русскоязычное сообщество.

Работа с базами данных[править]

Harbour расширяет подход к работе с использовавшимися в Clipper драйверами взаимодействия с базами данных (RDD, англ. Replaceable Database Drivers). Он поддерживает традиционные для Clipper RDD — такие как DBF, DBFNTX, DBFCDX, DBFDBT и DBFFPT. В Harbour можно как использовать разные RDD в одном приложении (например, брать данные из тридиционной для Clipper базы данных в формате DBFNTX и записывать их в формате FoxPro — DBFCDX), так и создавать новые («логические») RDD из комбинации нескольких имеющихся. Архитектура RDD разрешает наследование, то есть новый RDD может использовать функциональные возможности уже имеющихся RDD. Известные сторонние RDD — RDDSQL, RDDSIX, RMDBFCDX, ADS (англ. Advantage Database Server), Mediator. Такие RDD, как NETIO и LetoDB[1] дают возможность удаленного доступа к базам данных через TCP/IP-протокол путем создания Web-приложений, функционирующих на стороне сервера локальной сети либо Web-сервера, с доступом пользователя к данным через сеть, используя любой Интернет-браузер и любую операционную систему.

Harbour также обеспечивает поддержку ODBC путем объектно-ориентированного (ООП) синтаксиса, и поддержку ADO через OLE. MySQL, PostgreSQL, SQLite, Firebird, Oracle Database — системы управления базами данных, с которыми также можно работать, используя Harbour.

Концепции[править]

В проекте Harbour стремятся к обеспечению кроссплатформенности на уровне исходных кодов при специфической компиляции под каждую платформу («написано однажды — компилируется везде», «англ. write once, compile anywhere»; в сравнении с «написано однажды — работает везде», «англ. write once, run anywhere» в языке Java). Если для некоего набора операционных систем есть подходящие для использования с Harbour компиляторы, то нет препятствий к тому чтобы создавать идентичные программы для всех этих платформ, написав исходный текст один раз — за исключением случаев, когда используются возможности, специфичные для разных операционных систем. Кросс-компиляция возможна благодаря использованию С-компилятора MinGW. Для переноса Clipper-приложения, работающего под DOS, на другие платформы, например, Linux или Windows Mobile, требуется сравнительно небольшая адаптация. Большое количество программ, исходный код которых ранее написан для работы с Xbase++, Flagship, FoxPro, xHarbour и другими диалектами xBase, могут быть также достаточно легко адаптированы для компиляции через Harbour.

Harbour может использовать многие компиляторы Си, в частности: GCC, MinGW, Clang, ICC, Microsoft Visual C++ (6.0+), Borland C++, Watcom C, Pelles C и Sun Studio.

Harbour может использовать эмуляцию многих графических терминалов, включая драйверы консоли, а также гибридные консольно-графические — такие как GTWvt и GTWvg.

Harbour поддерживает внешние библиотеки графического пользовательского интерфейса (GUI), как свободно распространяемые (наиболее известные — HWGui, MiniGUI и Qt), так и коммерческие (например, FiveWin или Xailer). Взаимодействие с Qt производится через библиотеку HBQt.

Разработчиками проекта утверждается, что Harbour на 100 % совместим с Clipper «снизу вверх» на уровне исходного кода[2].

Примечания[править]

Ссылки[править]