Scala oder Clojure

bronkowitz

Aktives Mitglied
Hallo!
Ich hatte vor mich mit Scala beschäftigen um die nebenläufige Programmierung zu nutzen, also um meine Programme (technische Berechnungen) zu beschleunigen. Und ein bißchen auch aus Neugier.
Jetzt habe ich aber schon öfter gelesen, dass Clojure in Bezug auf die Multiprozessor-Nutzung besondere Stärken hat. Wenn es hauptsächlich darum geht, sollte man dann eher Clojure lernen?
Was mir bei beiden Sprachen außerdem nicht ganz klar ist: Macht man die GUI-Entwicklung dann auch in Scala/Clojure oder nutzt man dafür dann wieder JAVA? Und läßt sich das ganze in einer IDE wie NetBeans bearbeiten? Für Scala scheint das wohl so zu sein, bei Clojure habe ich da nicht so richtig rausgekriegt.
Gruß,
bronkowitz
 

Landei

Top Contributor
Hallo!
Ich hatte vor mich mit Scala beschäftigen um die nebenläufige Programmierung zu nutzen, also um meine Programme (technische Berechnungen) zu beschleunigen. Und ein bißchen auch aus Neugier.
Jetzt habe ich aber schon öfter gelesen, dass Clojure in Bezug auf die Multiprozessor-Nutzung besondere Stärken hat. Wenn es hauptsächlich darum geht, sollte man dann eher Clojure lernen?
Meiner Meinung nach ist Erlang die Mainstream-Sprache, die am Besten mit allen Arten von paralleler Verarbeitung umgehen kann (es gibt übrigens einen JVM-Port namens Erjang). Clojure hat einige sehr clevere unveränderliche Datenstrukturen, die aber teilweise schon nach Scala übernommen wurden. Scala bietet eine erlang-artige Actor-Bibliothek (es gibt weitere Bibliotheken wie Akka) und wird im kommenden Release 2.9 (von dem schon ein RC vorliegt) parallele Datenstrukturen erhalten. Meiner Meinung nach kann man sowohl mit Clojure als auch mit Scala sehr gut parallele Anwendungen schreiben, jedenfalls wesentlich komfortabler als mit Java. Je nach Einsatzgebiet wird mal die eine, mal die andere Sprache "besser" geeignet sein, außerdem ist das auch immer etwas Geschmackssache. Ich persönlich finde Clojures Syntax sehr gewöhnungsbedürftig und komme besser mit Scala zurecht, das auch sehr gut mit Java kommunizieren kann. Clojure ist nicht objektorientiert, so dass es immer "Reibungsverluste" bei der Nutzung von Java-Bibliotheken geben wird, auch wenn solche Probleme prinzipiell lösbar sind. Mit Clojure (oder Erlang) legt man sich auf funktionale Programmierung fest, während man in Scala die Auswahl zwischen den Paradigmen hat, und sich viele interessante Synergien zwischen Objekten und Funktionen finden lassen. Wenn für dich .NET eine Option ist, wäre übrigens die Sprache F# eine interessante Alternative zu Clojure.

Was mir bei beiden Sprachen außerdem nicht ganz klar ist: Macht man die GUI-Entwicklung dann auch in Scala/Clojure oder nutzt man dafür dann wieder JAVA? Und läßt sich das ganze in einer IDE wie NetBeans bearbeiten? Für Scala scheint das wohl so zu sein, bei Clojure habe ich da nicht so richtig rausgekriegt.
Gruß,
bronkowitz

Zur Clojure-GUI kann ich nichts sagen. Scala kann prinzipiell ohne (ernsthafte) Einschränkungen Java-Klassen verwenden, du kannst also wie gewohnt in Swing oder SWT loslegen. Darüber hinaus gibt es das Package Scala-Swing, das einen (noch nicht ganz vollständigen) Wrapper um Swing anbietet, und so die Arbeit mit Swing mehr nach Scala-Art erlaubt (z.B. ein Event-Handling, das Pattern-Matching benutzt).
 
Zuletzt bearbeitet:

bronkowitz

