---
title: 'Buchkritik: Wicked Cool Java: Code Bits, Open-Source Libraries, and Project Ideas'
url: 'https://tutego.de/blog/javainsel/2013/04/buchkritik-wicked-cool-java-code-bits-open-source-libraries-and-project-ideas'
markdown: 'https://tutego.de/blog/javainsel/2013/04/buchkritik-wicked-cool-java-code-bits-open-source-libraries-and-project-ideas.md'
date: '2013-04-14'
description: 'Brian Eubanks; ISBN-10: 1593270615; No Starch Press; 15.11.2005; 248 Seiten Mit dem Buch hat Brian eigentlich das gemacht, was sich jeder Autor wünscht: sich hinzusetzen und einfach mal im Artikelstil über alles zu schreiben, was einem interessiert, ohne darauf zu achten, ob das nützlich oder wicht…'
taxonomy:
  category:
    - Rezension
---

# Buchkritik: Wicked Cool Java: Code Bits, Open-Source Libraries, and Project Ideas

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Buchkritik: Wicked Cool Java: Code Bits, Open-Source Libraries, and Project Ideas

14.04.2013 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

Brian Eubanks; ISBN-10: 1593270615; No Starch Press; 15.11.2005; 248 Seiten Mit dem Buch hat Brian eigentlich das gemacht, was sich jeder Autor wünscht: sich hinzusetzen und einfach mal im Artikelstil über alles zu schreiben, was einem interessiert, ohne darauf zu achten, ob das nützlich oder wichtig ist. Dafür nimmt er sich 8 Kapitel Zeit: Chapter 1: Java Language and Core API, Chapter 2: `String` Utilities, Chapter 3: Processing XML and HTML, Chapter 4: Crawling the Semantic Web, Chapter 5: Math and Science, Chapter 6: Graphics and Data Visualization, Chapter 7: Multimedia and Sychronization, Chapter 8: Fun, Integration and Project Ideas. Im Grunde ist nur das erste Kapitel ein kleines Einstiegskapitel, insbesondere in die Neuerungen von Java 5, und zusammen mit dem zweiten Kapitel haben sie die Java SE selbst zum Inhalt. Das Niveau ist an Anfang niedrig und passt nicht zum Rest. Syntaktisch ist nicht immer alles sauber, so gibt es immer wieder umständliche Feldinitialisierungen wie int\[\] `theList` = new int\[\]{2,3,5,7}; oder `java.util.Random` random = new `Random`(); wo ich mich Frage, ob der Autor dort gerade wach war. Dann wird assert geklammert wie eine Methodenaufruf, das ist aber nur in C so, nicht in Java, wo assert ein Schlüsselwort ist und der Ausdruck nicht geklammert wird. (Macht Krüger im Buch aber leider auch so.) Leider sind auch nicht alle Beispiele konsequent auf Java 5 ausgelegt, immer wieder findet sich der Raw-Type etwa von Datenstrukturen, bei seinen verketten Listen-Implementierung oder mit verketteten Knoten wiederum fehlt ein Generic, hier steht nur `Object` content. An anderer Stelle im Buch gibt es den Hinweis, das ein Listing mit Generics auf der Buchseite ( ist, warum nicht gleich im Code? Mit Generics scheint Brian auch noch nicht so vertraut zu sein, anders kann ich mir nicht erklären, warum er eine Methode `removeMatches`(`List`<Number> `aList`) schreibt, denn man muss verstehen, da man so etwas nicht zum Beispiel mit einer `List`<Double> aufrufen kann; eleganter wäre ein Typ-Bound er Art `List`<? extends Number> hin. Weiter: Statt `StringBuilder` kommt noch `StringBuffer` zum Einsatz. Nicht gut gefällt mir auch der Bezug auf konkrete Klasse, statt Basistypen, etwa bei `ArrayList`<`String`> `getNames()`, hier würde als Rückgabe auch `List` oder `Collection` reichen. (In dem gleichen Beispiel ist auch unglücklich den `Scanner` auch nicht im finally zu schließen. Und `getFloat()` statt `getDouble()` zu nehmen ist auch Geschmackssache.) Bei den Farben verwendet der Autor noch die klein geschriebenen Namen also Color.blue statt Color.BLUE. Sehr geschwätzig ist auch if ( … ) { return `true`; } else { return `false`; } — das ist uncool. Im Mittelpunkt des Buches geht es um wilde Open-Source Bibliotheken, etwa für mathematische Operationen, Textanalyse, Suche (nicht wild), semantische Netze, RDF, MIDI-Sounds. Eigentlich nichts, was man wirklich/dringend/oft bräuchte, und wenn, würde man vermutlich in ein spezielles Buch schauen. Positiv ist anzumerken, dass uns der Autor die Libs vorstellt und des Lesers Horizont erweitert. Ein Probekapitel gibt es nicht online, allerdings unter eine Linkliste der Bibliotheken. April 2013

Kategorien: [Rezension](https://tutego.de/blog/javainsel/category/rezension/)

## 4 Kommentare

**piez** · [18.04.2013 02:29](#comment-4528)

Ah, ok, jetzt versteh' ich's. Danke!

**Christian** · [17.04.2013 19:34](#comment-4527)

Na entweder hat man ein import (wie bei new Random) oder eben nicht und qualifiziert vollständig (java.util.Random), aber beides gleichzeitig ist unsinnig.

**piez** · [17.04.2013 14:32](#comment-4526)

Auch wenn's vielleicht eine dumme Frage ist: Was stimmt mit `java.util.Random random = new Random();` nicht?

**Ask** · [15.04.2013 12:43](#comment-4523)

\>> Sehr geschwätzig ist auch `if ( … ) { return true; } else { return false; }` — das ist uncool. Das ist cool zum Debuggen. Ansonsten benötigt man uU ein Breakpoint Condition und das wird langsam, je nach Anzahl Aufrufe. Was ich uncool finde ist dass nicht explizit von Assertion abgeraten wird. Die Java Programmierer bei Google sind wahrscheinlich auch nicht über alles erhaben, sie machen aber vieles richtig vor, z.B. das nicht verwenden von assert.

Die bisherigen Kommentare wurden aus WordPress übernommen. Neue Kommentare sind derzeit geschlossen.

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Assertions feiner aktivieren oder deaktivieren](https://tutego.de/blog/javainsel/2013/04/assertions-feiner-aktivieren-oder-deaktivieren.md)
- Next: [Java 8 könnte auf 18. März 2014 verschoben werden, wäre dann aber “Der Profi”](https://tutego.de/blog/javainsel/2013/04/java-8-knnte-auf-18-mrz-2014-verschoben-werden-wre-dann-aber-der-profi.md)
