61
Smalltalk vs. Java c Chris Burkert 2002 Smalltalk versus Java

Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Smalltalk versus Java

Page 2: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Gliederung

• Einfuhrung

• Geschichte

• sprachliche Aspekte

• technische Aspekte

• theoretische Aspekte

• praktische Aspekte

• Fazit

Page 3: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Merkmale

• Objektorientierung

Page 4: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Merkmale

• Objektorientierung

– Kapselung

Page 5: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Merkmale

• Objektorientierung

– Kapselung– Vererbung

Page 6: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Merkmale

• Objektorientierung

– Kapselung– Vererbung– Blocks / Inner Classes

Page 7: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Merkmale

• Objektorientierung

– Kapselung– Vererbung– Blocks / Inner Classes

• Plattformunabhangigkeit

Page 8: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Merkmale

• Objektorientierung

– Kapselung– Vererbung– Blocks / Inner Classes

• Plattformunabhangigkeit

• Speicherbereinigung

Page 9: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Merkmale

• Objektorientierung

– Kapselung– Vererbung– Blocks / Inner Classes

• Plattformunabhangigkeit

• Speicherbereinigung

• Reflexivitat

Page 10: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Beispiel - Java

List party = new ArrayList();Iterator it = party.iterator();

party.add(”Beer”);party.add(”Chips”);party.add(”Dip”);

while (it.hasNext()) {String string = (String)it.next();System.out.println(string);

}

for(int i = party.size() - 1; i>-1; i–) {String string = (String)party.get(i);System.out.println(string);

}

Page 11: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Einfuhrung - Beispiel - Smalltalk

| party |

party := OrderedCollection with: ’Beer’ with: ’Chips’ with: ’Dip’.

party do: [ :each | Transcript cr; show: each ].

party reverseDo: [ :each | Transcript cr; show: each ].

Page 12: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

Page 13: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

• 1992 - James Gosling⇒ OAK mit Maskottchen Duke

Page 14: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

• 1992 - James Gosling⇒ OAK mit Maskottchen Duke

– einfach, robust, leicht erlernbar, objektorientiert

Page 15: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

• 1992 - James Gosling⇒ OAK mit Maskottchen Duke

– einfach, robust, leicht erlernbar, objektorientiert– optimiert fur Computerchips, grafische Oberflache

Page 16: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

• 1992 - James Gosling⇒ OAK mit Maskottchen Duke

– einfach, robust, leicht erlernbar, objektorientiert– optimiert fur Computerchips, grafische Oberflache

• 1995 - Java⇒ Netscape-Integrierung

Page 17: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

• 1992 - James Gosling⇒ OAK mit Maskottchen Duke

– einfach, robust, leicht erlernbar, objektorientiert– optimiert fur Computerchips, grafische Oberflache

• 1995 - Java⇒ Netscape-Integrierung

• 1996 - JDK 1.0

Page 18: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

• 1992 - James Gosling⇒ OAK mit Maskottchen Duke

– einfach, robust, leicht erlernbar, objektorientiert– optimiert fur Computerchips, grafische Oberflache

• 1995 - Java⇒ Netscape-Integrierung

• 1996 - JDK 1.0

• 1997 - JDK 1.1⇒ zunehmende Popularitat durch kluges Marketing

Page 19: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

• 1992 - James Gosling⇒ OAK mit Maskottchen Duke

– einfach, robust, leicht erlernbar, objektorientiert– optimiert fur Computerchips, grafische Oberflache

• 1995 - Java⇒ Netscape-Integrierung

• 1996 - JDK 1.0

• 1997 - JDK 1.1⇒ zunehmende Popularitat durch kluges Marketing

• 1998 - Java 2⇒ JDK 1.2

Page 20: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Java

• 1990 - offentliche Diskussion uber die Zukunft von SUN

• 1992 - James Gosling⇒ OAK mit Maskottchen Duke

– einfach, robust, leicht erlernbar, objektorientiert– optimiert fur Computerchips, grafische Oberflache

• 1995 - Java⇒ Netscape-Integrierung

• 1996 - JDK 1.0

• 1997 - JDK 1.1⇒ zunehmende Popularitat durch kluges Marketing

• 1998 - Java 2⇒ JDK 1.2

• 1999 - Community Source License

Page 21: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

Page 22: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

Page 23: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

Page 24: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

– objektorientierte Programmiersprache

Page 25: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

– objektorientierte Programmiersprache– leistungfahige Entwicklungsumgebung

Page 26: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

