Smalltalk este de obicei perceput ca o limbă veche, pe moarte - antichități dintr-o epocă trecută. Nu este nimic mai departe de adevăr.
Smalltalk este încă foarte relevant. Acesta este un limbaj excelent pentru predarea programării persoanelor care nu au studii tehnice. Acesta este un limbaj excelent de prototipare pentru start-up-uri. Acesta este un limbaj industrial puternic folosit de întreprinderile mari și mici din întreaga lume. Există motive întemeiate să luați în considerare utilizarea modernă a Smalltalk astăzi, așa cum sa făcut recent pentru a-și îmbunătăți capabilitățile.
Nu trebuie să folosiți Smalltalk în programarea industrială, ci să încercați să scrieți ceva pe el și să vă ascultați sentimentele. Acestea ar trebui să fie familiarizați cu, deoarece punerea în aplicare în paradigma orientată-obiect Smalltalk este atât de superb, care a influențat o întreagă generație de limbi OO, cum ar fi Objective-C, Python, Ruby, CLOS, PHP 5, Perl 6. Erlang, Groovy, Scala, tragere la țintă , Swift și multe altele.
Studiind Smalltalk, veți înțelege cum toate aceste funcții utile în limbile moderne au devenit o realitate. De învățare Smalltalk vă poate oferi, de asemenea, un avantaj în rândul colegilor dvs., și poate fi, de asemenea, un instrument excelent pentru predarea programării.
Ce ne-a oferit Smalltalk?
Contribuția Smalltalk la industria software-ului este imensă. Doar aruncați o privire la lista de caracteristici și tehnologii pe care le-a prezentat:
Dar cum învățarea Smalltalk mă face cel mai bun dezvoltator?
Smalltalk are o serie de funcții care sunt cu mult înainte de timpul lor:
- Protecția bazată pe imagini
- Obiecte: totul este un obiect, iar obiectele schimbă numai mesaje (implementarea cea mai "curată" a OOP și una dintre cele mai vechi)
- Programare live
- Metode avansate de depanare, cum ar fi schimbarea codului în zbor
- Interfață simplă și neclară IDE
- Limbile orientate pe obiecte (DSL): singura modalitate de a lucra Smalltalk, deci programatorii trebuie să se concentreze asupra problemei. folosind limbajul și notația care este naturală pentru această problemă
Și mai sunt câteva caracteristici. care fac Smalltalk special.
În esență, avantajul cheie al lui Smalltalk ca instrument de învățare și învățare productiv este acela că înlătură cele mai multe, dacă nu toate, stresul cognitiv în limbile industriale OO, cum ar fi Java. Smalltalk nu conține gunoaie sintactică sau funcții confuze. El vă dă drumul politicos, astfel încât să vă puteți concentra atenția asupra problemei sau aplicației. Nu este faptul că Java este un limbaj prost, deoarece este mai complex (și are nume de clase de 30 de caractere); Vorbesc despre faptul că învățarea limbii care nu este împovărată cu funcții suplimentare OO vă poate face de fapt cel mai bun programator Java, odată ce înțelegeți conceptele OOP dintr-o perspectivă diferită.
Eliminarea stresului cognitiv este scopul multor limbi - de exemplu, Python, Ruby, Elixir, Elm și Go. Chiar dacă nu simți asta. stresul este. Se spune adesea că programarea în Smalltalk sau Python este similară cu cea a lui Zen; Conștiința voastră pur și simplu curge cu ușurință și în mod natural, împreună cu sarcina la îndemână. Aceasta este frumusețea și valoarea simplității limbajului, iar Smalltalk o are pe deplin.
În Smalltalk, conceptul OOP este clarificat pentru conceptele de bază ale clasei și metodelor, metaclaselor și reflecției și, cel mai important, transmiterea mesajelor. Smalltalk, datorită purității și consistenței obiectului, vă va oferi o înțelegere profundă a programării orientate pe obiecte și a utilizării acesteia cu o eficiență maximă.
Simplitatea lui Smalltalk îl face de asemenea o limbă de învățare ideală pentru programarea programării, mai ales dacă nu aveți pregătire tehnică. Simplitatea limbajului și a instrumentelor vă permite să vă concentrați eforturile asupra tehnicilor de programare a învățării. dar nu construcții lingvistice și formalism.
Debuggerul "live" reduce semnificativ ciclul de editare - testarea - depanare.
Cum funcționează Smalltalk? Bazat pe imaginea abordării programării
Principalul motiv pentru succesul lui Smalltalk este abordarea creării de software bazat pe imagine. O imagine este un instantaneu al memoriei care conține toate obiectele din aplicația în desfășurare. Aceasta încapsulează întreaga stare de execuție a programului dvs. Imaginea poate fi salvată pe disc și ulterior reluată exact de unde ați rămas!
"Imaginea Smalltalk" ar putea părea puțin neobișnuită, dar de fapt este foarte asemănătoare cu ceva utilizat astăzi în IT: imagini de sistem în virtualizarea OS, cum ar fi VMware și VirtualBox. Nu uitați că Smalltalk era inițial un sistem de operare autonom, creat în Xerox PARC în anii 1970.
Imaginea Smalltalk este similară cu DOM (Document Object Model) într-o aplicație Web. Rețineți că aplicația web este în esență un sistem de operare, izolat într-un browser web și fără acces direct la sistemul de fișiere gazdă și la alte resurse. Când browserul web este închis, starea site-ului dinamic poate fi salvată sau stocată în cache, iar data viitoare când browserul este reluat, site-ul poate fi restabilit în browser (cu anumite limitări).
Chiar și foaia de calcul este foarte aproape de conceptul imaginii. Aceasta cuprinde toate informațiile necesare. Nu poate accesa resursele sistemului. Poate fi salvat și restaurat. Și ar trebui să știți că foile de calcul sunt încă folosite pentru a dezvolta modele complexe și aplicații cu propria lor limbă.
Totul în Smalltalk este un obiect
Fără excepții: totul este un obiect. Nu există tipuri de date primitive. Nu există structuri de guvernare, cum ar fi alegerea și repetarea! Totul în Smalltalk se face prin trimiterea de mesaje către obiecte. Aceasta este ceea ce face Smalltalk atât de simplu, elegant și ușor de învățat. Aceasta este ceea ce face o limbă atât de pură sintactic.
De exemplu, fragmentul de cod următor extinde clasa Număr pentru a susține o operație factorială recursivă:
Aici ifTrue: acesta este mesajul cheie trimis la obiectul boolean returnat de expresia (self <2). Аргументом для сообщения является блок кода (обозначенный квадратными скобками). На самом деле ifTrue: это первая часть сообщения с двумя аргументами, вторая часть ifFalse :.
Un mesaj unar nou este trimis la clasa OrderedCollection pentru a crea o nouă colecție. Mesajul printNl este trimis către rezultatul (fiind obiectul) prin trimiterea mesajului my_factorial la numărul 7. Toate acestea sunt foarte asemănătoare cu limba naturală!
Reflecție în Smalltalk
Reflecția în Smalltalk este deosebit de utilă ca un mecanism de verificare a propriei structuri și a calculelor în timpul execuției. Acesta este un mecanism foarte puternic care permite programelor să se extindă cu noi clase și metode sau să pună întrebarea "cine mi-a trimis acest mesaj?"
Reflecția este utilizată pentru a implementa o metodă puternică de tratare a erorilor. Când un obiect primește un mesaj pe care nu îl implementează, acesta primește un mesaj de notNotUnderstand: și codul mesajului original. Există multe lucruri pe care un program le poate face cu mesajul. inclusiv extinderea funcționalității sale!
Conceptul de imagine și reflecție permite, de asemenea, Smalltalk să elimine limita dintre aplicație și IDE. Tot ce aveți nevoie pentru a dezvolta, depana și rula aplicația este în imagine. Nu este nevoie să părăsiți vreodată mediul de aplicare. Aceasta este o abordare complet holistică a dezvoltării software-ului, care o face din ce în ce mai mult și mai productivă.
Renasterea lui Smalltalk
Ultimii 15 ani de dezvoltare în lumea Smalltalk au făcut limba mai atractivă.
Anul trecut, Dolphin Smalltalk, iubit de mulți, a devenit un proiect deschis, oferind o altă opțiune excelentă pentru fanii Smalltalk. Dolphin Smalltalk este adesea lăudat pentru că are una dintre cele mai bune implementări ale IDE-ului.
Smalltalk Heritage: Programați cu plăcere
Când utilizați instrumente moderne de dezvoltare de software, cum ar fi JVM, Eclipse IDE, circuitul, „viu programare», MVC, TDD, VMware, și chiar și o aplicație web simplu, amintiți-vă originea în Smalltalk și să încerce ceea ce privește ceea ce faci . Fii recunoscator pentru limbile pe care le utilizați, fie că este vorba Objective-C, Python, Ruby, Groovy, Scala, tragere la țintă sau Swift.
Lucrul cu limbajul de la care au apărut toate aceste minunate funcții și tehnologii oferă o oportunitate unică de a vă îmbunătăți în mod semnificativ cunoștințele, acuitatea mentală și productivitatea în calitate de dezvoltator de software. Cuvântul "plăcere" nu este folosit întotdeauna în conversațiile despre ingineria software, dar cred că Smalltalk și colegii lui OO oferă o barieră cognitivă mai mică și simplitatea programării care poate distrage dezvoltarea software-ului.