Fashion Sale Hier klicken Jetzt informieren Neuerscheinungen Cloud Drive Photos Alles für die Schule Learn More saison Hier klicken Fire Shop Kindle Roosevelt Summer Sale 16

Kundenrezensionen

4,2 von 5 Sternen
14
4,2 von 5 Sternen
5 Sterne
11
4 Sterne
0
3 Sterne
0
2 Sterne
1
1 Stern
2
Ihre Bewertung(Löschen)Ihre Bewertung


Derzeit tritt ein Problem beim Filtern der Rezensionen auf. Bitte versuchen Sie es später noch einmal.

am 17. Juni 2015
Scala ist ein wichtiger Meilenstein bei der Fusion von funktionaler und objektorientierter Programmierung. Diese Fusion ist aber noch nicht abgeschlossen, sondern ein “Entdeckungs-Prozess", der noch ein paar Jahre andauern wird.

Um ein objekt-funktionaler Entwickler zu werden benötigt man momentan noch sehr viel Hintergrundwissen, weil man die Techniken und Methoden beider Paradigmen beherrschen muss. In Zukunft wird sich da eine Zwischenmenge bilden, so das der Einstieg leichter werden wird.

Ich persönlich kannte die funktionale Sprache Haskell und die Objektorientierung mit Java und Groovy auf der JVM sehr gut, hatte also weitreichende Vorkenntnisse. Aber trotzdem war das Buch eine doch fordernde Lektüre in der zweiten Hälfte.

Aber die Hauptaufgabe des Buchs - die Sprache Scala zu erklären - erledigen die Autoren meisterhaft. Sämtliche (damals implementierten Feature) werden ausführlich und verständlich erklärt. Das Buch ist auch jetzt nach 4 Jahren immer noch die beste Erklärung von Scala. Kapitel 25 z. B. enthält schöne fortgeschrittene Beispiele für die Integration eigener Datenstrukturen in das Collection-Framework ab Scala 2.8. Man benötigt allerdings Kenntnisse aus den Bereichen FP, OO und Java. Es ist kein Einsteigerbuch, sondern richtet sich an erfahrene Entwickler.

Ich habe dieses Buch jetzt dreimal gelesen, 2009 die erste Edition, 2011 die zweite und jetzt 2015 noch einmal. Das Buch kann man nicht gewinnbringend in einem Rutsch so durchlesen. Man muss zwischendrin stoppen und die Sprache ausprobieren, Beispiele erfinden und Scala am besten in Projekten verwenden. Nach dem ersten Mal 2009 habe ich bei manchen Teilen zuerst noch gedacht, “das ist so zu kompliziert, das brauche ich doch gar nicht” oder “die Syntax ist zu weit von Java entfernt, das will dann wieder kein Programmierer lernen”. Aber im Laufe der Zeit merkt man, dass sich viele Dinge mit Scala Traits, Klassen und Objekten sehr gut modellieren lassen, das Scala eine sehr elegante Sprache ist und das auch Kovarianz und Kontravarianz für die Implementierung eigener Kollektionen wichtig sind.

Das Buch ist 2010 erschienen, aber momentan nur in kleinen Teilen veraltet. GUIs erstellt man heute mit JavaFX und nicht mit Swing, die Skala-Aktoren sind deprecated. Leider fehlen natürlich auch wichtige Neuentwicklungen, wie z. B. die parallelen Collections (ab 2.9), Futures und Promises (2.10), Reflektions (2.10) und Makros. Auch die Frameworks Akka, Play und Spark gab es damals noch nicht und tauchen dementsprechend auch nicht auf. Sie würden den Rahmen des Buches allerdings auch sprengen.

Also: der Einstieg in Scala ist einfach, das Vorankommen dann aber erfordert Übung und man muss sich das Buch immer wieder zur Hand nehmen und Beispiele programmieren.

Scala ist eine sehr reichhaltige Sprache und dieses Buch ist nach wie vor der beste Einstieg. Es ist nicht immer einfach, aber es lohnt sich.
0Kommentar| 3 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 24. April 2012
Among the plethora of computing books swamping the markets few are as satisfying to read as 'Programming in scala'. The text is very much matter-of-fact and strikes a pleasant balance between depth and breadth. The newcomer to Scala will be able to derive from the book an overview of the language which is sufficient to get started. The language features are explained in full. However, even though the book seems to grow from edition to edition, many topics are only scratched at the surface. This is in particular true for specialized libraries such as XML, parsing, the test frameworks, or even the extensively covered collection framework. Once one has waded through the book, there remains a lot to discover - and as usual at that level of detail the available documentation becomes rather sparse.

