VisualWorks

VisualWorks
Paradigm Objektorienterad
Designad av Alan Kay , Dan Ingalls , Adele Goldberg
Utvecklare Xerox PARC , ParcPlace Systems, Cincom Systems
Maskinskrivningsdisciplin Dynamisk
Plattform Cross-plattform
OS Cross-platform : Unix-liknande (flera), macOS , Linux , Windows
Licens Proprietär
Hemsida www .cincomsmalltalk .com
Influerad av
Lisp , Logotyp ; Skissblock , Simula

VisualWorks (tidigare ObjectWorks , därefter Cincom Smalltalk ) är en plattformsoberoende implementering av Smalltalk- språket. Det är implementerat som ett utvecklingssystem baserat på bilder , som är dynamiska samlingar av mjukvaruobjekt, som var och en finns i en systembild .

Härstamningen av VisualWorks går tillbaka till den första Smalltalk-80-implementeringen av Xerox PARC . I slutet av 1980-talet sprang en grupp Smalltalk-80-utvecklare av ParcPlace Systems för att vidareutveckla Smalltalk-80 som en kommersiell produkt. Den kommersiella produkten hette från början ObjectWorks och sedan VisualWorks. Den 31 augusti 1999 såldes VisualWorks-produkten till Cincom Systems . VisualWorks körs under många operativsystem, inklusive Windows , macOS , Linux och flera Unix -versioner.

VisualWorks stöder plattformsoberoende utvecklingsprojekt på grund av dess inbyggda multiplattformsfunktioner. Till exempel behöver en för grafiskt användargränssnitt (GUI) endast utvecklas en gång och kan sedan växlas till olika widgetstilar. En VisualWorks-applikation kan köras på alla plattformar som stöds utan ändringar. Endast den virtuella maskinen är plattformsberoende.

Fördelar och nackdelar

VisualWorks möjliggör mycket snabb applikationsutveckling, eftersom individuella metoder kan kompileras även medan programmet som ska utvecklas körs. Att kompilera en Smalltalk-metod tar vanligtvis betydligt mindre än en sekund, medan att göra samma sak för ett C++- projekt ofta tar en minut eller mer och kan inte göras enkelt utan att starta om processen. De olika kodwebbläsarna i VisualWorks hjälper utvecklaren att snabbt hitta en klass eller metod av intresse.

Prestanda och genomströmning av Smalltalk-program kan närma sig prestandan för statiska språk som C++ , Fortran , Pascal eller Ada med hjälp av en just-in-time kompilator genom att generera maskinkod som är specialiserad för ofta använda typer, men numerisk bearbetning och program som dra nytta av exakt minneslayout kan fortfarande gå långsammare. Generationssopsamlaren minimerar de flesta insamlingspauser, men kanske inte lämpar sig för hårda realtids- och determinismkrav, eftersom hela insamlingar kan förekomma, vilket kan stoppa världen i tiotals till hundratals millisekunder, proportionellt mot högstorlek . Men sophämtning är att föredra framför manuell minneshantering på ett objektorienterat språk, och programmeraren kan vidta olika åtgärder för att kontrollera när och hur länge sophämtning sker; så under de flesta omständigheter är sophämtning inte ett problem.

Installation

Alla komponenter i VisualWorks-systemet installeras på Windows 7 eller senare i en Program Files\Cincom- katalog uppkallad efter versionsnumret för det installerade systemet – till exempel vw7.5nc . Denna katalog innehåller flera underkataloger inklusive bin, doc , exempel och många andra.

Musknappar och menyer

VisualWorks förutsätter en mus med tre knappar med knappar med logiska namn <Select> , <Operate> och <Window> . Även om en mus med en eller två knappar kan användas tillsammans med Ctrl- , Alternativ- eller Kommando- tangenterna. <Välj> väljer vilket gränssnittsobjekt som helst. <Operate> tar fram en meny med operationer för den aktuella vyn/valet. <Fönster> initierar åtgärder (flytta, stäng...) på VisualWorks-fönster.

Filformat

File-in-format är det ursprungliga Smalltalk- formatet för att representera klasser som textfiler. Dessa kan "arkiveras" till VisualWorks IDE för att generera alla klasser som inte redan finns i Smalltalk- avbildningen . Varje fil-in-dokument ger en enkel textrepresentation av en Smalltalk-klass, eller klasser, i en textfil med ett .st -suffix. Det stöds fortfarande i VisualWorks, men har ersatts av en paketmekanism. Det finns exempel i filformat i underkatalogen för exempel.

Paket

Paket är externa filrepresentationer av paket.

En exempelwebbläsare tillhandahålls som ett paket i exempelkatalogen. Flera bildnivåomkopplare är tillgängliga för att specificera paketladdning vid bildstart. Paketsökvägen är listan över kataloger där VisualWorks letar efter paket. Detta kan ställas in med hjälp av verktyget Systeminställningar.

Paket tillhandahåller komponenttekniken för VisualWorks. Paket och paket organiserar koden och modellerar innehållet i paket. Paket skapas genom att publicera paket/paket. Termen komponenter , i VisualWorks-sfären, används för att hänvisa till paket, paket och paket när det inte är nödvändigt att vara specifik.

Paketkodens organisation vid lastning bestäms av dess tillkomst. Om det skapades genom att publicera ett paket, läses det in i samma paket. Om det skapas från ett paket kan det laddas om som paketet eller som ett paket.

