2010-08-27 10 views
16

Scala ist eine besondere Programmiersprache, da es sowohl JVM als auch CLR anspricht. Aber was sind die Vorteile? Ist es eine sinnvolle Alternative zur F # Sprache?Was bringt Scala in .Net?

+1

Verwandte Frage: http://stackoverflow.com/questions/168428/f-and-scala-comparison –

+3

Zuletzt schaute ich, Scala hat nicht einmal an der CLR seit Jahren geschweige denn verwendet worden. –

Antwort

13

Die meisten der Web-Suchhits, die ich von "Scala .NET" sehe, stammen aus 2008 oder Anfang 2009. Scala ist eine interessante Sprache, aber meine zugegebenermaßen kranke Ein informierter Eindruck ist, dass es keine "brauchbare Alternative" für eine industrielle .NET-Anwendung ist.

Ich sehe Leute im Vorbeigehen über das Schreiben von Apps, die über CLR und JVM portierbar sind, und es ist eine nette Idee in der Theorie, aber in der Praxis sehe ich keinen Beweis, dass jemand dies für Real getan hat. (Wenn Leute Beispiele kennen, posten Sie sie bitte.)

+5

+1 nur für die Verwendung der Wörter "für Reals" in einem Satz.: P –

+1

Für srslys (15 Zeichen) – Juliet

3

Der Vorteil für was verglichen?

Der Vorteil gegenüber einer anderen Sprache, die nur auf eine der großen Plattformen abzielt? Nun, Sie können auf beiden Plattformen laufen; Zugriff auf Bibliotheken von beiden Plattformen, ohne die Sprache zu wechseln;

Der Vorteil von .Net anstelle von JVM läuft? Wenn Sie in einer schweren .Net-Umgebung arbeiten, ist dies möglicherweise eher eine Voraussetzung als ein Vorteil.

Der Vorteil im Vergleich zu F #? Ich kenne F # nicht, aber wenn du in einer .Net-zentrischen Welt lebst, würde ich wissen, wie für F # einfacher verfügbar ist als für Scala auf der CLR. Also, wenn man davon ausgeht, dass die beiden Sprachen vergleichbar sind, würde ich lieber F #

9

Ich liebe Scala aber im gegenwärtigen Zustand seiner .NET-Implementierung wirklich: Ein großes NEIN. Es wurde seit einer Weile nicht aktualisiert. Die JVM-Version ist wirklich viel voraus. Ich sehe nicht, dass der .NET-Port von Scala in absehbarer Zeit so reif wird, dass er zu seinem JVM-Pendant passt.

Sie wären mit F # besser dran.

2

Soweit ich weiß, verwendet niemand wirklich Scala.NET noch. Wenn Benutzer Scala-Code auf .NET ausführen möchten, ist IKVM die beste Option. Und Scala funktioniert gut mit IKVM, aus allen Berichten.

Es gibt immer noch Arbeiten an Scala.NET, und es sieht so aus, als ob es (möglicherweise mit voller Unterstützung von Visual Studio) "irgendwann" funktionieren wird. This ist die informativste Ressource, Miguel Garcia ist derzeit bei LAMP angestellt und ich denke, dass er mit einem Microsoft-Stipendium finanziert wurde, um Scala.NET in den produktionsreifen Zustand zu versetzen. Aber das könnte falsch sein ... zumindest gibt es seit August 2010 Arbeit, also ist es nicht tot.

Aufgrund Stapelüberläufe "clever" Spam-Prävention, kann ich nur einen Link veröffentlichen. Sie müssen also nach "IKVM" und "IKVM scala" googlen, um mehr darüber zu erfahren. Die Verbindung, die ich eingeschlossen habe, ist am schwierigsten zu finden.

12

Scala auf .NET ist eine fortlaufende Anstrengung von Miguel Garcia geführt. Der neueste Stand ist, dass wir fast auf .NET booten können. Ich habe keine Zweifel, dass etwas Solides daraus entstehen wird, aber es ist immer noch zu früh, um Zusagen zu machen.

Auf lange Sicht sehe ich Scala nicht als Konkurrent zu F # oder C#. Es wäre schwierig, auf Augenhöhe mit Sprachen zu konkurrieren, die nativ von Microsoft unterstützt werden. Auf der anderen Seite sehe ich einige Attraktionen von Scala für Shops, die sowohl auf .NET als auch auf der JVM laufen wollen.

+0

Was ist das Problem mit der Konkurrenz mit F #? Oder um es anders auszudrücken: Wie weit ist es vom Bootstraping zu einer Arbeitssprache? –

+1

@Martin - Wird Scala eine erstklassige .NET-Sprache auf der CLR, wo ich einfach das vollständige .NET-Framework verwenden kann oder wird es wirklich nur Scala und die Java-Klassen sein, die IKVM.NET verwenden, um darüber zu laufen die CLR? Ist es nur eine Kompatibilitätslösung für die Ausführung von JVM-Anwendungen in der CLR, wenn sie benötigt wird, oder soll es eine aktuelle Sprache für .NET-Entwickler sein? – Justin