Ich habe gerade erst begonnen, mir die Neuimplementierung der Scala-Sammlungsbibliothek anzuschauen, die mit dem bevorstehenden 2.8-Release kommt. Diejenigen, die mit der Bibliothek aus 2.7 vertraut sind, werden feststellen, dass sich die Bibliothek aus einer Verwendungs-Perspektive wenig geändert hat. Zum Beispiel...
> List("Paris", "London").map(_.length)
res0: List[Int] List(5, 6)
...würde in beiden Versionen funktionieren. Die Bibliothek ist äußerst benutzerfreundlich: tatsächlich ist sie fantastisch. Allerdings müssen sich diejenigen, die früher nicht mit Scala vertraut waren und sich jetzt umsehen, um ein Gefühl für die Sprache zu bekommen, nun mit Methodensignaturen auseinandersetzen wie:
def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That
Für eine so einfache Funktionalität ist dies eine einschüchternde Signatur, bei der ich mich selbst dabei erwische, dass ich Schwierigkeiten habe, sie zu verstehen. Nicht, dass ich glaube, dass Scala jemals wahrscheinlich der nächste Java sein würde (oder /C/C++/C#) - ich glaube nicht, dass seine Schöpfer es auf diesen Markt abgesehen hatten - aber ich denke, dass es sicherlich möglich war/ist, dass Scala der nächste Ruby oder Python wird (d.h. eine bedeutende kommerzielle Benutzerbasis zu gewinnen)
- Wird das Leute davon abhalten, zu Scala zu kommen?
- Wird das Scala einen schlechten Ruf in der kommerziellen Welt als akademische Spielerei geben, die nur dedizierte Doktoranden verstehen können? Werden CTOs und Leiter von Software abgeschreckt?
- War die Neugestaltung der Bibliothek eine vernünftige Idee?
- Wenn Sie Scala kommerziell verwenden, machen Sie sich darüber Sorgen? Planen Sie, sofort auf 2.8 umzusteigen oder abzuwarten, was passiert?
Steve Yegge griff einmal Scala an (meiner Meinung nach fälschlicherweise) für das, was er als sein überkompliziertes Typsystem ansah. Ich befürchte, dass jemand eine Freude daran haben wird, mit dieser API FUD zu verbreiten (ähnlich wie Josh Bloch die JCP davon abhielt, Closures zu Java hinzuzufügen).
Anmerkung - _Ich möchte klarstellen, dass ich zwar glaube, dass Joshua Bloch maßgeblich am Ablehnen des BGGA-Closures-Vorschlags beteiligt war, dies meiner Meinung nach jedoch nichts anderes als seinen aufrichtig überzeugten Überzeugungen zuzuschreiben ist, dass der Vorschlag einen Fehler darstellte._
Ungeachtet dessen, was meine Frau und meine Kollegen mir immer wieder sagen, glaube ich nicht, dass ich dumm bin: Ich habe einen guten Abschluss in Mathematik von der Universität Oxford und arbeite seit fast 12 Jahren beruflich als Programmierer und seit etwa einem Jahr (ebenfalls beruflich) in Scala.
_Beachten Sie, dass der provokante Betreff ein Zitat über das Manifest einer britischen politischen Partei aus den frühen 1980er Jahren ist. Diese Frage ist subjektiv, aber es handelt sich um eine ernsthafte Frage, ich habe sie zur Community-Wiki gemacht und würde gerne einige Meinungen dazu hören._
10 Stimmen
Fud steht einfach für Angst, Unsicherheit und Zweifel - ich denke, das drückt ganz klar den Ton von Josh Blochs Rede aus, der ich auch zufällig zustimme, ist gut argumentiert und durchdacht usw. Wenn Sie die Bearbeitungen sehen, habe ich ursprünglich kein fud geschrieben, weil ich keine negativen Konnotationen implizieren wollte.
3 Stimmen
Ich sollte sagen, dass ich es zurückgestellt habe, weil ich befürchte, dass FUD über Scala verbreitet wird und ich nur sage, dass dies ähnlich ist zu dem, was Bloch in seiner Präsentation gemacht hat. (Wo eines seiner Argumente war "Warum nicht einfach Scala verwenden")
2 Stimmen
Der BGGA-Vorschlag hatte einige Schwergewichte dahinter. Aus meiner Sicht schien es, als würden Josh Blochs Meinungen einen großen Teil seiner Ablehnung ausmachen. Ich könnte natürlich falsch liegen - aber mit dem Respekt, den er genießt, glaube ich, dass er enormen Einfluss hat. Ich wollte sicherlich nicht Bloch irgendwelche Unehrlichkeit zuschreiben - ich werde das klarstellen.
32 Stimmen
Diese Frage wurde in Martin Oderskys Eröffnungsrede auf den Scala Days 2010 days2010.scala-lang.org/node/136 erwähnt
7 Stimmen
Was ich an Scala liebe, ist, dass man sein komplexes Typsystem nicht verstehen muss, um einfache und elegante Dinge zu tun. Seine Syntax kann abschreckend sein, aber sie versichert Ihnen eines, es gibt kein "magic" z.B. die Magie ist Teil der Sprache, es ist ein sehr mutiger und kluger Ansatz, denke ich, man hat eine Sprache, die neue DSLs und neue Mini-Sprachen innerhalb von sich selbst erstellen kann, ja, mit den falschen Händen kann Scala eine sehr feine Ergänzung zu Ihrem italienischen Abendessen sein, aber sobald man sich daran gewöhnt hat, ist es eine erstaunliche Sprache.
88 Stimmen
Wie kann diese Frage "nicht konstruktiv" sein, wenn sie dazu führte, dass @MartinOdersky die Benutzerfreundlichkeit von Scala neu bewertete und sein Dokumentationssystem dazu brachte, Details des Typsystems zu verbergen, ganz zu schweigen von einer aufschlussreichen Diskussion?
4 Stimmen
@Jerry101 Weil konstruktiv auf StackOverflow und konstruktiv im Allgemeinen unterschiedliche Dinge sind. Dies ist ein Diskussionsthema, keine gute SO-Frage.
14 Stimmen
Tatsächlich ist SO nur für Technik mit dem richtigen Format. Wenn Sie etwas Delikates, Intrigierendes und Weitreichendes haben, suchen Sie bitte woanders. Lang lebe die bürokratische Mentalität.
0 Stimmen
"fud" steht einfach für Angst, Unsicherheit und Zweifel - Ich glaube, das drückt ziemlich klar den Ton von Josh Blochs Vortrag aus, mit dem ich übereinstimme und der gut argumentiert und durchdacht ist usw. -- Das ist absurd. "gut argumentiert und durchdacht" stimmt überhaupt nicht mit "FUD" überein (de.wikipedia.org/wiki/Angst,_Unsicherheit_und_Zweifel)
0 Stimmen
Martin Odersky erwähnte die Komplexität von CanBuildFrom in seinem Neujahrsresolution von 2016: scala-lang.org/blog/2016/01/02/new-year-resolutions.html
1 Stimmen
@Jerry101 nicht jeder Satz, den wir mit einem Fragezeichen am Ende versehen, ist eine Frage? handelt es sich hier eher um einen Blogbeitrag oder ein Rant? Wenn die Absicht nur darin besteht, einen Flamewar zwischen zwei Meinungen anzuzetteln, benutze Reddit?
0 Stimmen
Paul Phillips Ansichten zur Scala-Sprache im Allgemeinen und zur Collections-Bibliothek im Besonderen ähneln denen, die in dieser Frage zum Ausdruck gebracht werden: youtube.com/watch?v=uiJycy6dFSQ
0 Stimmen
Es ist jetzt 2018 und ich kann Ihnen sagen, dass auch in diesem Satz etwas Wahres steckt, obwohl ich ein Fan von Scala bin. Hoffentlich bleibt diese Sprache bestehen und kann sich gegen neue Konkurrenten wie Kotlin behaupten.
0 Stimmen
@BlueSky Scala hat eine der steilsten Lernkurven, aber sobald man versteht, wie es funktioniert, möchte man nicht mehr zu Sprachen wie Java zurückkehren. Ich glaube, das ist die Stärke, die Scala am Leben erhalten wird.
0 Stimmen
9 Jahre später und Scala ist eine der zehn meistgenutzten Sprachen der Welt. Tatsächlich hat es Java, C++ in ihrem Bereich herausgefordert und ist auch gegen Python wettbewerbsfähig.
0 Stimmen
Im Gegensatz zu anderen Sprachen hat Scala alle Details in der Bibliothek. Haben Sie sich jemals gefragt, wie das Java-Serializable-Interface funktioniert oder die Enum-Klasse? Es fügt einfach Code zur Kompilierzeit hinzu. Ich würde sagen, das ist verwirrender.