…meie igapäevast IT’d anna meile igapäev…

2007-04-02

Programmeerimiskeeled: Delphi/Pascal

Filed under: Infotehnoloogia,Programmeerimine — Sander @ 10:33:04

Pascal

Kuna ETH Zurich‘i professor Niklaus Wirth oli mees, kes leidis, et “C++ is an insult to the human brain“, siis otsustas ta luua uue, lihtsama programmeerimiskeele, mis vastaks struktureeritud programmeerimise paradigmale ja sobiks ülikoolis programmeerimise õpetamiseks. Tõsi küll, C++ väljatulekuni oli siis veel peaaegu viisteist aastat – nimelt oli käes alles aasta 1969.

Võttes aluseks Algol 60 süntaksi lõi Wirth uue programmeerimiskeele. Blaise Pascal‘i auks otsustas ta selle nimetada Pascaliks. Uus keel ilmus 1970. aastal ja sai üpriski kiirelt populaarseks mitte ainult õpetamisel vaid ka programmeerimisel. Huvitava faktina – esimeste MacIntosh’ite operatsioonisüsteem kirjutati Pascalis ning „tõlgiti” seejärel assemblerisse.

Ilmus mitmeid Pascali kompilaatoreid, nii vabavaralisi kui ka kommertsversioone.

