News

Donnerstag, 26. August 2010 | News

Scala-Erfinder Martin Odersky zum Vorwurf: "Scala ist zu komplex"

(Link zum Artikel: http://www.it-republik.de/jaxenter/news/056746)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Ist Scala zu komplex für den durchschnittlichen Entwickler?

Diskussionen darüber, ob die Mächtigkeit der derzeit viel zitierten Scala-Sprache nicht auf Kosten einer steilen Lernkurve gehe, werden in Entwicklerblogs kontrovers geführt ([1], [2], [3], [4]).

Scala-Erfinder Martin Odersky hat sich nun persönlich zu Wort gemeldet und hält – wie sollte es auch anders sein – ein Plädoyer für die Einfachheit und Eleganz von Scala.

Drei bildhafte Vergleiche stellt Odersky in seinem Blogeintrag an.

Im Vergleich zu anderen Sprachen sei Scala eher wie ein Smartphone, weniger wie ein Morsegerät. Scalas Compiler und einige der Kernbibliotheken seien äußerst komplizierte Technologien. Dennoch sei Scala denkbar anwenderfreundlich und wirke für viele Entwickler befreiend.

Im Vergleich zu anderen Sprachen sei Scala eher wie ein Legospiel, weniger wie ein Playmobilset. Scala beinhalte eine überschaubare Menge an Konzepten (vergleichbar mit Haskell und OCaml, etwas weniger als Java 5, viel weniger als C# und C++). Diese Konzepte seien allerdings so allgemein und orthognal, dass sie auf vielfache Weise miteinander kombiniert werden könnten – flexibel wie Legosteine eben und nicht starr wie Playmobil-Figuren.

Doch Turing-vollständig sind doch die meisten Sprachen – beliebige Probleme lassen sich also mit allen Sprachen lösen!

Im Vergleich zu anderen Sprachen sei Scala aber eher wie ein Lego-Technik-Set, weniger wie die globigen Duplo-Legosteine. Scala führe zu kürzeren Lösungen als mit anderen Sprachen.

Bedeutet das nicht, dass Scala dann auch schwerer zu verstehen ist, da jede Scala-Codezeile doch mehr Arbeit verrichten muss?

Odersky verweist auf eine Studie der École Polytechnique Fédérale von Lausanne, die mittels eines Augen-Tracking-Systems empirisch nachgewiesen haben will, dass Scala-Programme im Allgemeinen schneller erfasst werden als Programme in anderen Sprachen.

Odersky schließt mit der Bemerkung, dass die Debatte "Einfachheit vs. Komplexität" selbst nicht so simpel ist.

There are many dimensions to simplicity and complexity. Often, in a discussion each participant has a different notion of what they mean. Martin Odersky

(hs)

Anzeige

Kommentare

Gravatar Chris 27.08.2010
um 07:50 Uhr
Ich finde die Lernkurve bei Scala enorm. Habe versucht mit Hilfe von "Programming in Scala" einen Einstieg zu finden und finde die Lernkurve aufgrund des teilweise sehr kompakten Codes sehr steil. Der Umstieg auf was funktionales in der Kürze des Codes ist schon heftig, weil man neben der neuen Syntax auf eine Art der Programmierung lernen muss. Das ist nix, was man mal zwei Stunden nebenher macht und dann wird das schon... Mir persönlich wäre was funktionales, aber geschwätzigeres für den Einstieg lieber. Vielleicht eine Frage des Geschmacks. #zitieren
Gravatar HAL 9000 27.08.2010
um 07:58 Uhr
Dass funktional gut mit sprechend einhergehen kann, zeigt Ruby sehr deutlich. Möglicherweise ist Scala hier etwas strenger in seinen Prinzipien, aber Ruby ist viel natürlicher (auch lange nicht perfekt, keine Frage).
Aber auch das ist natürlich zum Teil eine Frage des persönlichen Geschmacks ;-)
#zitieren
Gravatar steve 27.08.2010
um 20:42 Uhr
@Chris:
Hey, so können sich Geschmäcker unterscheiden!
"Programming in Scala" war quasi mein Einstieg in die "funktionale Denke" ...
Ich zähle das Buch echt zu einem der bestgeschriebensten Bücher der "Programmier"-Literatur.

Ich muss allerdings dazusagen, dass ich das Buch nicht in einem Rutsch durchgelesen habe, sondern zuerst die ersten 100 Seiten und danach je nach Interesse dann von Thema zu Thema gesprungen bin.

Wenn man zu Beginn nicht alles versteht, ist das nicht schlimm, ich hab manche Kapitel aus Interesse drei- oder viermal gelesen (Varianz) und manche garnicht (Parser-Zeug).

Gerade die knappen Beispiele fand ich eigentlich super, hab davor ein C++-Buch gelesen und ich war total angeödet von seitenlangen Code-Listings aus denen man dann die Unterschiede zum vorherigen seitenlangen Code-Listing "herauspopeln" musste.

Naja, Kopf hoch und durchhalten! :-)
(Und immer die REPL offen haben zum ausprobieren! Ganz wichtig! So lernt man mMn am besten!)
#zitieren
Gravatar James 28.08.2010
um 14:40 Uhr
@Chris
Genau das ist es nämlich man muss "durchhalten" die Sprache macht mir irgendwie keinen Spaß :-( Weder das schreiben noch das durchlesen... Kann mich noch genau erinnern wie ich von C++ auf Java umgestiegen bin und Java hat mir von Anfang an einen Rießen Spaß gemacht... das fehlt mir ein wenig an Scala vielleicht werde ich auch einfach nur alt :-)
#zitieren

Folgende Links könnten Sie auch interessieren

zurück zum Seitenanfang