Aktives Mitglied
OK, dann gehe ich zumindest mit Scala nicht den falschen Weg. Hatte ich auch gehofft, da mir Clojure etwas kryptisch vorkommt.

Besten Dank!
Gruß,
bronkowitz
 

Landei

Top Contributor
Ich kenne bisher keines der deutschsprachigen Bücher. Ich muss meine Links mal auf wieder auf den Stand bringen, im letzten halben Jahr ist die Anzahl Scala-Bücher geradezu explodiert: Books on Scala | The Scala Programming Language

"Programming in Scala" (Odersky, Spoon, Venners) gilt als Referenz. Ich hatte die erste Ausgabe als eBook gekauft: anspruchsvoll, manchmal etwas knapp, aber relativ vollständig und verständlich geschrieben. Ähnliches gilt für "Programming Scala" (Wampler, Payne). "Beginning Scala" (Pollak) wendet sich an Anfänger und ist meiner Meinung nach zwar für die Grundlagen in Ordnung, aber insgesamt zu kurz und recht oberflächlich. Wenn du eines der deutschen Bücher kaufst, wäre ich sehr an deiner Meinung interessiert (vielleicht als Rezension für mein Blog).

Fast alle Bücher wenden sich an Scala-Anfänger (außer die für spezielle Gebiete wie "Actors in Scala"), aber die meisten setzen Programmier-Erfahrung vorraus, sind also für "Umsteiger" gedacht. Wenn du etwas Java kannst, sollte das aber kein Problem sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Unterschied funktionial <-> OO anhand von Scala <-> Java JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
M Experten für Scala-Play- Programmierung gesucht!! JVM Sprachen: Kotlin, Scala, Groovy, Jython... 3
M Scala-Programm mit Netbeans compilieren JVM Sprachen: Kotlin, Scala, Groovy, Jython... 1
M Suche Scala Entwickler (Umsteiger [JAVA]) für Zusammenarbeit an privatem Projekt JVM Sprachen: Kotlin, Scala, Groovy, Jython... 7
R Frage zu Scala Code JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
Landei Scala Scala 2.10 RC JVM Sprachen: Kotlin, Scala, Groovy, Jython... 3
schlingel Scala Schulung - Gratis vom Scala-Schöpfer JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
Landei Scala Scala-Kritik JVM Sprachen: Kotlin, Scala, Groovy, Jython... 151
Spin Scala Eclipse IDE JVM Sprachen: Kotlin, Scala, Groovy, Jython... 7
Spin Funktionen vs Methods in Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 9
Landei Scala Freies eBook "Scala for the impatient" JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
Spin Arithmetik in Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 32
0x7F800000 Numerik in Scala (Performance) JVM Sprachen: Kotlin, Scala, Groovy, Jython... 14
Spin Scala MenuListener JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
Spin Scala in Eclipse will nicht. JVM Sprachen: Kotlin, Scala, Groovy, Jython... 15
Landei Scala Deutsches Scala-Tutorial JVM Sprachen: Kotlin, Scala, Groovy, Jython... 3
Landei Scala "Programming in Scala" - erste Ausgabe kostenlos JVM Sprachen: Kotlin, Scala, Groovy, Jython... 1
W Scala *.Scala to *.jar JVM Sprachen: Kotlin, Scala, Groovy, Jython... 6
H Scala und Aspekte JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4
S Scala Klasse.class in Scala? JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4
B Scala Scala und Netbeans GUI Editor JVM Sprachen: Kotlin, Scala, Groovy, Jython... 15
S Scala: Parser und Lexical JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
D Wie manche ich das in Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 12
S Scala: Static - Konstruktor?? JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5
G Scala IDE JVM Sprachen: Kotlin, Scala, Groovy, Jython... 18
A Scala und J2ME JVM Sprachen: Kotlin, Scala, Groovy, Jython... 2
S Scala Fragen zu Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 21
D (Mathe-) Vektoren in Scala JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4
Landei Scala im Kommen :-) JVM Sprachen: Kotlin, Scala, Groovy, Jython... 4
M [Clojure] Code Style + Einfachere Lösung? JVM Sprachen: Kotlin, Scala, Groovy, Jython... 5

Ähnliche Java Themen

Neue Themen


Oben