Taani programmeerija Anders Hejlsberg (kes tänapäeval töötab Microsoftis ja lõi C#) kirjutas 1981. aastal Pascali kompilaatori, mille varsti litsentseeris oma elu alustav tarkvarakompanii nimega Borland. Viimane modifitseeris seda oluliselt ja hakkas seda 1983. aastal müüma nimega Turbo Pascal.

Turbo Pascal polnud mitte ainult kiirem, kui teised tolleaegsed kompilaatorid, vaid ka uuendusliku ja mugava kasutajaliidesega. Lisaks oli terve programm – kasutajaliides, kompilaator, linker – ka pisike, vaid 38 kilobaidi suurune. Pole ime, et sellest ajast peale oli Pascali nimi (ja saatus) päästmatult seotud Borlandi nimega.

Kaheksakümnendate keskel ilmus järjest uusi Turbo Pascali versioone – kuni lõpuks jõuti viimase DOS’i versioonini, Turbo Pascal 7, mida veel hiljaaegu kasutati pisikeste ja kiirete käsureaprogrammide tegemiseks. Koos Turbo Pascal 7’ga ilmus ka Borland Pascal 7, mis nimest hoolimata oli esimene versioon, mis Microsoft Windowsi jaoks programme lasi valmistada.

Ilmusid ka Turbo Pascal for Windows 1.0 ja Turbo Pascal for Windows 1.5, kuid 1995. aastal otsustas Borland Pascali nime kasutamisest loobuda – algas Delphi võidukäik.

Delphi

Borland Delphi oli revolutsioon tarkvaratööstuses. Kõik need pisiasjad, mida tänapäeval peetakse loomulikuks – tõeline drag’n’drop RAD keskkond, lihtne ühendumine andmebaasiga, run-time exception handling – kõik need ja palju muudki on just Delphi meile toonud või populariseerinud.

Alustati Delphi loomisega üheksakümnendate alguses, see oli salajane uurimisprojekt Borlandis. Algselt plaaniti uut keskkonda ja keelt kutsuda AppBuilderiks, kuid veidi enne Delphi valmimist tuli Novell välja Visual AppBuilderiga – ja Borlandil polnud enam nime.

Majasiseselt oli kasutatud nime Delphi – see tuli asjaolust, et üks uue keele põhieesmärke oli lihtne ühildumine Oracle andmebaasiga. Ja kui sa tahad rääkida oraakliga, siis mine Delfisse.

Nime „Delphi” pooldasid kõik, välja arvatud reklaamiosakond, kes väitis et seda nime ei saa müüa. Nagu müügimehed tavaliselt, nad eksisid. Selle nime saamise lugu on pikemalt võimalik lugeda siit.

Uus programmeerimiskeel ja -keskkond võttis võimust jooksult. Lihtne ja kiire programmide loomise võimalus meeldis nii algajatele kui ka vanadele tegijatele. Koodi oli kirjutada lihtne ja kiire, lisaks oli koodi loetavus nõnda hea, et mõned vanad olijad põlastasid Delphit „sellega võivad isegi lapsed programmeerida”. Eriliselt populaarseks sai Delphi (suur-)andmebaaside klientide tegemiseks, mis on ka arusaadav – loomisel oligi ju sellele rõhutud.

Borland tuli välja kiirelt uute versioonidega, jõudes 2002. aastal Delphi 7’ni. 2001 tuli välja Delphi Linuxile suunatud versioon – Borland Kylix. Ka sellest tuli välja kolm versiooni, kuid seejärel otsustati selle arendamine väikese kasutajakonna tõttu peatada. Tagantjärele vaadates oli see väga vale otsus.

Borlandil on üldse kombeks teha sageli väga valesid otsuseid – samamoodi nagu Apple’l. Paradox’i, Quattro Pro, dBase ostud-müügid valedel aegadel, oskamatus ette aimata turu kulgemise suundi jne… Neil oli parim ja populaarseim Windowsi programmeerimiskeel ja -keskkond, kuid nad oskasid selle maha mängida. Neil oli tõsine (ja ainus RAD) Pascal-platform Linuxile, kuid selle otsustasid nad ära lõpetada.

Delphi 8 tutvustas .NET platvormil baseeruvat Delphit (Delphi.NET) – kuid oli juba liiga hilja. .NET’i vajavad programmeerijad olid juba migreerunud C# peale; samuti oli Delphi 8 aeglane ja vigane. Produkt kukkus kolinaga läbi.

Borland tegi sellest oma järeldused ja tuli välja Borland Developer Studio (BDS) 2005’ga, mis sisaldas nii Delphi.NET’i kui ka vana head Win32 Delphit. Lisaks veel Borland CBuilder, mis võimaldas C++’is programmeerida.

Ka BDS 2005 ei saanud community heakskiidu osaliseks. Keskkond oli aeglane, ebastabiilne ja kohmakas, samuti oli kunagi revolutsiooniline kasutajaliides jäänud ajale jalgu, MS Visual Studio 2003 oli kiirem, stabiilsem ja mugavam.

Järgmisel aastal ilmus BDS 2006, mis tegelikult oleks võinud rahulikult ilmuda BDS 2005 service pack‘ina. Küll oluliselt stabiilsem, kui BDS 2005, oli 2006. aasta väljalase sellega praktiliselt identne. Nii programmeerijad kui ka firmad protesteerisid – kahe aasta jooksul kaks korda maksta sama produkti eest?

Borland sattus tõsistesse finantsraskustesse ja otsustas üldse programmeerimisvahenditega tegelemise ära lõpetada ja selle divisjoni maha müüa. Ostjaid aga pikast otsimisest hoolimata ei leitud – oli ju Borland ise suutnud üheksakümnendate lõpu ja praeguse kümnendi alguse mäekõrguse dominantsi maha mängida.

Nõnda oligi Borland sunnitud looma tütarfirma Delphi jt. arendamiseks – CodeGear.

Uus firma oli uue lähenemisega – esimese asjana toodi tagasi Borlandi legendaarne „Turbo” seeria ja hakati kodukasutajatele pakkuma tasuta veidi nuditud versioone toodetest (need on saadaval lehelt www.turboexplorer.com). Samuti hakati arendama Delphit veebisuunal – lisati AJAX’i tugi, VCL for Web (veebikomponentide pakett) ja muudki. Delphi 2007 ilmub aprilli jooksul ja pakub (väidetavasti) täielikku Vista tuge.

Eks näis, kas uuel arendajal õnnestub Delphi populaarsust taas tõsta. Karta on, et ei – .NET ja Java positsioonid on nüüdseks liiga tugevad. Huvitava tootena pakutakse Delphi for PHP‘d – Pascaliga üldse mitte seotud keskkonda, kus saab drag’n’drop arendada PHP’s. Väidetavasti on tegemist esimese tõelise RAD keskkonnaga PHP jaoks. Elame ja näeme, kas sellest saab asja või ei, idee on igatahes huvitav.

Kuulujutud sellest, et loomisel on Delphi, mis keskkonnana kasutab Microsoft Visual Studiot, on kahjuks väga jõuliselt tagasi lükatud. See oleks teoreetiliselt vägagi tervitatav lahendus – Delphi keele lihtsus ja mugavus ühendatuna võimsa, kiire ja stabiilse Visual Studio keskkonnaga. Kahju.

Pascal tänapäeval

Tänapäeval on Pascali turuosa programmeerimiskeelte seas kahjuks marginaalne.

Õpetamisel on Pascali osa suuresti üle võtnud Java, fat-client‘ite loomisel Java ja .NET platvorm. Vähe on kommertsiaalseid tooteid, mis oleksid kirjutatud Delphis/Pascalis. Vahest kõige prominentsemad tooted on FastStone Image Viewer, Skype (kasutajaliides – heli/video pakkimine jms on C++’is), Spybot – Search & Destroy, Ad-Aware, Total Commander ja Dev-C++ (IDE).

Kompilaatoritest on populaarsed avatud lähtekoodiga GNU Pascal ja Free Pascal. Viimasele pakub Delphi-taolist RAD keskkonda projekt Lazarus.

Suuresti on Pascali saatus seotud Delphi edu või läbikukkumisega. Üks asjaolu, mis pakub lootust Delphi populaarsuse kasvuks, on asjaolu, et puuduvad konkurendid teisele Win32-kompatiiblile lihtsale ja kiirele programmeerimiskeelele. Taaskord, elame-näeme. Ise arvan küll kahjuks et Pascal enam mainstreami ei jõua.

Minu kogemused Pascali ja Delphiga

Kunagi üheksakümnendate alguse poole sai veidi mängitud Turbo Pascaliga, kuid sel ajal tundus C/C++ oluliselt huvitavam, samuti oli viimase kohta rohkem materjale.

1997. või 1998. katsetasin Delphit, see jättis mulle sügava mulje. Esimene tutvus tõelise RAD-keskkonnaga – pane nupp vormile, kirjuta kaks rida koodi ja sul on töötav aplikatsioon.

Mõne aasta pärast hakkasin mIRC‘ile kirjutama skripte. Üsna pea tuli skriptimisvõimalustele piir ette – ja kiirus polnud ka päris see, mida oleks tahtnud. Olin sunnitud mIRC’ile hakkama dll’e kirjutama – ja hakkasin seda tegema taas Delphis. Alguse poole olid mu asjad ikka päris jubedad – on asju, mille koodi sisse ma siiani ei julge vaadata – aga ajapikku kõik paranes. Tegin päris mitmeid asju avalikkusele kättesaadavaks ja nende populaarsus oli egole päris meelitav.

Lisaks sai kirjutatud mitmesuguseid avalikke ja mitteavalikke programme – dokumentide konvertimisest (WordMagus) audiofailide ümbernimetamiseni (AudioMagus), MAC-aadressi muutmiseni (SimpleMAC) jpm. Paljud neist tahaksid hädasti uusi versioone, aga enam lihtsalt pole aega töö ja muu elu kõrvalt nendega tegeleda; samamoodi on olemas hunnike mitteavalikke jubinaid, mis vajaksid veidi testimist ja muutmist. Ehk saan kunagi selle jaoks aega…

Millalgi kutsus tuntud mIRC scripter Tipi mind OmenScripts‘i – OmenServe, AutoGet jt on vahest tuntuimad mIRC’i skriptid üldse. Kirjutasin portsu dll’e, eelkõige mälukasutuse vähendamiseks ja kiiruse tõstmiseks. Olulisel kohal oli threadide kasutamine, kuna dll’i töö ajal ei tohi mIRC lukustuda. Nüüdseks kirjutan aeg-ajalt ikka veel nii skripte, dll’e kui ka exe’sid OmenScripts’i jaoks.

Delphi on keel, mida ma kõige rohkem kasutanud olen, samuti on see erilisel kohal seetõttu, et oli keel milles programmeerijana ma tööle sain. Tulevikku sellel ma ei näe, aga ilmselt jään alati Delphi juurde, kui on vaja kiirelt teha Win32 dll’i või kasutajaliidest.

***

Lõpetuseks üks ingliskeelne luuletus, mis ilmus The Registeris ajal, kui Borland aktiivselt üritas Delphit maha müüa:

Oh they didn’t write Skype in Javascript
Or Scheme or other Lisp.
And they didn’t use Java or that C sharp
‘Cos it had to be fast and crisp.
And they didn’t write Skype in C++
Though they wanted it tough and tight.
And they didn’t write Skype in Vis Bas
Cos Vis Bas is just shi ain’t quite right.

5 kommentaari »

  1. Delphi endale võõras, pigem rohkem ise .NET platvormi sõber.
    Rääkides Pascalist, siis too võtab küll muhelema. Oli Pascal esimene tõsisem (praegu olude sunnil jälle) programeerimiskeel, millega sai kunagi kokku puututud. Tõsiselt “armas” programeerimiskeel, kui välja jätta jõledad pointerid (C-s ja C++-s täidevad oma eesmärki tunduvalt paremini – ei tekita niipalju mälulekkeid). Eriti mõnusaks teeb Pascalis programeerimise Free Pascal kompileerija standard library, mis kaasab vägagi palju elutähtsat (andmebaasiliidesed, regulaaravaldised, vahendid xml dokumentidega tegelemiseks jne.), milleta elu moodsates programeerimiskeelte ette ei kujuta.

    kommentaar kirjutas metalhead — 2007-04-02 @ 20:06:38 | Vasta

  2. Free Pascali standard library on üsna 1:1 Delphi VLC pealt maha viksitud.

    Omal on sama asi, .NET on mu igapäevatöö, Pascalit/Delphit saab oma lõbuks kirjutatud.

    kommentaar kirjutas dukelupus — 2007-04-02 @ 20:15:42 | Vasta

  3. […] programmeerijaid on õppinud arendama just Borlandi inimsõbralike toodete peal. Loe näiteks Delphist siitsamast blogist, sealtsamast ka Borlandi kunagiste rumalate otsuste […]

    Pingback-viide kirjutas Ajastu lõpp: Borland müüs lõpuks CodeGear’i maha « …meie igapäevast IT’d anna meile igapäev… — 2008-05-08 @ 12:09:52 | Vasta

  4. Oskate ehk soovitada kust saaks tellida Delphis ühte programmikest?

    kommentaar kirjutas Troim — 2008-05-28 @ 15:18:47 | Vasta

  5. Troim:

    Oleneb, kas firmalt või eraisikult. Delphit tegevaid firmasid on, aga enamus neist ei saa/soovi enda ressursse välja rentida pisikliendi tarvis. Ning igal juhul pead arvestama tunnihinnaga kuni 650..900 EEK + km.

    Eraisikult on loomulikult kahtlasem. Saad tunnihinnaga 300 või nii, garantii, kvaliteedi ja dokumentatsiooniga on nii kuis on.

    Soov korral kontakteeru “Blogijast” lehel oleval meiliaadressil; kui siis oma soovi veidi täpsustad, siis oskan rohkem nõu anda.

    kommentaar kirjutas dukelupus — 2008-05-28 @ 17:18:27 | Vasta


RSS feed for comments on this post. TrackBack URI

Lisa kommentaar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Muuda )

Twitter picture

You are commenting using your Twitter account. Log Out / Muuda )

Facebook photo

You are commenting using your Facebook account. Log Out / Muuda )

Google+ photo

You are commenting using your Google+ account. Log Out / Muuda )

Connecting to %s

Blog at WordPress.com.