– objektorientierte Programmiersprache– leistungfahige Entwicklungsumgebung– Virtual Machine

Page 27: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

– objektorientierte Programmiersprache– leistungfahige Entwicklungsumgebung– Virtual Machine– Garbage Collection

Page 28: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

– objektorientierte Programmiersprache– leistungfahige Entwicklungsumgebung– Virtual Machine– Garbage Collection– Zeigergerate

Page 29: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

– objektorientierte Programmiersprache– leistungfahige Entwicklungsumgebung– Virtual Machine– Garbage Collection– Zeigergerate– 2D Rastergrafik

Page 30: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

– objektorientierte Programmiersprache– leistungfahige Entwicklungsumgebung– Virtual Machine– Garbage Collection– Zeigergerate– 2D Rastergrafik

• 1995 - Alan Kay / Dan Ingalls⇒ Squeak

Page 31: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Geschichte - Smalltalk

• 1967 - Alan Kay⇒ ’The Reactive Machine’

• 1970 - Xerox⇒ Palo Alto Research Center

• 1983 - ParcPlace Inc. Smalltalk-80⇒ Cincom Visual Works

– objektorientierte Programmiersprache– leistungfahige Entwicklungsumgebung– Virtual Machine– Garbage Collection– Zeigergerate– 2D Rastergrafik

• 1995 - Alan Kay / Dan Ingalls⇒ Squeak

• 1997 - ANSI⇒ NCITS J20-Kommite

Page 32: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

sprachliche Aspekte - reservierte W orter

abstract boolean break byte byvaluecase cast catch char classconst continue default do doubleelse extends false final finallyfloat for future generic gotoif implements import inner instanceofint interface long native newnull operator outer package privateprotected public rest return shortstatic super switch synchronized thisthrow throws transient true tryvar void volatile while

Page 33: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

sprachliche Aspekte - reservierte W orter

abstract boolean break byte byvaluecase cast catch char classconst continue default do doubleelse extends false final finallyfloat for future generic gotoif implements import inner instanceofint interface long native newnull operator outer package privateprotected public rest return shortstatic super switch synchronized thisthrow throws transient true tryvar void volatile while

nil self super true false

Page 34: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

sprachliche Aspekte - Kontrollstrukturen

TrueifTrue: aBlock

ˆ aBlock value.

ifFalse: aBlockˆ nil.

FalseifTrue: aBlock

ˆ nil.

ifFalse: aBlockˆ aBlock value.

Page 35: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

sprachliche Aspekte - Kaskadierung

party.with(”Beer”);party.with(”Chips”);party.with(”Dip”);party.start();

Page 36: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

sprachliche Aspekte - Kaskadierung

party.with(”Beer”);party.with(”Chips”);party.with(”Dip”);party.start();

partywith: ’Beer’;with: ’Chips’;with: ’Dip’;start.

Page 37: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Virtual Machine - Java

• Stack

– Ubergabe von Argumenten– 4 Byte⇒ 4 GByte

Page 38: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Virtual Machine - Java

• Stack

– Ubergabe von Argumenten– 4 Byte⇒ 4 GByte

• Register

– pc⇒ Program Counter– optop⇒ Operand Top– frame⇒ Methodenkontext– vars⇒ lokale Variable

Page 39: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Virtual Machine - Java

• Stack

– Ubergabe von Argumenten– 4 Byte⇒ 4 GByte

• Register

– pc⇒ Program Counter– optop⇒ Operand Top– frame⇒ Methodenkontext– vars⇒ lokale Variable

• Garbage Collection Heap

– Speicherbereich fur neue In-stanzen

– Zugriff uber Referenzen ⇒ Par-allele Garbage Collection

Page 40: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Virtual Machine - Java

• Stack

– Ubergabe von Argumenten– 4 Byte⇒ 4 GByte

• Register

– pc⇒ Program Counter– optop⇒ Operand Top– frame⇒ Methodenkontext– vars⇒ lokale Variable

• Garbage Collection Heap

– Speicherbereich fur neue In-stanzen

– Zugriff uber Referenzen ⇒ Par-allele Garbage Collection

• Methoden- & Konstantenbereich

– Bytecodes der Methoden– Konstanten-Array

Page 41: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Virtual Machine - Smalltalk

• Interpreter

– Compiled Method– Instruction Pointer– Reciever & Argumente– temporare Variablen– Stack

Page 42: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Virtual Machine - Smalltalk

• Interpreter

– Compiled Method– Instruction Pointer– Reciever & Argumente– temporare Variablen– Stack

• ObjectMemory

