Clarion (ohjelmointikieli)

**Clarion** on tietokantasuuntautunut ohjelmointikieli Microsoft Windows -alustalle. Pääasiallisena työkaluna toimii samanniminen kehitin, joka tekee suurimman osan sovellusten peruslogiikasta ns. template-pohjien eli lähdekoodin generoimisen määräävien mallipohjien perusteella. Sovelluskehityksessä voi siten keskittyä keskeisen toiminnallisuuden kehittämiseen.

Clarionia ylläpitää ja kehittää Softvelocity Inc., joka toimii Clarionin alun perin kehittäneen TopSpeed Corporationin työn pohjalta.

Clarion-kehitin tukee natiivisti yleisimpiä SQL-variantteja, kuten Microsoft SQL, Oracle, IBM DB2, sekä ODBC-rajapinnan avulla melkein mitä vain kantoja (kuten MySQL, Firebird). Clarionin omia tietokantaformaatteja ovat tiedostopohjaiset (ISAM) Topspeed- sekä Clarion-kannat.

Kehittimestä on tarjolla kalliimpi ja enemmän ominaisuuksia sisältävä Enterprise Edition sekä perusominaisuudet sisältävä Professional Edition. Myös akateeminen versio on saatavilla suoraan Softvelocityltä hankittaessa.

Kehittimen toimintaa laajentavia kirjastoja ja templateja tarjoavat useat yritykset. Esimerkiksi näyttöjen kustomointiin, raportointiin ja kommunikointiin (TCP/IP-pohjaiset protokollat, sarjaliitännät jne.) on tarjolla runsaasti lisätyökaluja.

## Toiminta

Normaali Clarion-sovellus koostuu tietokannan kuvaavasta Data dictionarysta (.dct), jossa kuvataan käytettävät taulut sekä taulujen kenttiä vastaavien käyttöliittymäkontrollien ominaisuudet. Varsinainen lähdekielinen sisältö on application-tiedostossa (.app). Tämän käännöksen yhteydessä kehitin generoi lähdekoodin, kääntää objektitiedostoiksi ja linkittää ne Win32 EXE/DLL/LIB-tiedostoiksi, joita voidaan siis ajaa normaaleina Windows-sovelluksina Win32 -alustalla. Clarion-sovellukset voivat myös hyödyntää useimpia muilla työkaluilla tehtyjä ohjelmakirjastoja, kuten DLL tai ActiveX/COM-kirjastoja.

Myös täysin käsin kirjoitettuja lähdekielisiä ohjelmia on mahdollista tehdä.

## Kielen ominaisuuksia

Clarionin syntaksi muistuttaa hieman BASICia, Pascalia ja Cobolia.

Clarionissa on mahdollista käyttää sekä proseduraalista että olio-pohjaista lähestymistapaa. Enemmän oliopohjaisuuteen painottuu kehittimen ABC-templateketju, kun taas perinteikkäämpi malli on Clarion-templateketju (ns. Legacy).

## Esimerkki

Pelkistetty esimerkki ohjelmasta (hello.clw):

    PROGRAM
    MAP
    END
    CODE
    MESSAGE('Hello World!','Clarion')
    RETURN

Tavallisempi Clarion-ohjelma koostuu ikkunasta ja siinä ajettavasta tapahtumat käsittelevästä Accept-silmukasta:

 HelloProcedure  PROCEDURE()
 Window WINDOW('Clarion for Windows'),AT(,,222,116),FONT('Tahoma',8,,FONT:regular),SYSTEM,GRAY
        STRING('Hello World!'),AT(91,22),USE(?String1)
        BUTTON('Close'),AT(92,78,37,14),USE(?CloseBtn),LEFT
      END
     CODE
     OPEN(Window)
     ACCEPT
       CASE ACCEPTED()
       OF ?CloseBtn
         POST(EVENT:CloseWindow)
       END
     END
     CLOSE(Window)
     RETURN

## Historia

Nykyinen tuotantoversio Clarionista on v11 (julkaistu lokakuussa 2018). Aiemmat Windows-versiot ovat 10,9, 8, 7, 6.X, 5.5, 5.0, 4, CW (Clarion for Windows) 2.0 ja CW 1.5. Sitä aiemmat versiot olivat DOS-pohjaisia: ensimmäinen Clarion-kehittimen versio julkaistiin jo vuonna 1986. DOS-versio oli Suomessakin varsin suosittu tietokantasovellusten tekoon, ja Windows-versiota on käytetty laajojenkin sovellusten tekemiseen.

## Aiheesta muualla

*  Softvelocity - Clarionia kehittävä yritys.
*  Softvelocityn blogi 
*  [news://news.softvelocity.com Softvelocityn uutisryhmät]  
*  Clarionmag - Clarion Magazine, uutisia ja teknisiä artikkeleja
*  ClarionShop - maksullisia lisätyökaluja
*  Capesoft - yksi isoimmista lisätyökaluja kehittävistä yrityksistä.