**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
----------------

* (englanniksi) Softvelocity - Clarionia kehittävä yritys.
* (englanniksi) Softvelocityn blogi (Arkistoitu – Internet Archive)
* (englanniksi) Softvelocityn uutisryhmät
* (englanniksi) Clarionmag - Clarion Magazine, uutisia ja teknisiä artikkeleja
* (englanniksi) ClarionShop - maksullisia lisätyökaluja
* (englanniksi) Capesoft - yksi isoimmista lisätyökaluja kehittävistä yrityksistä.