Authors who introduce a programing language with its many grammatical features and its various libraries face the difficulty of including examples which must both be nontrivial and at the same time not overwhelm the text. The authors in 'Programming in Scala' have chosen to include few lengthy examples and mostly limit themselves to fractions of code which help understand the syntax. For a complete beginner to a functional language such as Scala this may make perusing, and then applying the book somewhat difficult. From own experience one will soon be tempted to complement the book with source code found elsewhere.

Those who approach this book with a sound knowledge of Java or C# or similar languages such find it easy to quickly progress beyond the first few chapters which explain the dreary fundamentals of the language. Here, a reader with a wish to be introduced to functional programming as such without the burden of details will be disappointed: Functional programming, in the guise of Scala, is only introduced step by step and in homeopathic doses. Thus those, who look for an introduction to functional programming as such or who wish to ignore the details and get right down to the cool possibilities the language offers to the expert will be disappointed.

'Programming in Scala' is thus a broad introduction to the language Scala which proceeds by (simple) example but keeps advanced examples to a bare minimum. Personally, I find the book a perfect vademecum which helps get one's feet wet with the language. Once you get down to writing real software, however, the book will soon become obsolete, and instead you will need to look at the actual API of the Scala-libraries, which are covered only at the surface.
0Kommentar| 3 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 5. Juni 2016
Der Autor scheint
programmierung als Kunst zu erleben. So bringt er die Konzepte auch rüber. Mir hilft es zu verstehen welche Hintergründe zu welchen Designentwcheidungen führen. Auch sprachlich (ich lese die englische Originalvereion) sehr gelungenes Buch.
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 2. Juni 2013
Am Anfang hat mich die Methode, Sprachkonstrukte erst oberflächlich und dann in späteren Kapiteln in die Tiefe gehend zu behandeln, irritiert. Sie ist aber notwendig, um die Beispielprogramme, die verschiedenste Sprachkonstrukte integrieren, zu verstehen. Deswegen sollte man das Buch auch von vorne bis hinten lesen. Dann hat man eine sehr schöne Einführung in Scala, die derzeit wahrscheinlich beste Programmiersprache für Anwendungsentwicklung. Diese Einführung eignet sich für alle mit einem Minimum an Programmierkenntnissen. Leser ohne theoretische Kenntnisse in funktionalen und objektorientierten Sprache sollten, wenn sie den Ehrgeiz haben, Scala optimal zu verwenden, hinterher ihre Wissenslücken füllen. Scala bietet nämlich viel mehr als Java und erfordert, wenn man über die, in der Berufspraxis leider oft geforderten Simpel Dimpel Programme hinausgehen will, sehr viel Wissen und Erfahrung.
0Kommentar| Eine Person fand diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 20. März 2014
Ich habe gemeinsam mit einem Kollegen einen Finance-Server (godotfinance) in Java-EE programmiert. Java-EE ist ein dicker, fetter Jumbo. Ein befreundeter Programmier hat mich auf das Play-Framework aufmerksam gemacht. Das schaut wesentlich eleganter aus. Play 2.0 ist in Scala programmiert. Das war die Motivation sich mit Scala näher auseinander zu setzen.
Das Buch ist eine sehr detaillierte Einführung in die Sprache. Für einen ersten Einstieg manchmal vielleicht sogar ein bisserl zu detailliert. Nachdem ich sonst über die Oberflächlichkeit der neuen Programmierbücher jammere, kann und will ich mich nicht beschweren, wenn jemand einmal ein sehr sorgfältig gemachtes Buch schreibt.