– Erfragen der i’ten Instanzvariable– Ubergeben der i’ten Instanzvariable– Erfragen der zugehorigen Klasse– Anlegen eines neuen Objektes– Anzahl der Instanzvariablen

Page 43: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Garbage Collection

• Reference Counting

Page 44: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Garbage Collection

• Reference Counting

– Perl– Python– Visual Basic– Smalltalk-80

Page 45: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Garbage Collection

• Reference Counting

– Perl– Python– Visual Basic– Smalltalk-80

• Mark & Sweep

Page 46: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Garbage Collection

• Reference Counting

– Perl– Python– Visual Basic– Smalltalk-80

• Mark & Sweep

– Java (Sun)– Eiffel– Lisp– Ruby

Page 47: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Garbage Collection

• Reference Counting

– Perl– Python– Visual Basic– Smalltalk-80

• Mark & Sweep

– Java (Sun)– Eiffel– Lisp– Ruby

• Stop & Copy

Page 48: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Garbage Collection

• Reference Counting

– Perl– Python– Visual Basic– Smalltalk-80

• Mark & Sweep

– Java (Sun)– Eiffel– Lisp– Ruby

• Stop & Copy

– Java (Microsoft)

Page 49: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Garbage Collection

• Reference Counting

– Perl– Python– Visual Basic– Smalltalk-80

• Mark & Sweep

– Java (Sun)– Eiffel– Lisp– Ruby

• Stop & Copy

– Java (Microsoft)

• Generation scavenging

Page 50: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

technische Aspekte - Garbage Collection

• Reference Counting

– Perl– Python– Visual Basic– Smalltalk-80

• Mark & Sweep

– Java (Sun)– Eiffel– Lisp– Ruby

• Stop & Copy

– Java (Microsoft)

• Generation scavenging

– Smalltalk– Java (Hotspot)– Haskel– Eiffel

Page 51: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

theoretische Aspekte - Typsystem

• Java

– Typ steht zur Compilezeit fest– Es exisiteren primitive Datantypen ...– ... und Referenztypen

Page 52: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

theoretische Aspekte - Typsystem

• Java

– Typ steht zur Compilezeit fest– Es exisiteren primitive Datantypen ...– ... und Referenztypen

• Smalltalk

– Typ steht zur Laufzeit fest– Es existieren nur Objekte

Page 53: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

theoretische Aspekte - Entscheidungsbaum - Smalltalk

Page 54: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

theoretische Aspekte - Entscheidungsbaum - Java

Page 55: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

theoretische Aspekte - Entscheidungsbaum - Java

Page 56: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

praktische Aspekte - Entwicklungsprozess - Java

• Source⇒ *.java

• Compiler⇒ *.class

• Interpreter⇒ laufende Applikation

Page 57: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

praktische Aspekte - Entwicklungsprozess - Java

• Source⇒ *.java

• Compiler⇒ *.class

• Interpreter⇒ laufende Applikation

⇒ viele Einzelschritte, Try & Error

⇒ zusatzlich benotigte Tools wie Browser, Debugger, etc.

Page 58: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

praktische Aspekte - Entwicklungsprozess - Smalltalk

• Bytecode⇒ Image

• Interpreter⇒ laufende Applikation

• Source⇒ Compiler⇒ Bytecode

Page 59: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

praktische Aspekte - Entwicklungsprozess - Smalltalk

• Bytecode⇒ Image

• Interpreter⇒ laufende Applikation

• Source⇒ Compiler⇒ Bytecode

⇒ Kreislauf

⇒ Integrierte Entwicklungsumgebung

⇒ Verschmelzung von Inmplementierungs- und Testphase

Page 60: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

praktische Aspekte - Plattformen - Smalltalk

• Windows NT/2000/XP

• Windows 95/98/ME

• Windows CE

• Linux

• BSD

• MacOS / MacOS X

• Solaris

• OS/2

• BeOS

• NeXT

• DOS

• Acorn RISC

• Zaurus

• DEC Itsy

• Unixware

• SunOS

• ULTRIX

• RealIX

• SGI-IRIX

• Alpha OSF-1

• HP-UX

• AIX

• HP-UX

Page 61: Smalltalk versus Java - Linux-Tage · 2003-03-07 · Smalltalk vs. Java c Chris Burkert 2002 Geschichte - Java 1990 -offentliche Diskussion¨ uber die Zukunft von SUN¨ 1992 - James

Smalltalk vs. Java c© Chris Burkert 2002

Fazit

• www.whysmalltalk.com

• java.sun.com