Macintosh | Programmering |
Det finns ett flertal verktyg för att tillverka multimediatillämpningar. Det som är populärast i dag är ett kommersiellt verktyg som heter MacroMedia Director. Många multimediaprogram och spel, som till exempel The Daedalus Encounter och BackPacker, är tillverkade i MacroMedia. MacroMedia är kraftfullt och kan skapa självstående program. Nackdelen är att programmet är relativt dyrt, för den som inte vill inrikta sig på professionell multimediaproduktion.
HyperCard var länge en multimediastandard på Macintosh, med en mycket utbredd distribution och goda programmeringsmöjligheter i ett enkelt språk kallat HyperTalk. Sedan bollades HyperCard mellan Apple och Claris som en het potatis i några år, med följd att det övertag som programmet hade helt och hållet slarvades bort. Till exempel dröjde det alldeles för länge innan en färgversion av programmet kom ut. Nu har programmet stramats upp igen, men det återstår att se om det kan få samma genomslagskraft.
Ett annat ofta använt program är SuperCard, som delvis tog över HyperCards roll, genom att programmet snabbt kunde erbjuda färg och möjligheten att skapa självstående tillämpningar (det vill säga sådana som inte kräver att slutanvändaren har tillgång till SuperCard-programmet.)
Att programmera i dessa multimediatillämpningar är relativt enkelt. De använder sig oftast av ett högnivåspråk som till sin uppbyggnad påminner om BASIC. Själva programmet byggs till stor del upp kring användargränssnittet och baseras på en enkel objektorienterad modell. Allt du ser på skärmen: knappar, textfält, etc är objekt. Genom att skriva manus för objekten i det enkla programmeringsspråket bestämmer du hur de skall reagera, till exempel när användaren klickar på dem. Ditt program kommer alltså att bestå av en stor mängd kodsnuttar som tillhör de olika elementen i användargränssnittet. Det ska nämnas att man kan komma ganska långt i de här programmen utan att skriva någon programkod över huvud taget.
Fig. Exempel på del av läxförhörsprogram skrivet i HyperTalk.
Ett databasprogram hanterar register, som är uppbyggda av poster. En post kan till exempel representera en person i ett adressregister. Posten är i sin tur uppbyggd av fält. Varje fält innehåller en typ av information, till exempel förnamn, efternamn, och så vidare. Fördelen med att använda ett färdigt databasprogram för att bygga upp sådana här register är att många funktioner som är vanliga vid registerhantering, till exempel sökning, sortering, och så vidare, redan finns konstruerade, vilket drastiskt skär ner på utvecklingstiden. I det populära registerprogrammet FileMaker Pro har du mycket god kontroll över registrets layout, så det är lätt att konstruera attraktiva tillämpningar.
FileMaker Pro har också ett inbyggt programmeringsverktyg, ScriptMaker, som tillåter dig att att ge ditt register ett något mer avancerat beteende. ScriptMaker har ett programmeringsgränssnitt som helt igenom bygger på att välja funktioner i en lista och dra dem till programkoden. Du skriver alltså inte in koden själv med tangentbordet. Den här metoden passar säkert bra för nybörjare, men en mer avancerad programmerare blir snart oerhört frustrerad över metodens ineffektivitet. Det kan jämföras med ett ordbehandlingsprogram, där du inte kan skriva in orden, utan istället måste välja dem från en lista över svenska språkets alla ord och klicka "sätt in". Visserligen är du försäkrad mot stavfel, men de flesta skulle nog föredra de traditionella ordbehandlingsprogrammen. Som om detta inte vore nog så saknar ScriptMaker möjlighet att kopiera mer än ett kommando åt gången, så den som försöker sig på att göra några större programmeringsjobb i ScriptMaker lär nog snart slita sitt hår.
Fig. ScriptMakers otympliga programmeringsmiljö.
Lyckligtvis finns ytterligare en möjlighet att programmera FileMaker Pro. Man kan nämligen knyta externa AppleScripts (beskrivs senare) till programmet. Dessa ger möjlighet till avsevärt mer avancerad programmering. En nackdel är att slutanvändaren också måste ha tillägget AppleScript installerat, annars kommer hon inte att kunna köra programmen. FileMaker Pro kan inte heller skapa självstående program, men ett läsarprogram (FileMaker Pro Viewer) distribueras som freeware. För vissa typer av program är FileMaker Pro den ideala lösningen, för andra lämpar det sig inte alls.
Det finns andra, mer avancerade databasprogram, som till exempel Oracle och 4D. Som vanlig Macintoshanvändare stöter man dock inte på dessa så ofta.
Man kan också använda kalkylblad från Excel eller Claris Works för vissa enkla programmeringsuppgifter. Kalkylblad kan vara lämpliga att använda när programmets funktion är att beräkna ett slutvärde givet vissa ingångsvärden, till exempel att beräkna amorteringsstorleken på ett villalån.
Fig. Beräkning gjord med kalkylblad.
De mest kända matematiska programmeringsmiljöerna är MatLab, Maple och Mathematica. Alla dessa finns tillgängliga till Macintosh.
Varje program definierar de kommandon det kan hantera, och de objekt som det arbetar med. AppleScript-programmet kan sedan använda sig av dessa. Det blir som om de andra programmen på hårddisken är en del av programmeringsspråket. Ett program som säger åt StuffIt att komprimera de filer som har blivit modifierade under den senaste veckan, skulle till exempel kunna se ut som:
Fig. AppleScript program skrivet med hjälp av Manusredigeraren.
Vissa program går ett steg längre än att vara "Apple Scriptable" och är "AppleScript Recordable", eller inspelningsbara. Det betyder att du kan slå på en inspelningsfunktion i Manusredigeraren och sedan utföra de uppgifter du vill automatisera med programmet. Manusredigeraren skapar då automatiskt AppleScript-koden för att utföra handlingen. Du kan sedan gå in i koden och ändra den om du vill. Detta innebär att AppleScript kan användas som en mycket kraftfull makrofunktion. Än så länge är det ganska få tillämpningar som är inspelningsbara, men till exempel Findern och StuffIt Deluxe är det.
AppleScript lämpar sig alltså bäst för att automatisera rutinuppgifter. I kombination med andra program, som till exempel FileMaker Pro, så kan det bli mycket kraftfullt. En nackdel med språket är att om slutanvändaren inte har AppleScript installerat på sin dator, så kan hon inte använda de tillämpningar du skapar. Naturligtvis behöver hon också de program som ditt AppleScript-program använder sig av.
Fig. Integrerad utveckling i programmet CodeWarrior.
Det som slutligen skall bli ett program består från början av en mängd filer, som tillsammans kallas för ett "projekt". Ett projekt betsår av källkodsfiler (.c, .p, .c++) som innehåller de instruktioner som bygger upp programmet, headerfiler (.h) som tillåter funktionerna i en fil att anropa funktioner som definierats i en annan fil, resursfiler (.rsrc) som innehåller data som projektet använder sig av, till exempel fönsterdefinitioner, dialogrutor, bilder, strängar, med mera och bibliotek (.lib) som tillåter programmet att använda funktioner från Macintoshsystemet eller ANSI C-standarden.
Om du använder ett integrerat utvecklingsverktyg så håller det automatiskt reda på alla dessa filer åt dig och ser till att de behandlas på rätt sätt. Traditionellt är programmeringsverktygen uppdelade i en kompilator, som omvandlar källkoden till objektkod (.o) som datorn kan förstå bättre, en länkare, som sätter ihop objektkoden från olika filer till ett färdigt program och en avlusare, som används för testning av programmet. De integrerade programmeringsmiljöerna innehåller dock alla dessa verktyg kombinerade. Väljer du att köra ett projekt från ett sådant program så kompileras först de källkodsfiler som har blivit ändrade sedan den senaste kompileringen, sedan länkas de ihop med de övriga objektfilerna och slutligen så startar programmet under debuggerns överinseende, allt med en enda knapptryckning från din sida.
De populäraste utvecklingsmiljöerna har länge varit Symantecs produkter. Nu på senare tid har Metrowerks CodeWarrior, tagit över den ledande rollen. Ett annat alternativ är MPW (Macintosh Programmer's Workshop). Det är ett textbaserat skal för programutveckling som kan använda sig av kompilatorer från andra utvecklare och har stöd för bland annat versionshantering.
Språk | Freeware/shareware program |
---|---|
Logo | LogoMotion. |
Dylan | Marlais, Mindy, Thomas |
Perl | MacPerl |
Prolog | Open Prolog |
Forth | Pocket Forth |
Fortran | Axo Calculator |
Basic | Future Basic, ZBasic |
Lisp | Lisp, PowerLisp |
Java | MacJDK |
Författat av Niklas Frykholm