1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
|
<html>
<head>
<title>
Handbuch der Java-Programmierung, 5. Auflage
</title>
</head>
<body>
<a name="startofbody"></a>
<script language="JavaScript" src="hjp4lib.js">
</script>
<script language="JavaScript">
installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100008.html;106,k100008.html;107,k100010.html;108,k100013.html");
</script>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100008.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100008.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100010.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100013.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">Kapitel 1 - Was ist Java?
</table>
<hr>
<!-- Section -->
<a name="sectlevel2id001001"></a>
<h2>1.1 Historie </h2>
<hr>
<ul>
<li><a href="k100009.html#sectlevel2id001001">1.1 Historie</a>
</ul>
<hr>
<p>
Als offizieller Geburtstag der Programmiersprache Java gilt der 23.
Mai 1995.
<p>
Mit dem Erscheinen dieses Buchs wird Java also stattliche zwölf
Jahre alt sein. Nach einer wechselhaften Vorgeschichte, dem darauf
folgenden Enthusiasmus und fast ebenso vielen technischen Schwierigkeiten
wie Errungenschaften hat sich Java heute vollständig etabliert.
Nach wie vor verzeichnet die Sprache ein steigendes Interesse in breiten
Kreisen der Entwicklergemeinschaft und wird in Kürze C++ als
am häufigsten genutzte Programmiersprache abgelöst haben.
Bevor wir uns in den nachfolgenden Kapiteln mit den technischen Details
der Sprache beschäftigen, wollen wir einen kurzen Blick auf die
Entstehungsgeschichte von Java werfen.
<p>
Nach einschlägigen Berichten fing alles mit einer Mail des damals
25jährigen Programmierers Patrick Naughton<a name="ixa100001"></a>
an den SUN-Chef Scott McNealy<a name="ixa100002"></a> an. Naughton
hatte angekündigt, das Unternehmen zu verlassen, um zu <i>Next
Computer, Inc.</i> zu wechseln. Er war der Meinung, dass manches bei
SUN nicht gut funktionierte, und die weitaus moderneren Technologien
von Next reizten ihn sehr. McNealy, der mit Naughton zusammen Eishockey
spielte, forderte ihn auf, seine Kritik samt möglicher Lösungsvorschläge
niederzuschreiben, ganz gleich, wie radikal sie auch sein mögen.
<p>
Naughtons Mail hat seine Wirkung nicht verfehlt! In einer für
SUN schwierigen Periode mit internen Diskussionen um den Kurs des
Unternehmens und seiner Produkte rannte Naughton offene Türen
ein. Seine Hauptkritikpunkte betrafen die nicht zeitgemäßen
grafischen Oberflächen, die unübersehbare Anzahl an Programmierwerkzeugen,
die hohen Kosten der Workstations und die komplizierte Anwendung der
Programme. Kurz, er warf SUN vor, auf dem besten Wege zu sein, sich
mehr und mehr von seinen potentiellen Kunden und Anwendern zu entfernen.
Er forderte Hard- und Software, die nicht nur von Akademikern und
hochspezialisierten Profis, sondern von normalen Menschen angewendet
werden konnte.
<p>
Naughtons Klagen wurden erhört, und innerhalb weniger Tage wurde
ein Projekt aufgesetzt, dessen Ziel es sein sollte, die nächsten
großen Trends der Computer- und Softwareindustrie aufzuspüren.
Naughton zog seine angedrohte Kündigung zurück und begann
1991 zusammen mit James Gosling <a name="ixa100003"></a> und Mike
Sheridan<a name="ixa100004"></a> die Arbeit an einem geheimen, zunächst
für ein Jahr finanzierten und außerhalb des regulären
Unternehmens angesiedelten Vorhabens, das später den Namen <a name="ixa100005"><i>Green-Projekt</i></a>
erhielt.
<p>
Nach anfänglichen Schwierigkeiten, seine eigene Aufgabe zu definieren,
entschied sich das Team dafür, einen Prototyp zur Steuerung und
Integration von Geräten zu bauen, wie sie in normalen Haushalten
in großer Zahl verwendet wurden (Toaster, Videorecorder, Fernseher
etc.). Bestandteile dieses Projekts waren ein Betriebssystem (<a name="ixa100006">Green-OS</a>),
ein portabler Interpreter (<a name="ixa100007">Oak</a>), ein Grafiksubsystem
und diverse Hardwarekomponenten. Bis Mitte 1992 entwickelte Naughton
mit seinen Kollegen ein Gerät, das etwa heutigen Palm-Computern
glich und mit einer tastaturlosen grafischen Oberfläche per drahtloser
Datenübertragung zur Bedienung unterschiedlichster Geräte
der Konsumelektronik verwendet werden konnte.
<p>
Das als »*7« (<a name="ixa100008"><i>Star Seven</i></a>)
bezeichnete Gerät wurde im Herbst 1992 firmenintern präsentiert.
Diese Vorstellung konnte einige der Manager - unter ihnen SUN-Mitbegründer
Bill Joy<a name="ixa100009"></a> und Scott McNealy - so beeindrucken,
dass im November 1992 aus dem lockeren Team die Firma <a name="ixa100010"><i>First Person,
Inc.</i></a> gegründet wurde. Mit zuletzt
etwa 70 Mitarbeitern versuchte das junge Unternehmen, den Prototypen
zur Serienreife zu bringen und zu vermarkten. Trotz großer Anstrengungen
scheiterten aber alle Versuche, Verträge und Partnerschaften
zur kommerziellen Verwendung von Star Seven unter Dach und Fach zu
bringen. Nach vielen Mühen wurde die Arbeit von <i>First Person,
Inc.</i> im April 1994 praktisch beendet.
<p>
Fast wäre die Geschichte von Java nun bereits zu Ende gewesen,
ehe sie richtig begonnen hatte.
<p>
Bei aller Euphorie über interaktives Fernsehen und Heimelektronik
hatten die Entwickler nämlich eine andere, sehr viel realere
Entwicklung übersehen. Mittlerweile hatte das World Wide Web
eine kritische Größe erreicht! Nachdem <a name="ixa100011">NCSA Mosaic</a>
als erster grafischer Web-Browser im April 1993 verfügbar war,
konnte jedermann ansprechend aufbereitete Informationen im Internet
ansehen und auf einfache Weise zwischen unterschiedlichen Diensten,
Medien und Anbietern wechseln. Vor allem Bill Joy, der sich gelegentlich
über den Stand des Green-Projekts informierte, erkannte das Potenzial
des World Wide Web und die Bedeutung einer plattformunabhängigen
Programmiersprache, mit der neben textuellen Inhalten auch Programme
transportiert und ohne Installations- oder Portierungsaufwand auf
einem beliebigen Zielrechner ausgeführt werden konnten.
<p>
In der Annahme, damit die Bedeutung des Internet zu stärken und
auf diese Weise indirekte Verkaufsförderung für SUN-Produkte
zu betreiben, beauftragte Joy die Kollegen Gosling und Naughton mit
der Entwicklung einer »Killer-Applikation«, die dieses Potenzial
offenlegen sollte. Während *7 dabei keine Rolle mehr spielte,
wurde die Programmiersprache Oak zur Entwicklung einer ganz neuen
Art von Programm verwendet. Im Herbst 1994 wurde mit ihrer Hilfe die
erste Version von <a name="ixa100012"><i>WebRunner</i></a> fertiggestellt,
einem Web-Browser, der neben der Darstellung von HTML-Seiten auch
kleine Java-Programme, <i>Applets</i> genannt, aus dem World Wide
Web laden und innerhalb des Browserfensters ausführen konnte.
<p>
Zu diesem Zeitpunkt war Oak, das später in Java umbenannt wurde,
bereits eine recht stabile Sprache. Sie wurde nicht nur dazu benutzt,
WebRunner zu entwickeln, sondern von Arthur van Hoff<a name="ixa100013"></a>,
der Ende 1993 zum Team kam, zur Entwicklung des Java-Compilers selbst
verwendet. Ende 1994 stand WebRunner einer kleinen Anzahl von Entwicklern
zum Test zur Verfügung und konnte nicht nur diese, sondern auch
die Verantwortlichen bei SUN überzeugen. Das Programm wurde nach
der Umbenennung in <a name="ixa100014"><i>HotJava</i></a> in den nächsten
Monaten stabilisiert und konnte im Mai auf der <a name="ixa100015"><i>SunWorld '95</i></a>
der Öffentlichkeit vorgestellt werden.
<p>
Trotz des technologischen Durchbruchs und großen Presserummels
mochten sich zunächst nur wenige Anwender mit HotJava anfreunden.
Der überlegene Netscape Navigator war zu diesem Zeitpunkt bereits
zu stark verbreitet. So war es ein großes Glück, dass Netscape
sich entschied, die Java-Technologie von SUN zu lizenzieren und in
der Version 2.0 des Navigators, die im Dezember 1995 auf den Markt
kam, einem breiten Publikum zur Verfügung zu stellen. Die Ankündigung
dieser Fortentwicklung, die Netscape-Gründer Marc Andreessen<a name="ixa100016"></a>
am 23. Mai 1995 zusammen mit der öffentlichen Vorstellung von
Java vortrug, wird von SUN als offizielle Geburtsstunde von Java angesehen.
<p>
Nach einigen Monaten des Betatests für Java und HotJava wurde
im Januar 1996 das <i>JDK 1.0</i><a name="ixa100017"></a>, die erste
Version des <a name="ixa100018"><i>Java Development Kit</i></a>, freigegeben.
Bereits während der Betatests wurden hunderte von frei verfügbaren
Applets geschrieben, die schon früh einen Eindruck von den Möglichkeiten
der Sprache vermittelten. Kurz vor der Fertigstellung des JDK 1.0
wurde aus den verbliebenen Mitgliedern des Green-Teams die Firma <a name="ixa100019"><i>JavaSoft</i></a>
gegründet, die von SUN mit der Weiterentwicklung von Java betraut
wurde. Unter ihrem Präsidenten Alan Baratz<a name="ixa100020"></a>
entwickelte und pflegte JavaSoft das JDK und seine Werkzeuge und sollte
fortan maßgeblich den weiteren Weg von Java bestimmen.
<p>
Tatsächlich stand die Entwicklung nun keinesfalls still, sondern
nahm an Dynamik noch zu. In den folgenden Monaten bildeten sich eine
Reihe von strategischen Allianzen zwischen SUN bzw. JavaSoft und vielen
Großen der Branche. So wurde beispielsweise die im Mai 1996
angekündigte Komponentenarchitektur <a name="ixa100021"><i>JavaBeans</i></a>
von so prominenten Firmen wie <a name="ixa100022">Borland</a>, <a name="ixa100023">Lotus</a>,
<a name="ixa100024">Oracle</a>, <a name="ixa100025">IBM</a>, <a name="ixa100026">Netscape</a>
und <a name="ixa100027">Symantec</a> unterstützt.
<p>
Im Laufe der nächsten Monate kam der »Hype« dann richtig
in Fahrt, und Java wurde mit Lorbeeren überhäuft. In welcher
Weise das Interesse an Java anstieg, mögen einige Kennzahlen
verdeutlichen:
<ul>
<li><a name="ixa100028">Gamelan</a> ist ein Verzeichnis von Java-Ressourcen,
das Verweise auf Java-Applets oder -Applikationen verwaltet. Während
die Zahl der Einträge im Januar 1996 noch deutlich unter 1000
lag, sollte sie sich innerhalb der nächsten 6 Monate vervierfachen.
<li>Eine ähnliche Entwicklung nahmen die Java-Newsgroups im Internet.
Während im Januar 1996 lediglich eine einzige Gruppe <font color="#000077"><tt>comp.lang.java</tt></font>
existierte, gibt es heute 12 weitere Newsgroups innerhalb der <font color="#000077"><tt>comp.lang.java</tt></font>-Hierarchie
mit insgesamt etwa 15.000 Nachrichten pro Monat. Zudem gibt es unzählige
nationale Newsgroups, Listserver und nicht-öffentliche Diskussionsforen.
<li>Ein weiteres Beispiel für die rasante Verbreitung ist die
Anzahl der bei SUN offiziell registrierten <a name="ixa100029">Java-Usergruppen</a>.
Sie lag im Februar 1996 bei 17, stieg bis Ende 1998 auf 140 an und
liegt heute bei fast 900. Weitere 2600 befinden sich in Gründung.
<li>Die Ende 1996 von SUN ins Leben gerufene <a name="ixa100030"><i>Java Developer's Connection</i></a>,
die als Download- und Service-Plattform für die Java-Entwicklungswerkzeuge
von SUN dient, verzeichnet heute mehrere Millionen registrierte Entwickler.
</ul>
<p>
Nach einer Reihe von Ankündigungen im ersten Halbjahr wurden
bis Ende 1996 zahlreiche Neuerungen vorgestellt. Unter ihnen waren
die Datenbank-Spezifikation <a name="ixa100031">JDBC</a>, die Komponentenarchitektur
Beans, das <a name="ixa100032">JavaCard API</a>, <a name="ixa100033">HotJava Views</a>,
die »<a name="ixa100034">100 % Pure Java Initiative</a>«
und eine Reihe weiterer APIs. Zusätzlich kamen die ersten integrierten
Entwicklungssysteme, wie <a name="ixa100035"><i>Cafe</i></a> und <a name="ixa100036"><i>Visual
Cafe</i></a> von Symantec oder <a name="ixa100037"><i>J++</i></a>
von Microsoft, auf den Markt.
<p>
Im Dezember 1996 wurde die Version 1.1 des Java Development Kit angekündigt.
Sie sollte eine Reihe von Bugs der Vorgängerversion beheben und
weitere Funktionalitäten hinzufügen. Im Februar 1997 standen
die ersten Betaversionen des JDK 1.1 zur Verfügung und konnten
von interessierten Entwicklern heruntergeladen werden. Im März
1997 wurde dann HotJava 1.0 herausgegeben (alle vorigen Versionen
hatten lediglich Betacharakter), und auch das Java-Betriebssystem
<a name="ixa100038"><i>JavaOS 1.0</i></a> wurde in diesem Monat der
Öffentlichkeit vorgestellt.
<p>
Etwa zeitgleich konnte man auf der Cebit 1997 den ersten Prototypen
der <a name="ixa100039"><i>JavaStation</i></a>, einer diskettenlosen
Workstation, die ausschließlich auf Java basierte, bewundern.
Mit der Ankündigung von Java-Prozessoren wie dem <a name="ixa100040"><i>PicoJava</i></a>
eröffnete SUN die Perspektive, dass Java-Programme mittelfristig
ebenso schnell laufen werden wie kompilierter C- oder C++-Code. Das
für Java-Entwickler herausragende Ereignis des Jahres war die
<a name="ixa100041"><i>JavaOne</i></a> im April 1997, die erste Konferenz,
die sich ausschließlich um Java drehte. Sie brachte eine Vielzahl
von Ankündigungen, Prototypen und neuen Produkten hervor. Die
JavaOne findet seither jedes Frühjahr in San Francisco statt
und ist nach wie vor eines der wichtigsten Ereignisse der weltweiten
Java-Gemeinde.
<p>
Die folgenden Monate standen für viele Entwickler und Tool-Hersteller
im Zeichen der Umstellung auf die Version 1.1 des JDK. Zwar gab es
bereits Ende 1997 mehr als ein Dutzend integrierte Entwicklungsumgebungen,
doch Support für die Version 1.1 war längst nicht überall
vorhanden. Auch die Browser-Hersteller taten sich schwer und stellten
erst zum Jahreswechsel 1997/98 mit den 4er Versionen ihrer Browser
erste Implementierungen des JDK 1.1 vor. Bis diese einigermaßen
stabil waren, vergingen weitere Monate.
<p>
Während sich 1998 die meisten Entwickler mit der Version 1.1
beschäftigten, wurde bei SUN bereits am neuen JDK 1.2 gearbeitet.
Im Frühjahr 1998 stand dessen erste öffentliche Version,
das JDK 1.2 Beta 2, der Öffentlichkeit zur Verfügung. Wichtige
Neuerungen waren die <a name="ixa100042"><i>Java Foundation Classes</i></a>
mit dem <a name="ixa100043"><i>Swing Toolset</i></a>, dem <a name="ixa100044"><i>Java 2D
API</i></a> und dem <a name="ixa100045"><i>Drag-and-Drop API</i></a>,
das <a name="ixa100046"><i>Collection-API</i></a> und das <a name="ixa100047"><i>Extension
Framework</i></a>. Daneben gab es viele weitere
Verbesserungen bestehender Pakete. Nach zwei weiteren Betas, die bis
zum Juli erschienen, brachte SUN im Oktober und November die »Release
Candidates« 1 und 2 heraus. Anfang Dezember 1998 wurde dann schließlich
die erste finale Version des JDK 1.2 zur Verfügung gestellt und
im Januar 1999 in <a name="ixa100048"><i>Java 2 Platform</i></a> umbenannt.
<p>
Mit der Version 1.2 hatte sich der Anspruch SUNs an das JDK geändert.
Während es zuvor darum ging, möglichst viele Features in
das JDK einzubauen, stand seit dem JDK 1.2 offiziell die Stabilität
und Performance im Vordergrund. Ersteres sollte mit einem rigorosen
Qualitätssicherungsprogramm erreicht werden, letzteres durch
Verbesserung der virtuellen Maschine. Im März 1999 wurde der
lange angekündigte <a name="ixa100049"><i>HotSpot</i></a>-Compiler
ausgeliefert. Zwar brachte er mit seiner adaptiven Compilertechnologie,
bei der interpretierte Programmteile zur Ausführungszeit genau
dann in direkt ausführbaren Maschinencode übersetzt werden,
wenn sie wesentlich zur Laufzeit des Programms beitragen, für
einige Anwendungen Geschwindigkeitsvorteile. In vielen Fällen
reichte den Entwicklern und Anwendern die Performance der Java-Programme
jedoch nicht aus. Insbesondere das Swing-Toolkit, die neue Grafikplattform,
galt auf durchschnittlichen Arbeitsplätzen als zu träge
und trug sehr zu dem Ruf Javas bei, für »echte« Anwendungen
zu langsam zu sein.
<p>
Zudem wurde das JDK 1.2 nur zögernd von der Industrie angenommen.
Zwar gab es auf dem PC bald 1.2-kompatible Entwicklungswerkzeuge,
doch auf anderen Betriebssystemen (Macintosh, UNIX, LINUX) blieben
die Portierungen bei den 1.1er Versionen stehen. Die großen
Browser-Hersteller haben bis heute keine brauchbaren 1.2er Java-Implementierungen
vorgestellt. Dies mag einerseits durch technische Schwierigkeiten
begründet gewesen sein, lag aber auch an der damals kaum akzeptierten
<a name="ixa100050"><i>Community Source Licence</i></a> von SUN. Mit
dieser sollte ein offener Java-Standard etabliert werden, ohne dass
SUN die Kontrolle über die Weiterentwicklung von Java verlor.
Durch diese Vereinbarung waren Unternehmen, die Weiterentwicklungen
des JDK vornahmen, unter Umständen dazu verpflichtet, diese offenzulegen
bzw. unentgeltlich an SUN zu übergeben.
<p>
Nach den fehlerbereinigten Versionen 1.2.1 und 1.2.2 des JDK betrieb
SUN die Weiterentwicklung des JDK unter dem Codenamen <a name="ixa100051"><i>Kestrel</i></a>.
Mit einem neuen Garbage Collector, verbessertem Speichermanagement
und einem neuen HotSpot-Compiler sollte diese Version stabiler und
performanter werden als alle vorherigen. Viele kleine Verbesserungen
sollten zudem bei der Swing-Oberfläche deutliche Geschwindigkeitsgewinne
bringen. Die intensive Arbeit an dieser Version äußerte
sich auch darin, dass alle Bugfixes des JDK 1.2.2 auf die neue Version
verschoben wurden.
<p>
Im August 1999 gab es dann die erste öffentliche Betaversion
des JDK 1.3. Tatsächlich schienen sich die Versprechen zu erfüllen.
Bereits das Beta lief recht stabil und brachte bei der grafischen
Oberfläche deutliche Geschwindigkeitsgewinne. Durch eine geänderte
Initialisierung der virtuellen Maschine reduzierte sich die Startzeit
von Java-Applikationen deutlich, und mit dem neuentwickelten Compiler
gab es große Verbesserungen bei den Turnaround-Zeiten. Auch
subjektiv lieferte das JDK 1.3 den Eindruck erheblich besserer Performance.
Nach drei weiteren Vorabversionen wurde im Mai 2000 die endgültige
Version des JDK 1.3 für Windows ausgeliefert. Versionen für
andere Betriebssysteme (namentlich SOLARIS und LINUX) sollten etwa
drei Monate später folgen. Selbst Apple, dessen Java-Implementierungen
lange Zeit bei der Version 1.1 stehen geblieben waren, liefert mit
dem Mac OS X mittlerweile ein aktuelles JDK als integralen Bestandteil
des Betriebssystems aus.
<p>
2001 folgte dann das Bug-Fix-Release 1.3.1, und nach einigen Betas
und einem »Release Candidate« brachte SUN Mitte Februar
2002 schließlich das JDK 1.4 heraus - diesmal zeitgleich für
alle unterstützen Plattformen. Neben vielen Detailverbesserungen
und umfangreichen Erweiterungen der Klassenbibliotheken sollte das
JDK 1.4 weitere Performance-Verbesserungen bringen. So wurden unter
anderem das zuvor schlechte Laufzeitverhalten von Swing-Anwendungen
auf UNIX-Betriebssystemen beseitigt. Zu den wichtigsten funktionalen
Erweiterungen der Version 1.4 zählten die <a name="ixa100052"><a href="index_a.html#ixb100056"><font color=#000080><tt>assert</tt></font></a></a>-Anweisung,
<a name="ixa100053">Unterstützung für XML</a>, neue Bibliotheken
für schnelle I/O-Zugriffe, Benutzer-Voreinstellungen, Logging
oder reguläre Ausdrücke sowie viele Erweiterungen bestehender
Bibliotheken. Zudem gab es Unterstützung für Solaris 64-Bit-Systeme
und IPv6-Support. Die folgende Java 5 Version brachte neue Sprachkonstrukte
wie typisierte Klassen, eine neue for-Schleife und das Autoboxing
von Basistypen. Sie erlauben es, den Quellcode von Javaklassen einfacher
und dennoch klarer zu schreiben und können dazu beitragen, beispielsweise
falsche Casts zu vermeiden.
<p>
Den derzeitigen Höhepunkt der Java-Entwicklung bildet die aktuelle
Java-Version 6, die ursprünglich unter dem Codenamen <a name="ixa100054"><i>Mustang</i></a>
entwickelt wurde. Kurz nach Erscheinen der ersten Betaversion teilte
<i>Ray Gans</i> - einer der führenden Java Entwickler bei Sun
- in seinem Blog unter <a href="http://weblogs.java.net/blog/ray_gans/">http://weblogs.java.net/blog/ray_gans/</a>
jedoch mit, dass Sun in Zukunft auf Codenamen verzichten und stattdessen
nur noch die Versionsnummern verwenden wird.
<p>
Der große Knall wurde jedoch erst kurz vor dem Release des JDK
6 publik gemacht: Am 13. November 2006 gab Sun bekannt, dass im Laufe
des Jahres 2007 die komplette Java-Technologie Stück für
Stück unter die populäre <a name="ixa100055"><i>General Public License</i></a>
(GPL) gestellt und damit jedermann zugänglich gemacht werden
soll. Java ist zwar seit der ersten Version kostenlos und kann von
jedem über die Homepage von Sun heruntergeladen werden, allerdings
war das »Verteilen« des Programms an Auflagen gebunden.
Außerdem lief der Gedanke, dass Java zwar kostenlos aber eben
nicht frei verfügbar ist, der Intention vieler Open Source Projekte,
Linux-Distributionen und Anbietern von Java-Anwendungen zuwider, so
dass im Laufe der Jahre eine stattliche Anzahl von freien Java-Implementierungen
entstanden. Zu den bedeutendsten »Nachimplementierungen«
zählen:
<ul>
<li>GNU Classpath (<a href="http://www.gnu.org/software/classpath/">http://www.gnu.org/software/classpath/</a>)
<li>GNU Compiler for Java (<a href="http://gcc.gnu.org/java/">http://gcc.gnu.org/java/</a>)
<li>Kaffe (<a href="http://www.kaffe.org/">http://www.kaffe.org/</a>)
<li>Apache Harmony (<a href="http://harmony.apache.org/">http://harmony.apache.org/</a>)
</ul>
<p>
Mehr Informationen zum Thema Java und Open Source finden sich zum
Beispiel unter <a href="http://www.sun.com/software/opensource/java/faq.jsp">http://www.sun.com/software/opensource/java/faq.jsp</a>.
<p>
Die sechste Version von Java wurde am 11. Dezember 2006 veröffentlicht
und enthält eine vollständig überarbeitete und vereinheitlichte
Webservice-API, eine komplett in Java geschriebene Datenbank und einen
JavaScript-Interpreter. Außerdem wurde viele Fehler behoben
und Java 6 ist nochmals einen »Tick« schneller als die vorangegangenen
Versionen.
<p>
Das Engagement der Softwareentwickler zu den aktuellen Java-Versionen
ist beträchtlich. Neben vielen Partnerschaften, bei denen Spezialisten
aus der ganzen Welt durch die Mitarbeit im <a name="ixa100056"><i>Java Community Process</i></a>
(<a name="ixa100057"><i>JCP</i></a>) zu den Neuerungen und Erweiterungen
der aktuellen Versionen beigetragen haben, gibt es mittlerweile auch
eine große Zahl an Applikationen, die in Java geschrieben wurden
oder bei deren Entwicklung Java eine wichtige Rolle gespielt hat.
Auch bei der Entwicklung von Server-Applikationen und Web-Services
spielt Java mittlerweile in der ersten Liga. So läßt sich
feststellen, dass Java nach der ersten (Applet-)Euphorie der Versionen
1.0 und 1.1 und einer dezenten Zurückhaltung während der
1.2er Versionen mit dem JDK 1.3 auch bei den meisten Skeptikern den
Durchbruch geschafft hat. Dieser hat sich mit den JDKs 1.4 und 5 gefestigt
und wird - aller Voraussicht nach - auch in den kommenden Versionen
weiter anhalten.
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Zwischen den Versionen 1.2 und 1.4 firmierten alle Java-Versionen
unter dem offiziellen Oberbegriff <i>Java 2 Platform</i> - im Unterschied
zu der zwar niemals explizit so bezeichneten, aber doch wohl gemeinten
»Java 1 Platform«, die aus den Versionen 1.0 und 1.1 bestand.
Parallel dazu wurden die Entwicklungssysteme dann nicht mehr JDK,
sondern <a name="ixa100058"><i>Java 2 SDK</i></a> genannt (SDK steht
für <i>Software Development Kit</i>). Mit dem folgenden Release
wurde bezüglich der Namensgebung erneut eine kleine Kurskorrektur
vorgenommen. Einerseits wurde die Versionsnummer 1.5 während
der Betaphase auf 5.0 erhöht (um - laut SUN-Website - das hohe
Maß an Reife, Stabilität, Sicherheit und Skalierbarkeit
der aktuellen Version zu dokumentieren). Andererseits wurde der Begriff
<i>JDK</i> rehabilitiert und darf nun auch »offiziell« wieder
verwendet werden (Begründung: »...due to significant popularity
within the Java developer community...«).
<p>
Seit der fünften Version setzt sich die - aus Sicht des Marketings
besser verwendbare - ganzzahlige Namenskonvention durch, bei der neue
Java-Version mit der nachfolgenden natürlichen Zahl gekennzeichnet
werden, während die »Zwischenversionen« kleineren Verbesserungen
und Bugfixes vorbehalten bleiben. Dieses Schema wurde in alle Java-Editionen
übernommen, die sich vor allem in Art und Umfang der enthaltenen
Bibliotheken unterscheiden. Ein Java-Entwickler kann sich zwischen
diesen Auslieferungen entscheiden:
<ul>
<li>Die <a name="ixa100059"><i>Java 6 Standard Edition</i></a>, von
der in diesem Buch die Rede sein wird.
<li>Die <a name="ixa100060"><i>Java 5 Enterprise Edition</i></a>,
mit der verteilte, unternehmensweite Business-Applikationen entwickelt
werden können. Die sechste Generation der Enterprise Edition
ist für das dritte Quartal 2008 geplant.
<li>Die <a name="ixa100061"><i>Java Micro Edition</i></a>, für
kleine Geräte wie Mobiltelefone und PDAs.
<li>Die <a name="ixa100062"><i>Java Card Edition</i></a> bringt Java
schließlich auf Kreditkarten-großen Smartcards unter.
</ul>
<p>
Die offizielle Bezeichnung der aktuellen Java-Version ist also <a name="ixa100059"><i>Java
6 Standard Edition</i></a>. Sie besteht aus
den Teilen <a name="ixa100017"><i>JDK</i></a> (voller Name <i>Java
6 Development Kit</i> und <a name="ixa100063"><i>JRE</i></a> (voller
Name <i>Java 6 Runtime Environment</i>). Während das JDK alle
Werkzeuge zum <i>Entwickeln</i> von Java-Programmen enthält,
bezeichnet das JRE die Laufzeitumgebung (oder <a name="ixa100064"><i>Virtuelle Maschine</i></a>)
um Java-Programme auszuführen. Wir werden meist von <i>Java 6</i>
oder der <i>Java 6 Edition</i> sprechen (weibliche Form (!)), insbesondere
wenn die aktuelle Version gemeint ist, mitunter aber auch den Begriff
<i>JDK</i> verwenden. Wenn nicht anders erwähnt, beziehen sich
alle Ausführungen in diesem Buch auf die Standard Edition.</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
<tr>
<td><font color="#FFFFFF"> Hinweis </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
</tr>
</table>
<hr>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
Wesley, Version 5.0.1
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100008.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100008.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100010.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100013.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">© 1998, 2007 Guido Krüger & Thomas
Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
</table>
<a name="endofbody"></a>
</body>
</html>
|