Die Sprache selbst hat mein Herz nicht erobert. Sie kommt mir eher wie eine akademische Übung vor. M. Odersky hat in die Sprache anscheinend alles hineingepackt, was er in den letzten Jahren über Type-Systemen geforscht hat. Ich verstehe nicht, warum man mit sprachlichen Geschützen auffährt, nur um ein paar triviale Tastenanschläge einzusparen. Laut dem Autor ist ein Scala Programm ungefähr halb so lang wie eine äquivalentes in Java. Auf den Fortschritt eines komplexen Projektes (wie z.B. ein Finance-Server) hat das keine nennenswerten Auswirkungen. In jedem halbwegs komplexe Projekt ist die Frage "welches Problem will man überhaupt mit welchen Methoden lösen" der dominierende Faktor. Die Frage, ob man bei einer Variablen noch den Datentyp hinzuschreiben muss oder nicht, ist vollkommen irrelevant. Beim Design von Scala wurden aber sehr viel Aufwand dafür verwendet. Das Ziel war eine streng typisierte Sprache die sich (fast) genauso wie die neuen nicht-typisierten Sprachen liest. "You can simply start by writing a function literal without the argument type, and, if the compiler gets confused, add in the type".

Meiner Meinung nach ist die neue Mode von dynamischen nicht typisierten Sprachen ein Beispiel dafür, was Alan Kay unlängst abwertend als Pop-Culture in Programming bezeichnet hat. Jeder alter Hase der einst in Basic ganz grausliche Bugs produziert hat, weil er statt "enpassantSqr" fälschlicher Weise "enpasantSqr" getippt hat, kennt aus leidvoller Erfahrung den Sinn von Type-Checking. Wer Fortran programmiert hat weiss, dass einrücken keine besonders gute Idee zur Strukturierung eines Programmes ist. In Coffeescript wird das als grosse Errungenschaft gefeiert.
Eine Popkultur besitzt jedoch kein Gedächtnis und es muss jede neue Generation aufs Neue auf die Nase fallen.
Einige Scala Konzepte wie z.B. Parser-Combinators sind sicherlich sehr nett um z.B. CHIEF (Chrilly's Easy-Finance-Language) zu implementieren. Für time-series analysis sehe ich hingegen keinen Vorteil gegenüber Java oder C. Es kommt halt immer auch darauf an, was man mit einer Sprache machen will. Scala hat auch einige Anleihen an LISP genommen (die unnötigen Klammern aber weggelassen). Dementsprechend werden Listen auch im bevorzugten Stil rekursiv abgearbeitet. Auch wenn der Autor behauptet "so ineffizient ist das gar nicht" beutelt es mich bei dieser Idee. LISP-Schachprogramme auf einer Workstation hatten gegen Assembler-Programme auf einem Waschmaschinen-Controller nicht den Funken einer Chance. Genaugenommen haben LISP-Schachprogramme nie richtiges Schach gespielt. Auf die Idee dafür LISP zu verwenden, sind auch nur akademische Teams gekommen. Die Profis haben immer Assembler und später dann auch C verwendet.

Eine wesentlich gelungere und um eine Grössenordnung einfachere neue Sprache ist Go. Leider gibt es meines Wissens kein entsprechendes Go-Framework.

Ich habe das Buch dennoch mit einigem Vergnügen gelesen. Auch wenn man mit den Prämissen nicht accord geht, ist es sehr spannend einen Einblick in die innere Logik dieser Sprache zu bekommen. Der Autor hat sich sowohl bei der Sprachkonzeption als auch bei der Abfassung dieses Buches einiges gedacht.
22 Kommentare| 5 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 16. Juli 2014
Die ersten Kapitel geben eine einfache Einführung in Scala, inklusive dessen "Denkweisen", die folgenden bilden ein ausführliches Nachschlagewerk, dass durch sehr gute Beispiele perfektioniert wird. Jede neue Information ist in einen neuen Abschnitt eingefügt, so dass man alle Schritte und Ideen einfach nachvollziehen kann und gleichzeitig genau die Info findet, die man sucht (ohne viel drum rum verstehen zu müssen).
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 12. März 2014
=================
Vorbemerkungen
=================
Ich habe gerade das große Vergnügen, mich in "Scala" einarbeiten zu dürfen. Wobei es mir dann auch darum geht, den hybriden objektorientiert-funktionalen Programmierstil in Java ( gerade mit Blick auf die neuen Lambda-Expressions) zu reapplizieren.

=================
Inhalte
=================
* Die Inhalte (Typsystem, Kontrollstrukturen, Collections, etc.) werden, gerade in den Anfangskapiteln, sehr behutsam dargelegt, so daß man mit der Komplexität von Scala nicht überfordert wird. Es bietet sich dabei an, die Code-Beispiele in einer Programmierumgebung wie der Eclipse-basierten Scala IDE (-> Downloadmöglichkeit von der offiziellen Scala-Website: scala-lang[dot]org) selbst durchzuspielen, weil reines Lesen einfach zu sehr an der Oberfläche bleibt. Das um so mehr, weil die Scala-Syntax für Java-Programmierer/innen am Anfang relativ "gewöhnungsbedürftig" ist.

* Insgesamt werden die Inhalte ausführlich und durchdacht präsentiert -> ich bin beeindruckt!

=================
Schreibstil / Englisch
=================
Wer in Englisch einigermaßen fit ist, für den dürfte die Lektüre easy going sein. Der gewählte Schreibstil ist dabei "sehr angenehm nüchtern". Kein Blabla, kein Larifari, keine doofe Witzchen oder Bildchen.

=================
Ist dieser Text zum Scalalernen
geeignet?
=================
Durchaus. Aber m.E. ist der Text dafür nicht die erste Wahl.

* Wer in Java fit ist, kommt wohl mit Cay Horstmann (2012), "Scala for the Impatient" schneller voran. "Programming in Scala"
sollte dann primär als Nachschlagewerk fungieren, wobei man bei anspruchsvolleren Projekten soundso nicht darum kommt, sich
die Scala API genau anzuschauen.

* Martin Odersky bietet auf coursera[dot]org den kostenlosen 7-wöchigen Kurs "Functional Programming Principles in Scala" (geschätzter Arbeitsaufwand: 5-7 h pro Woche) an. Dieser Kurs ist seit 2013 das ganze Jahr über frei belegbar, wobei dann weder Übungsaufgaben zur Bewertung eingereicht werden können, noch ein Zertifikat erworben werden kann. Beides ist jedoch möglich, sobald der Kurs auch "offiziell" betreut wird (das ist anscheinend 1x pro Jahr der Fall. Nächster offizieller Kursbeginn ist bspw. Ende April 2014).
Dieser Kurs hangelt sich weitgehend an den Buchinhalten entlang, wobei es zu jeder Themeneinheit ein entsprechendes Video
gibt. Zum Einstieg in Scala finde ich das die beste Methode, wobei ich ggf. immer in "Programming in Scala" nochmals etwas nachlese bzw. die Codebeispiele selbst nachprogrammiere.

Kurzum: Der Online-Kurs ist ideal, um sich schnell einen Überblick in Scala zu verschaffen. "Programming in Scala" kann dann zur Vertiefung bzw. als späterer Referenztext (auf dem Schreibtisch) dienen.

~~~~~
Fazit
~~~~~
* Als Nachschlagewerk ist "Programming in Scala" die erste Wahl!

* Zum effizienten Scala Einstieg sind Oderskys coursera-Kurs (mit / ohne Zertifikat) bzw. (für erfahrene Java-Programmierer) "Scala for the Impatient" wohl vorzuziehen, weil man da einfach schneller in die Gänge kommt. Aber als Referenztext kommt "Programming in Scala" dann doch wieder zum Zuge. Es geht also darum, einer Sowohl-Als auch-Strategie zu folgen.

~PB
0Kommentar| 2 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 1. September 2014
It's a very comprehensive book, additionally very concise and good to read - and it contains very good examples to understand the background of the language and certain design-decisions.
If you are interested in Scala, this is for sure the perfect entry-point...
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 5. Mai 2014
Eine gute und verständliche Übersicht über die Programmiersprache mit recht vielen und verständlichen Beispielen. Vor allem die Vergleiche zu Java sind sinnvoll. Auf diese Art und Weise schafft man etwas Vertrautheit. Ferner ist es gut, dass zwar die Vorteile von Funktionaler Programmierung hervorgehoben werden, aber dennoch eingestanden wird, dass manchmal Imperative Programmierung sinnvoller ist.
0Kommentar|War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 17. August 2011
Das Buch liefert eine umfassende und leicht verständliche Erklärung der Programmiersprache Scala. Im Vergleich zu Piepmeyers "Grundkurs funktionale Programmierung mit Scala" ist das vorliegende Buch von Odersky um Längen besser. Ich habe mir zuerst das Piepmeyer-Buch zugelegt - darin blieben dann aber so viele Fragen offen, dass ich mir doch noch das Odersky-Buch gekauft habe.
0Kommentar| 2 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden