VisualWorks - VisualWorks

VisualWorks este o implementare pe mai multe platforme a limbajului Smalltalk . Este implementat ca un sistem de dezvoltare bazat pe „imagini”, care sunt colecții dinamice de obiecte software, fiecare conținute într-o imagine de sistem .

Linia VisualWorks se întoarce la prima implementare Smalltalk-80 de către Xerox PARC . La sfârșitul anilor 1980, un grup de dezvoltatori Smalltalk-80 au renunțat la ParcPlace Systems pentru a dezvolta în continuare Smalltalk-80 ca produs comercial. Produsul comercial a fost numit inițial ObjectWorks, apoi VisualWorks. La 31 august 1999, produsul VisualWorks a fost vândut către Cincom . VisualWorks rulează în multe sisteme de operare, inclusiv Windows , Mac OS X , Linux și mai multe versiuni de Unix .

VisualWorks are o comunitate de dezvoltatori terță parte foarte activă, cu o versiune de licență de utilizare personală (PUL) disponibilă gratuit. Versiunea PUL are cea mai mare parte a puterii și funcționalității versiunii comerciale. În ambele versiuni, la fel ca în toate Smalltalks, utilizatorul poate vedea tot codul sursă. Aceasta include toate clasele de sistem, inclusiv browserul și generatorul GUI.

VisualWorks acceptă proiecte de dezvoltare pe mai multe platforme, datorită caracteristicilor sale integrate pe mai multe platforme. De exemplu, o aplicație GUI trebuie să fie dezvoltată o singură dată și poate fi apoi schimbată în diferite stiluri de widget. O aplicație VisualWorks poate fi rulată pe toate platformele acceptate fără modificări. Numai mașina virtuală depinde de platformă.

Avantaje și dezavantaje

VisualWorks permite dezvoltarea foarte rapidă a aplicațiilor, deoarece metodele individuale pot fi compilate chiar și în timp ce programul care urmează să fie dezvoltat rulează. Compilarea unei metode Smalltalk durează în mod semnificativ mai puțin de o secundă, în timp ce a face același lucru pentru un proiect C ++ durează adesea un minut sau mai mult și nu se poate face cu ușurință fără a reporni procesul. Diversele browsere de coduri ale VisualWorks ajută dezvoltatorul să localizeze rapid o clasă sau metodă de interes.

Performanța și randamentul programelor Smalltalk pot aborda performanța limbajelor statice precum C ++ , Fortran , Pascal sau Ada utilizând un compilator just-in-time prin generarea unui cod de mașină specializat pentru tipurile utilizate frecvent, dar procesarea numerică și programele care beneficiază de la un aspect precis al memoriei poate rula încă mai lent. Colectorul de deșeuri generațional minimizează majoritatea pauzelor de colectare, dar este posibil să nu fie adecvat pentru cerințele de determinism în timp real și de durată, întrucât pot apărea colectări complete, care pot opri lumea în ordinea zecilor până la sute de milisecunde proporțional cu dimensiunea heap-ului. Cu toate acestea, colectarea gunoiului este preferabilă față de gestionarea manuală a memoriei într-un limbaj orientat obiect, iar programatorul poate întreprinde diverse acțiuni pentru a controla când și pentru cât timp are loc colectarea gunoiului; deci, în majoritatea circumstanțelor, colectarea gunoiului nu este o preocupare.

Instalare

Toate componentele sistemului VisualWorks sunt instalate pe Windows 7 sau o versiune ulterioară într-un director Program Files \ Cincom numit după numărul de versiune al sistemului instalat - de exemplu vw7.5nc ,. Acest director conține mai multe subdirectoare, inclusiv bin, doc , exemple și multe altele.

Butoane și meniuri ale mouse-ului

VisualWorks presupune un mouse cu trei butoane cu butoane cu nume logice <Select> , <Operate> și <Window> . Deși, un mouse cu unul sau două butoane poate fi utilizat împreună cu tastele Ctrl , Option sau Command . <Select> selectează orice obiect de interfață. <Operate> afișează un meniu de operații pentru vizualizarea / selecția curentă. <Window> inițiază acțiuni (mutare, închidere ...) pe ferestrele VisualWorks.

Format fișier

Formatul fișierului este formatul original Smalltalk pentru reprezentarea claselor ca fișiere text. Acestea pot fi „depuse” în IDE-ul VisualWorks pentru a genera orice clasă care nu este deja conținută în imaginea Smalltalk . Fiecare document în fișier oferă o reprezentare textuală simplă a unei clase sau clase Smalltalk, într-un fișier text cu .st sufix. Este încă acceptat în VisualWorks, dar a fost înlocuit de un mecanism Parcels. Există exemple în format fișier în subdirectorul de exemple.

Colete

Pachetele sunt reprezentări de fișiere externe ale pachetelor.

Un browser de exemple este furnizat ca pachet în directorul de exemple. Sunt disponibile mai multe comutatoare de nivel imagine pentru a specifica încărcarea coletelor la pornirea imaginii. Calea parcelei este lista directoarelor în care VisualWorks caută parcele. Acest lucru poate fi setat folosind instrumentul Setări sistem.

Pachetele oferă tehnologia componentelor pentru VisualWorks. Pachetele și pachetele organizează codul și modelează conținutul coletelor. Pachetele sunt create prin publicarea pachetelor / pachetelor. Termenul de componente , în sfera VisualWorks, este folosit pentru a se referi la colete, pachete și pachete atunci când nu este necesar să fie specific.

Organizarea codului coletului la încărcare este determinată de crearea acestuia. Dacă a fost creat prin publicarea unui pachet, acesta este încărcat în același pachet. Dacă este creat dintr-un pachet, acesta poate fi reîncărcat ca pachet sau ca un singur pachet.

Secvența de încărcare pentru un pachet este:

  1. Se încarcă toate componentele premise.
  2. Se efectuează orice acțiune de preîncărcare definită (de exemplu, variabilele nedeclarate inițializate).
  3. Obiectele din pachet sunt instalate.
  4. Fiecare clasă din colet primește mesaj postLoad: thePackage și orice acțiune este executată. Aceasta este adesea o lansare a aplicației.

Manager colet

Managerul de colete este utilizat pentru a încărca și descărca toate coletele de pe calea coletelor. A Sugestii afișează liste Categorii care conțin pachete cheie de completare-selectând o categorie, veți obține o listă de pachete recomandate. De exemplu, UI Painter este situat în categoria Essentials. Există, de asemenea, o vizualizare arborescentă de directoare a căii coletelor, pentru găsirea coletelor în afara vizualizării Sugestii. O vizualizare încărcată listează toate coletele deja în imagine. Numai coletele încărcate pot fi răsfoite.

Un pachet de produse VisualWorks acceptat este reprezentat de o pictogramă care arată ca un pachet. Coletele de la alți furnizori arată ca un sac de cumpărături. Datorită istoriei complicate a dezvoltării clasei Smalltalk, acest lucru poate fi foarte util. De exemplu, o pictogramă parcelă indică faptul că sistemul de hipertext Arbor este acum acceptat VisualWorks.

De asemenea, se pot încărca și descărca colete programatic din aplicație.

Pachete

Când un colet este încărcat, acesta este organizat ca un pachet sau un pachet de pachete. Când căutați codul încărcat dintr-un colet, se poate localiza pachetul sau pachetul cu același nume în browserul de sistem. Pachetele sunt categorii care organizează cursurile în grupuri conexe, în funcție de componentă. Pachetele pot fi grupate în pachete. Pachetele și pachetele pot fi salvate (publicate) ca colete sau salvate într-un depozit de cod sursă.

Se încarcă bibliotecile de coduri

Imaginea inițială visual.im conține facilități minime de dezvoltare, utilizând biblioteci de clase de bază . Biblioteci de clase suplimentare sunt furnizate de VisualWorks sau de furnizori terți, de obicei ca fișiere de parcele. Pentru majoritatea mediilor de dezvoltare non-Smalltalk, bibliotecile de coduri sunt importate la compilare, folosind o comandă include . În Smalltalk , bibliotecile de coduri sunt încărcate în sistemul care rulează și devin parte a mediului. De exemplu, UI Painter este încărcat ca colet.

Lansator VisualWorks

Lansatorul VisualWorks, de obicei numit doar Lansatorul , este centrul de control al sistemului VisualWorks. Este platforma de lansare pentru toate instrumentele majore.

Bazele Smalltalk

Smalltalk este un limbaj de programare pur orientat pe obiecte , ceea ce înseamnă că singura modalitate de a obține ceva în Smalltalk este prin trimiterea de mesaje către obiecte. VisualWorks utilizează limbajul Smalltalk-80 ca standard, dar vine cu propriul set de clase și metode. Deci, chiar și clasele de bază, cum ar fi Object, diferă de cele din alte IDE Smalltalk-80 precum Squeak și Dolphin Smalltalk . Exemplele ilustrative de aici funcționează în VisualWorks Smalltalk, dar este posibil să nu funcționeze în alte Smalltalks, deoarece clasele și / sau metodele pot diferi.

Navigarea și editarea codului Smalltalk

În mediile tradiționale de programare orientate pe obiecte , un dezvoltator editează direct un fișier de cod sursă cu text simplu care conține definiții de clasă și metodă . În VisualWorks, ca toate Smalltalks, totul este un obiect în execuție , inclusiv clase. În navigarea claselor Smalltalk, dezvoltatorul gleanează definițiile din obiectele care execută. Principalul browser / editor din VisualWorks este System Browser. Permite dezvoltatorului să navigheze pe clase fie în ierarhia generală a claselor, fie prin pachetele lor. Este lansat din VisualWorks Launcher.

Panourile de listă din browserul de sistem permit dezvoltatorilor să navigheze către definițiile clasei și metodelor. Acestea pot fi apoi vizualizate sau editate într-o vizualizare de cod sau modificate cu noi definiții.

Variabile nedeclarate

Când o variabilă este ștearsă în timp ce există referințe la aceasta, sau este încărcată printr-un colet, dar niciodată declarată, numele acesteia intră în spațiul de nume nedeclarat. Variabilele nedeclarate pot provoca anumite erori de program.

Șir și fișiere

Primul tutorial al lui Cincom despre VisualWorks ilustrează modul în care VisualWorks poate fi utilizat pentru a manipula fișierele jurnal ale serverului . Acesta ilustrează modul în care lucruri precum șirurile și fișierele pot fi cu ușurință incluse în structura obiectului din VisualWorks. Luați în considerare expresia Smalltalk :

'ws000101.log' asFilename edit

Se poate evalua această expresie ca atare într-un spațiu de lucru VisualWorks utilizând o comandă din meniul de operare. Acest lucru creează:

  1. Un obiect din clasa ByteString care conține șirul (ca octeți ) și metodele de manipulare a acestuia;
  2. Un obiect din clasa NTFS Filename (în Windows XP ); și
  3. Un obiect editor.

Acesta din urmă este un editor simplu de tip notebook care conține conținutul fișierului. Adică, evaluarea a creat un obiect cu nume de fișier ca o poartă către fișier ws000101.log și a deschis un editor pe acesta. Editorul în sine este un obiect, la fel ca toate componentele sale (până la inclusiv caracterele din meniurile sale). Codul sursă este disponibil pentru toate aceste obiecte, iar VisualWorks are o mulțime de inspectori, browsere și alte instrumente pentru ca oricine să evalueze și să inspecteze codul în modul static sau dinamic.

Tutoriale

Există tutoriale zilnice produse pentru Cincom Smalltalk și există și un tutorial Seaside .

Referințe

linkuri externe