VisualWorks - VisualWorks

VisualWorks er en plattformimplementering av Smalltalk- språket. Det er implementert som et utviklingssystem basert på "bilder", som er dynamiske samlinger av programvareobjekter, hver inneholdt i et systembilde .

Linjen til VisualWorks går tilbake til den første Smalltalk-80-implementeringen av Xerox PARC . På slutten av 1980-tallet spunnet en gruppe Smalltalk-80-utviklere ParcPlace Systems for å videreutvikle Smalltalk-80 som et kommersielt produkt. Det kommersielle produktet ble opprinnelig kalt ObjectWorks, og deretter VisualWorks. 31. august 1999 ble VisualWorks-produktet solgt til Cincom . VisualWorks kjører under mange operativsystemer, inkludert Windows , Mac OS X , Linux og flere versjoner av Unix .

VisualWorks har et veldig aktivt tredjepartsutviklingssamfunn, med en PUL-versjon (personlig bruk) tilgjengelig gratis. PUL-versjonen har det meste av kraften og funksjonaliteten til den kommersielle versjonen. I begge versjoner, som i alle Smalltalks, kan brukeren se all kildekoden. Dette inkluderer alle systemklasser, inkludert nettleseren og GUI-byggeren.

VisualWorks støtter utviklingsprosjekter på tvers av plattformer, på grunn av de innebygde funksjonene for flere plattformer. For eksempel trenger en GUI- applikasjon å utvikles bare én gang, og kan deretter byttes til forskjellige widget-stiler. En VisualWorks-applikasjon kan kjøres på alle støttede plattformer uten noen endringer. Bare den virtuelle maskinen er plattformavhengig.

Fordeler og ulemper

VisualWorks tillater veldig rask applikasjonsutvikling, da individuelle metoder kan kompileres selv mens programmet som skal utvikles kjører. Å kompilere en Smalltalk-metode tar vanligvis betydelig mindre enn et sekund, mens det å gjøre det samme for et C ++ - prosjekt tar ofte et minutt eller mer, og kan ikke gjøres uten å starte prosessen på nytt. De forskjellige kodeleserne i VisualWorks hjelper utvikleren med å raskt finne en klasse eller metode av interesse.

Ytelsen og gjennomstrømningen til Smalltalk-programmer kan nærme seg ytelsen til statiske språk som C ++ , Fortran , Pascal eller Ada ved hjelp av en just-in-time kompilator ved å generere maskinkode som er spesialisert for ofte brukte typer, men numerisk behandling og programmer som er til fordel fra presis minneoppsett kan det fortsatt gå tregere. Generasjonssøppelinnsamler minimerer de fleste samling pauser, men kan ikke være egnet for hard sanntid og determinisme krav, så lenge fulle samlinger kan forekomme, noe som kan stoppe verden i størrelsesorden titalls til hundrevis av millisekunder proporsjonale til heap størrelse. Imidlertid er søppeloppsamling å foretrekke fremfor manuell minnehåndtering på et objektorientert språk, og programmereren kan ta forskjellige handlinger for å kontrollere når og hvor lenge søppeloppsamling skjer; så under de fleste omstendigheter er søppeloppsamling ikke noe bekymring.

Installasjon

Alle komponenter i VisualWorks-systemet er installert på Windows 7 eller nyere i en Program Files \ Cincom- katalog oppkalt etter versjonsnummeret til det installerte systemet - for eksempel vw7.5nc . Denne katalogen inneholder flere underkataloger, inkludert bin, doc , eksempler og mange andre.

Museknapper og menyer

VisualWorks forutsetter en tre-knappers mus med knapper ha logiske navn <Select> , <Operate> og <Window> . Selv om en eller to knappemus kan brukes sammen med Ctrl , Option eller Command- tastene. <Select> velger et hvilket som helst grensesnittobjekt. <Operate> viser en operasjonsmeny for gjeldende visning / valg. <Window> starter handlinger (flytt, lukk ...) på VisualWorks-vinduer.

Fil-inn format

File-in format er det originale Smalltalk- formatet for å representere klasser som tekstfiler. Disse kan "arkiveres" til VisualWorks IDE for å generere eventuelle klasser som ikke allerede finnes i Smalltalk- bildet . Hvert fil-inn-dokument gir en enkel tekstlig fremstilling av en Smalltalk-klasse, eller klasser, i en tekstfil med et .st suffiks. Den støttes fremdeles i VisualWorks, men har blitt erstattet av en pakkemekanisme. Det er eksempler i filformat i underkatalogen eksempler.

Pakker

Pakker er eksterne filrepresentasjoner av pakker.

En eksempler-nettleser er gitt som en pakke i eksempler-katalogen. Flere bildenivåbrytere er tilgjengelige for å spesifisere pakkeinnlasting ved oppstart av bildet. Pakkebanen er listen over kataloger der VisualWorks ser etter pakker. Dette kan stilles inn ved hjelp av verktøyet Systeminnstillinger.

Pakker gir komponentteknologien for VisualWorks. Pakker og bunker organiserer koden og modellerer innholdet i pakker. Pakker opprettes ved å publisere pakker / pakker. Begrepet komponenter , i VisualWorks-sfæren, brukes til å referere til pakker, pakker og bunter når det ikke er nødvendig å være spesifikk.

Pakkekodens organisering ved lasting bestemmes av opprettelsen. Hvis den ble opprettet ved å publisere en pakke, lastes den inn i den samme pakken. Hvis den er opprettet fra en pakke, kan den lastes inn på nytt som en pakke eller som en pakke.

