Ну, я солгал прямо у ворот. Это не старый Clipper 5, это Harbour. В большинстве случаев мне нужны были простые приложения с графическим интерфейсом. Я использовал общие инструменты и языки: Visual Basic 6, .NET (VB.NET и C#), Delphi (и Lazarus), Java (Swing FTW!) и Python (TkInter и wxPython). в основном).

Все эти инструменты были «правильными» на данный момент, но ни один из них не идеален: нет кросс-платформенного решения, отсутствуют библиотеки или кошмар для переноса с одной архитектуры на другую. Кто-то может сказать: «Разве не для этого нужны веб-приложения?». А я на это говорю… ни хрена!

Веб-интерфейс слишком много для простого приложения. Мне не нужно лишнее бремя, мне нужно выполнить работу! Вот почему я отказываюсь от идеи портирования некоторых старых библиотек Clipper 5 до интернет-эры, которые я сделал тысячу лет назад, чтобы закончить простое приложение для отслеживания расписания для моей повседневной работы.

Должен сказать, что я так доволен результатами, что это вдохновило меня на написание этой небольшой статьи.

Установка Harbour

В репозитории Harbour на github есть простое руководство по установке:

https://github.com/harbour/core.

В моем случае у меня уже были установлены требования (инструменты командной строки XCode и git), поэтому я просто клонировал их репозиторий:

$ cd $HOME
$ mkdir bin
$ cd bin
$ git clone https://github.com/harbour/core.git
$ mv core harbour
$ cd гавань
$ make

И вуаля! Я добавил путь $HOME/bin/harbour в переменную PATH и готов к работе. Учтите, что папка, в которой создаются двоичные файлы, зависит от платформы. В моем случае:

$HOME/бен/гавань/бен/дарвин/лязг

Для тех, кто хочет IDE, вы можете установить расширение для Visual Studio Code прямо в меню расширений. Найдите и установите приложение под названием Harbour and xHarbour от Антонино Перриконе. Пока работает довольно хорошо.

Документы

Затем создадим набор документации Harbour:

$ cd $HOME/bin/harbour/contrib/hbdoc
$ hbmk2 hbdoc.hbp
$ mv hbdoc $HOME/bin/harbour/bin/darwin/clang
$ cd $HOME/bin /гавань
$ hbdoc -source=. -html

Вы можете проверить полученную документацию, открыв файл HTML:

открыть ./html/harbour.html

Идеально! Теперь, когда у нас все готово, я хотел бы найти время, чтобы обсудить то, к чему меня привлекла GoLang: Формирование исходного кода с мнением. Я немного придирчив, когда дело доходит до внешнего вида исходного кода. Правильно отформатированный исходный код позволяет мне сосредоточиться на том, что он делает. Просто зашел в папку с исходным кодом и запустил:

$ hbformat -nCaseFnc=1 -lIndDrt=yes -lIndRet=no -nCaseUnk=1 -nCaseDrt=1 -nLineRet=2 -nLineCode=-1 -nLineVar=2 -cExtBack= "*.prg"

Все эти параметры командной строки можно сохранить в файле конфигурации:

# myformat.cfg
-nCaseFnc=1
-lIndDrt=yes
-lIndRet=no
-nCaseUnk=1
-nCaseDrt=1
-nLineRet =2
-nLineCode=-1
-nIndNext=2
-nIndCont=4
-nLineVar=2

И может использоваться вместо указания параметров командной строки:

$ hbformat @myformat.cfg «*.prg»

То же самое можно сделать с инструментом создания Harbour, hbmk2. В данном случае эти файлы имеют расширение .HBP и работают точно так же, как файлы «make» старого Clipper:

# myapp.hbp
# =====================================
# тихий
-q0
# уровень предупреждения (сделать предупреждения ошибкой)
-es2 -w3
# включить отладку
-b
# создать предварительно обработанные (PPO) файлы
-p

# список файлов
p1.prg
p2.prg

pn.prg

# компоненты
hbnf.hbc

И будет использоваться следующим образом:

$ hbmk2 myap.hbp
$ ./myapp

Сделанный!. Ну нет совсем. В Харборе есть на что посмотреть:

  • Вы можете запустить его как файл сценария: HBRUN — ваш друг.
  • Отладчик TUI: на мой взгляд лучше, чем Clipper.
  • Простой кроссплатформенный код. Не так много нужно учитывать, чтобы заставить его работать на другой платформе.
  • И множество дополнений: библиотеки, в которые входят надстройки эпохи Clipper5, ODBC, Postgres, MySQL, MSSSQL, сокеты, HTTP, OpenSSL, CGI, графические интерфейсы (да, я знаю…), сжатие, шифрование, RDD (например, DBFCDX и DBFNSX), включая SQLite3, XML, JSON (взгляните на папку contrib)

Отследить старую документацию по Clipper 5 оказалось непросто. Прошло некоторое время с тех пор, как я выбрасывал оригинальные диски и руководство по Clipper 5, но я смог найти несколько интересных ресурсов (и вспомнить много вещей, которые, как мне казалось, я забыл):

https://harbour.github.io/doc (Ой!)
https://vivaclipper.wordpress.com/
https://harbour.github.io/ the-oasis/ftplib.htm
https://www.itlnet.net/programming/program/Reference/c53g01c/menu.html

И последнее, но не менее важное: я загрузил на GitHub компилируемое и работающее (но не завершенное) простое приложение, чтобы сделать его более привлекательным:

https://github.com/nicolasrod/harbour-test

Я действительно удивлен кодом, который я обновил до Harbour. Выглядит очень современно и мне нравится. Надеюсь, кто-то найдет это полезным и сэкономит им время. Я не люблю, когда вещи пропадают даром, и воскрешение старого кода кажется отличной идеей, если это приносит вам какую-то пользу.