Laddningssekvensen för ett paket är:

  1. Eventuella nödvändiga komponenter laddas.
  2. Alla definierade förladdningsåtgärder utförs (t.ex. odeklarerade variabler initierade).
  3. Objekt i paketet är installerade.
  4. Varje klass i paketet skickas meddelande efter Ladda: paketet och alla åtgärder som utförs. Detta är ofta en applikationsstart.

Paketförvaltare

Pakethanteraren används för att lasta och lossa alla paket på paketvägen. En förslagsvy listar kategorier som innehåller nyckeltilläggspaket - genom att välja en kategori får du en lista över rekommenderade paket. Till exempel finns UI Painter i kategorin Essentials. Det finns också en katalogträdvy över paketvägen för att hitta paket utanför förslagsvyn. En laddad vy listar alla paket som redan finns i bilden. Endast laddade paket kan bläddras.

Ett VisualWorks-produktpaket som stöds representeras av en ikon som ser ut som ett paket. Paket från andra försäljare ser ut som en shoppingsäck. På grund av den invecklade historien om Smalltalk klassutveckling kan detta vara mycket användbart. En paketikon indikerar till exempel att Arbor-hypertextsystemet nu stöds av VisualWorks.

Man kan också ladda och lossa paket programmatiskt från applikationen.

Paket

När ett paket laddas är det organiserat som ett paket eller en bunt av paket. När man letar efter kod laddad från ett paket kan man hitta paketet eller paketet med samma namn i systemwebbläsaren. Paket är kategorier som organiserar klasser i relaterade grupper, enligt komponent. Paketen kan grupperas i buntar. Paket och paket kan sparas (publiceras) som paket eller sparas i ett källkodsförråd.

Laddar kodbibliotek

Den ursprungliga visual.im-bilden innehåller minimala utvecklingsmöjligheter, med hjälp av grundläggande klassbibliotek . Ytterligare klassbibliotek tillhandahålls av VisualWorks eller tredjepartsleverantörer, vanligtvis som paketfiler. För de flesta icke-Smalltalk-utvecklingsmiljöer importeras kodbibliotek vid kompilering, med hjälp av ett include -kommando. I Smalltalk läses kodbibliotek in i det körande systemet och blir en del av miljön. Till exempel laddas UI Painter som ett paket.

VisualWorks Launcher

VisualWorks Launcher, vanligtvis bara kallad Launcher , är kontrollcentret för VisualWorks-systemet. Det är startrampen för alla de stora verktygen.

Grunderna i Smalltalk

Smalltalk är ett rent objektorienterat programmeringsspråk , vilket innebär att det enda sättet att få något att hända inom Smalltalk är genom att skicka meddelanden till objekt. VisualWorks använder Smalltalk-80-språket som standard, men kommer med sin egen uppsättning klasser och metoder. Så även grundläggande klasser, som Object, skiljer sig från de i andra Smalltalk-80 IDEs som Squeak och Dolphin Smalltalk . De illustrativa exemplen här fungerar i VisualWorks Smalltalk, men kanske inte fungerar i andra Smalltalks eftersom klasserna och/eller metoderna kan skilja sig åt.

Bläddra och redigera Smalltalk-kod

I traditionella objektorienterade programmeringsmiljöer redigerar en utvecklare direkt en källkodsfil med vanlig text som innehåller klass- och metoddefinitioner . I VisualWorks, som alla Smalltalks, är allt ett exekverande objekt , inklusive klasser. När du bläddrar i Smalltalk-klasser hämtar utvecklaren definitioner från exekverande objekt. Huvudwebbläsaren/redigeraren i VisualWorks är systemwebbläsaren. Det tillåter utvecklaren att bläddra bland klasser antingen i den övergripande klasshierarkin eller genom sina paket. Det lanseras från VisualWorks Launcher.

Listrutor i systemwebbläsaren låter utvecklare navigera till klass- och metoddefinitioner. De kan sedan ses eller redigeras i en kodvy, eller modifieras med en ny definition.

Odeklarerade variabler

När en variabel raderas medan referenser till den fortfarande finns, eller laddas via ett paket men aldrig deklareras, kommer dess namn in i det odeklarerade namnutrymmet. Odeklarerade variabler kan orsaka vissa programfel.

Sträng och filer

Cincoms första handledning om VisualWorks illustrerar hur VisualWorks kan användas för att manipulera serverloggfiler . Den illustrerar hur saker som strängar och filer enkelt kan läggas in i objektstrukturen i VisualWorks. Tänk på Smalltalk- uttrycket :

'ws000101.log' som filnamnsredigering

Man kan utvärdera detta uttryck som det är i en VisualWorks-arbetsyta med ett kommando i opereringsmenyn. Detta skapar:

  1. Ett objekt av klassen ByteString som innehåller strängen (som bytes ) och metoderna för att manipulera den;
  2. Ett objekt av klassen NTFS Filnamn (i Windows XP ); och
  3. Ett editorobjekt.

Den senare är en enkel anteckningsbok -liknande editor som innehåller innehållet i filen. Det vill säga, utvärderingen skapade ett filnamnsobjekt som en gateway till filen ws000101.log och öppnade en editor på den. Redaktören i sig är ett objekt, liksom alla dess komponenter (ned till och inklusive tecknen i dess menyer). Källkoden är tillgänglig för alla dessa objekt, och VisualWorks har en uppsjö av inspektörer, webbläsare och andra verktyg för alla att utvärdera och inspektera koden i statiskt eller dynamiskt läge.

Handledningar

Handledningar produceras ofta för Cincom Smalltalk, och en Seaside-tutorial finns.

externa länkar