Smalltalk: Unterschied zwischen den Versionen
Cg (Diskussion | Beiträge) |
Cg (Diskussion | Beiträge) |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 14: | Zeile 14: | ||
* Exceptions sind "proceedable". D.h. ein Exception Handler kann die Situation reparieren und mit der Ausführung fortfahren. Z.B. kann eine fehlende Datei in einem OpenError-Handler nachgeladen werden und (transparent für den Dateihandling Code) mit der Ausführung fortgefahren werden. Dies ist außer in Smalltalk in keiner anderen Programmiersprache möglich. |
* Exceptions sind "proceedable". D.h. ein Exception Handler kann die Situation reparieren und mit der Ausführung fortfahren. Z.B. kann eine fehlende Datei in einem OpenError-Handler nachgeladen werden und (transparent für den Dateihandling Code) mit der Ausführung fortgefahren werden. Dies ist außer in Smalltalk in keiner anderen Programmiersprache möglich. |
||
* Smalltalk unterstützt echte Closures (Lambdas), und die Klassenbibliothek nutzt diese intensiv. Insbesondere die Collectionklassen implementieren viele Operationen damit (do: / select: / collect: / map: / find: etc.) |
* Smalltalk unterstützt echte Closures (Lambdas), und die Klassenbibliothek nutzt diese intensiv. Closures sind in erster Näherung vergleichbar mit anonymen Funktionen, die jedoch innerhalb anderer Methoden oder Funktionen definiert sein können und Zugriff auf die umgebenden Variablen haben. Im Gegensatz zu vielen anderen Programmiersprachen haben die Smalltalk-Closures auch Zugriff auf die Aufrufkette, und können ein Return aus der aufrufenden Methode beinhalten. Insbesondere die Collectionklassen implementieren viele Operationen damit (do: / select: / collect: / map: / find: etc.) |
||
* Änderungen sind auf Methodenebene möglich und werden sofort (im laufenden Betrieb) mit dem nächsten Aufruf aktiv. Es ist nicht notwendig, das Programm zu stoppen oder gar neu zu binden. |
* Änderungen sind auf Methodenebene möglich und werden sofort (im laufenden Betrieb) mit dem nächsten Aufruf aktiv. Es ist nicht notwendig, das Programm zu stoppen oder gar neu zu binden. |
||
Zeile 34: | Zeile 34: | ||
=Smalltalk und eXept= |
=Smalltalk und eXept= |
||
Smalltalk/X wurde komplett in unserem Haus entwickelt und wird ständig erweitert und gepflegt. Es stellt die Platform für alle unsere Produkte dar. |
Smalltalk/X wurde komplett in unserem Haus entwickelt und wird ständig erweitert und gepflegt. Es stellt die Platform für alle unsere Produkte dar. |
||
Die Vorzüge von Smalltalk/X in Verbindung mit dem umfassenden Know-how unseres Teams machen eXept schnell und flexibel bei Entwicklung der technologisch führenden Testautomatisierungslösung expecco. |
|||
Smalltalk/X basiert weder auf Java noch auf .NET. Damit sind wir unabhängig von eventuell zukünftig erhobenen Lizenzforderungen von Oracle oder Microsoft. |
|||
=Links zu Smalltalk= |
|||
* [[ Smalltalk Syntax Cheat Sheet ]] |
|||
* [http://live.exept.de/doc/online/english/programming/TOP.html Smalltalk/X Online Documentation] |
|||
* [http://live.exept.de/doc/online/english/getstart/tutorial.html Smalltalk/X Tutorial] |
|||
* [http://live.exept.de/doc/online/english/index.html KWIC (Keyword in Context) Index] |
|||
* [http://live.exept.de/doc/online/english/programming/selectors.html Most Useful Messages] |
Aktuelle Version vom 28. Dezember 2024, 16:19 Uhr
Inhaltsverzeichnis
Smalltalk[Bearbeiten]
Smalltalk ist eine Programmiersprache, welche kompromisslos objektorientiert ist. Das bedeutet:
- keine native Typen. Alle Objekte incklusive Integers, Floats, Strings, Characters sind first-Class Objekte.
- sämtliche Operationen auf Objekte werden durch Methoden ihrer Klasse definiert und implementiert. Alle Klassen können erweitert werden (inkl. Integer, String, etc.). Dies im Gegensatz zu Java, wo dies bei vielen wichtigen Klassen nicht möglich ist.
- Klassen selbst sind Objekte und werden ihrerseits durch Metaklassen definiert. Auch deren Protokoll (Methoden) kann jederzeit erweitert werden. Auch dies ist in Java nicht gegeben.
- Metaklassen implementieren denselben Vererbungsmechanismus wie normale Objektinstanzen. Klassenmethoden (insbes. "new") können redefiniert werden (im Gegensatz zu Java, wo dies nicht möglich ist).
- Exceptions sind "proceedable". D.h. ein Exception Handler kann die Situation reparieren und mit der Ausführung fortfahren. Z.B. kann eine fehlende Datei in einem OpenError-Handler nachgeladen werden und (transparent für den Dateihandling Code) mit der Ausführung fortgefahren werden. Dies ist außer in Smalltalk in keiner anderen Programmiersprache möglich.
- Smalltalk unterstützt echte Closures (Lambdas), und die Klassenbibliothek nutzt diese intensiv. Closures sind in erster Näherung vergleichbar mit anonymen Funktionen, die jedoch innerhalb anderer Methoden oder Funktionen definiert sein können und Zugriff auf die umgebenden Variablen haben. Im Gegensatz zu vielen anderen Programmiersprachen haben die Smalltalk-Closures auch Zugriff auf die Aufrufkette, und können ein Return aus der aufrufenden Methode beinhalten. Insbesondere die Collectionklassen implementieren viele Operationen damit (do: / select: / collect: / map: / find: etc.)
- Änderungen sind auf Methodenebene möglich und werden sofort (im laufenden Betrieb) mit dem nächsten Aufruf aktiv. Es ist nicht notwendig, das Programm zu stoppen oder gar neu zu binden.
- Änderungen sind im angehaltenen Zustand (z.B. im Debugger) möglich. Methodenaufrufe können restarted werden und somit die Änderung im Debugger sofort getestet werden ("programming in the debugger").
- Die Übersetzung erfolgt in 2 Stufen, zunächst in einen internen Bytecode, welcher beim ersten Aufruf in Maschinencode übersetzt wird (sog. "Jitter" oder "dynamische Übersetzung").
Smalltalk/X[Bearbeiten]
Smalltalk/X ist eine vollständige Implementierung der Programmiersprache Smalltalk, mit umfangreicher Klassenbibliothek und grafischer Entwicklungsumgebung
Die Sprache beinhaltet modernste Konzepte kombiniert mit inkrementeller Übersetzung. Daraus resultieren extrem kurze turn-around-Zeiten und es erlaubt das Programmieren während das Programm läuft. Das macht Smalltalk/X zu einer der produktivsten Plattformen für die Projektentwicklung. Smalltalk/X ist schnell, sicher, stabil und leistungsfähig, stark in kritischen Projekten, im langjährigen Einsatz sowohl bei eXept als auch bei vielen Industriekunden und damit eine hervorragende Plattform zur Entwicklung von performanten und robusten Anwendungen.
Durch klicken auf den Link "Alles über Smalltalk" werden Sie auf eine Seite geleitet, welche Ihnen weitere Details zu Smalltalk, allgemeine Informationen, Tool Information, einen Keyword Index sowie einen System Overview liefern: Alles über Smalltalk
Smalltalk und eXept[Bearbeiten]
Smalltalk/X wurde komplett in unserem Haus entwickelt und wird ständig erweitert und gepflegt. Es stellt die Platform für alle unsere Produkte dar.
Die Vorzüge von Smalltalk/X in Verbindung mit dem umfassenden Know-how unseres Teams machen eXept schnell und flexibel bei Entwicklung der technologisch führenden Testautomatisierungslösung expecco.
Smalltalk/X basiert weder auf Java noch auf .NET. Damit sind wir unabhängig von eventuell zukünftig erhobenen Lizenzforderungen von Oracle oder Microsoft.