Lastsekvensen for en pakke er:

  1. Eventuelle forutsetningskomponenter er lastet inn.
  2. Enhver definert forhåndsinnlastingshandling utføres (f.eks. Svarteliserte variabler initialisert).
  3. Objekter i pakken er installert.
  4. Hver klasse i pakken får beskjed postLoad: thePackage, og enhver handling utført. Dette er ofte en applikasjonslansering.

Pakkeforvalter

Pakkeforvalteren brukes til å laste og losse alle pakker på pakkestien. En forslagvisning viser lister over kategorier som inneholder viktige tilleggspakker - ved å velge en kategori får du en liste over anbefalte pakker. UI-maleren ligger for eksempel i kategorien Essentials. Det er også en katalog-trevisning av pakkestien, for å finne pakker utenfor forslag-visningen. En lastet visning viser alle pakkene som allerede er i bildet. Bare lastede pakker kan bla gjennom.

En støttet VisualWorks produktpakke er representert med et ikon som ser ut som en pakke. Pakker fra andre leverandører ser ut som en kjøpesekk. På grunn av den innviklede historien om utvikling av Smalltalk-klasser, kan dette være veldig nyttig. For eksempel indikerer et pakkeikon at Arbor hypertext-systemet nå støttes av VisualWorks.

Man kan også laste og laste ut pakker programmatisk fra applikasjonen.

Pakker

Når en pakke er lastet, er den organisert som en pakke eller en pakke med pakker. Når du leter etter kode lastet fra en pakke, kan man finne pakken eller pakken med samme navn i systemleseren. Pakker er kategorier som organiserer klasser i relaterte grupper, i henhold til komponent. Pakker kan grupperes i bunter. Pakker og bunter kan lagres (publiseres) som pakker, eller lagres i et kildekodelager.

Laster inn kodebiblioteker

Det første visual.im- bildet inneholder minimale utviklingsfasiliteter ved bruk av grunnleggende klassebiblioteker . Ytterligere klassebiblioteker leveres av VisualWorks eller tredjepartsleverandører, vanligvis som pakkefiler. For de fleste ikke-Smalltalk utviklingsmiljøer importeres kodebiblioteker på kompileringstidspunktet ved hjelp av en include- kommando. I Smalltalk lastes kodebiblioteker inn i det kjørende systemet, og blir en del av miljøet. For eksempel er UI Maleren lastet som en pakke.

VisualWorks Launcher

VisualWorks Launcher, vanligvis bare kalt Launcher , er kontrollsenteret for VisualWorks-systemet. Det er lanseringsplaten for alle de viktigste verktøyene.

Grunnleggende om Smalltalk

Smalltalk er et rent objektorientert programmeringsspråk , noe som betyr at den eneste måten å få noe til å skje i Smalltalk er å sende meldinger til objekter. VisualWorks bruker Smalltalk-80-språket som standard, men kommer med sitt eget sett med klasser og metoder. Så selv grunnleggende klasser, som Object, skiller seg fra de i andre Smalltalk-80 IDEer som Squeak og Dolphin Smalltalk . Illustrasjonseksemplene her fungerer i VisualWorks Smalltalk, men fungerer kanskje ikke i andre Smalltalks fordi klassene og / eller metodene kan variere.

Bla gjennom og redigere Smalltalk-kode

I tradisjonelle objektorienterte programmeringsmiljøer redigerer en utvikler direkte en kildekodefil med ren tekst som inneholder definisjoner av klasse og metode . I VisualWorks, som alle Smalltalks, er alt et utførende objekt , inkludert klasser. Når du surfer på Smalltalk-klasser, får utvikleren definisjoner fra å utføre objekter. Hovedleseren / redigereren i VisualWorks er systemleseren. Det gjør at utvikleren kan bla gjennom klasser enten i det generelle klassehierarkiet eller gjennom pakkene deres. Den lanseres fra VisualWorks Launcher.

Listerutene i systemleseren lar utviklere navigere til klasse- og metodedefinisjoner. De kan deretter vises eller redigeres i en kodevisning, eller endres med nye definisjoner.

Udeklarerte variabler

Når en variabel slettes mens referanser til den fremdeles eksisterer, eller lastes inn via en pakke, men aldri deklarert, kommer navnet inn i det ikke-deklarerte navneplassen. Udeklarerte variabler kan forårsake visse programfeil.

Streng og filer

Cincom første tutorial på VisualWorks illustrerer hvordan VisualWorks kan brukes til å manipulere server loggfiler . Det illustrerer hvordan ting som strenger og filer lett kan bli lagt inn i objektstrukturen i VisualWorks. Tenk på Smalltalk- uttrykket :

'ws000101.log' asFilename edit

Man kan evaluere dette uttrykket som det er i et VisualWorks-arbeidsområde ved hjelp av en kommando i operasjonsmenyen. Dette skaper:

  1. Et objekt av klasse ByteString som inneholder strengen (som byte ) og metodene for å manipulere den;
  2. Et objekt av klasse NTFS Filnavn (i Windows XP ); og
  3. Et redaktørobjekt.

Sistnevnte er en enkel notatboklignende redaktør som inneholder innholdet i filen. Det vil si at evalueringen opprettet et filnavnobjekt som en gateway til filen ws000101.log og åpnet en redaktør på den. Redaktøren i seg selv er et objekt, som alle komponentene (ned til og med tegnene i menyene). Kildekoden er tilgjengelig for alle disse objektene, og VisualWorks har en mengde inspektører, nettlesere og andre verktøy for alle å evaluere og inspisere koden i statisk eller dynamisk modus.

Opplæringsprogrammer

Det er daglige opplæringer produsert for Cincom Smalltalk, og det er også en Seaside-opplæring .

Referanser

Eksterne linker