BASIC

BASIC [b'eisik] on kõrgtaseme programmeerimiskeelte perekond. Kuigi algselt oli BASIC mõeldud õpetusvahendiks, hakkas see 1960. aastatel levima tegelikus programmeerimises ja on tänapäevani populaarne. Nime "BASIC" tõlgendatakse infotehnoloogia traditsiooni kohaselt esitähtlühendina: Beginner's All-purpose Symbolic Instruction Code (tähendab umbes 'universaalne sümbolinstruktsioonide kood algajale). Tegemist on kunstlikult konstrueeritud väljendiga, mille esitähed annavad kokku ingliskeelse sõna basic 'alg-, põhi-'. Selle keele lõid 1963. aastal John George Kemeny ja Thomas Eugene Kurtz Dartmouthi Ülikoolist, et võimaldada kasutada arvuteid ka inimestel, kes ei tegelenud teadusega. Tollal oli programmeerimine seotud riistvaraga, tarkvara töötas vaid ühel arvutil ja tuli tihti ümber kirjutada, et töötaks teisel. See sobis siiski teadlastele ja eelkõige matemaatikutele. Alles mikroarvutite levikuga 1980. aastatel sai võimalikuks tarkvara arendamine. BASIC paistab silma kergesti omandatava süntaksi poolest, mis on teinud temast väga populaarse keele algajate programmeerijate seas. Suur- ja väiketähti ei eristata. Lause lõpetab reavahetus. Mitmerealised kommentaarid puuduvad. Üherealised kommentaarid algavad kas ülakoma (') või sõnaga REM (remark). Muutujate deklareerimine pole kohustuslik. BASIC-keelte suure varieeruvuse tõttu pole võimalik tuua ühest hello worldi näidet. Vanemates BASIC-utes kirjutati iga lause ette reanumber, näiteks: 10 PRINT "Hello, World!" 20 END Natuke uuemates BASIC-utes, näiteks QBASIC-us, pole reanumbrid enam vajalikud, kuigi need võib lisada: PRINT "Hello, World!" END Tihti oli esimeseks programmiks mõni variatsioon igavesest kordusest: 10 PRINT "MA OLEN LAHE!" 20 GOTO 10 Esimene rida käsib arvutil kuvada kuvarile stringi "MA OLEN LAHE!", teine rida käsib jätkata käskude täitmist realt reanumbriga 10. See kuvab järjekordselt teate "MA OLEN LAHE!". Nõnda jääbki arvuti seda teadet kuvama, kui teda ei peatata. Suure tõuke BASIC-u arengule ja levikule andis Microsoft, mis kaasas QBASIC-u interpretaatori oma operatsioonisüsteemi MS-DOS. Järgnesid Windowsi arendussüsteem Visual Basic, skriptimiskeel VBScript, tarkvarapaketi Microsoft Office makrokeel Visual Basic for Applications ja teised. Microsofti arendatud Visual Basic .NET on esimene põlvkond, mis erineb teistest BASIC-keeltest (sh Microsofti enda eelmistest Visual Basicutest) juba oluliselt, aga kannab Visual Basicu nime. Uusimas Visual Basic 2005-s (ja kohe ilmuvas VB 9-s) on kriitikute arvates Microsoft oma ideedes liiga kinni ehk tal on soov luua programmeerimiskeel, mida on võimeline kasutama pea iga inimene, samas aga et keel oleks nõnda võimas, et annaks teistelegi silmad ette. Kui eelnevates versioonides näis see idee utoopilisena, siis nüüd paistab, et see tõesti teostatakse. Paljud programmeerijad ei pea klassikalist BASIC-ut ega selle-eelseid Command Line'i versioone tõsiseltvõetavaks keeleks, sest selle võimalused olid liiga piiratud. Praegu on Microsofti Visual Basic 2003 .Net ja selle uuemad versioonuid ning BASIC-u .asp osa on küll ühed võimsamad programmeerimiskeeled, aga tegemist ei ole enam klassikalise Basicuga, mida paljud teavad ja oskavad. Klassikaline BASIC võib soodustada mitmesuguste halbade programmeerimisvõtete kasutamist, nagu: muutujate deklareerimata jätmine, Basicu-laadsest kergest stiilist on raske loobuda. Vanemate BASIC-ute puhul oli suureks probleemiks ka ohtralt levinud goto-lausete kasutamine, mis muutis koodi raskesti loetavaks. Teine asjaolu on see, et BASIC-u suurim arendaja on Microsoft, kes ei võimalda oma programmeerimiskeelte kasutamist teistel operatsioonisüsteemidel, piirates neile ligipääsu ja võimalust teha multiplatvormseid programme. Kuigi olemas on Gambas, Realbasic jne, mis on mõeldud teiste operatsioonisüsteemide jaoks, pole need klassikalise Basicuga identsed ja koodi tuleb tõlkida. Erandina saab Realbasicus kirjutatud arvutiprogrammi kompileerida Windowsi, Linuxi või Maci keskkonda. Vikipedias kajastatud: Microsofti haru Visual Basic VB.NET Ülejäänud REALbasic FreeBASIC Täielik nimekiri Pascal BASIC-u dialektide loend All BASIC Archives