Was ist die beste Sprache / Plattform für SOA unter Linux in einer Post-Java-Welt?

8

Ich muss eine Sprache / Plattform für die Neuentwicklung einer Reihe von Diensten in einer SOA wählen. Ich schaue mir Scala und Clojure an, glaube aber nicht, dass die Community und die Produkte reif genug für ein echtes Enterprise-Produkt sind.

Aktualisierung / Erläuterungen:

  1. Natürlich können wir viele Sprachen / Plattformen für SOA verwenden, aber einige Sprachen / Plattformen sind einfacher und besser für eine SOA geeignet. IMO die besten für SOA sollten Interface-Programmierung ermöglichen (um die Definition von Verträgen zu erleichtern), sollte Optionen für das Hosting der Dienste (wie Felix für Java oder WCF in .NET) und gut skalieren (siehe Twitter-Probleme mit RoR).
  2. Java war schon immer der Favorit auf dem Enterprise-Markt. Viele Entwickler beschäftigen sich jedoch mit dynamischen Sprachen und sprechen über Stagnation von Java nach v6. Als Folge sind viele neue Post Java Sprachen angekommen: Scala, Clojure und Groovy, um einige zu nennen, die immer noch auf JVM laufen, aber nicht Java sind.

Ich hoffe, dass diese die Frage klären.

    
Khash 18.01.2011, 13:35
quelle

3 Antworten

17

Hängt davon ab, was Sie mit "reif genug für ein Unternehmensprodukt der realen Welt" und Ihrer relativen Toleranz für das Leben an der Schneide verstehen.

Zum Beispiel baue ich gerade ein "reales Unternehmensprodukt" in Clojure (ich wäre mit Scala genauso glücklich gewesen, es war nur, dass Clojure meine Bedürfnisse etwas besser aus der Parallelitäts- und Metaprogrammierperspektive passte ).

Ich bin sehr glücklich mit meiner Entscheidung.

Einige schnelle Perspektiven, wenn Sie diesen "Post-Java" -Pfad betrachten:

  • Die Communities sind großartig und unterstützend, aber Sie müssen immer noch Probleme selbst lösen, schon allein deshalb, weil noch niemand auf dasselbe Problem gestoßen ist. Keines davon ist wahrscheinlich unüberwindbar, aber es birgt ein gewisses zusätzliches Risiko für Lieferpläne.

  • Sowohl Scala als auch Clojure können sehr produktiv sein (in Bezug auf den Wert, der den Kunden pro Stunde zur Verfügung steht), aber Sie können auch schlecht und nicht überwachbaren Code in jeder Sprache schreiben. Java zwingt Sie ziemlich dazu, Dinge in einer standardisierten, etwas ausführlichen aber syntaktisch einfachen und verständlichen Weise zu schreiben. Mit Scala und Clojure bekommst du ein ganz neues Arsenal an verrückten Möglichkeiten, dein Ziel zu treffen oder dich in den Fuß zu schießen. Wird Ihr Team die Vorteile von Scala / Clojure optimal nutzen können?

  • Es ist schwieriger (wenn auch nicht unmöglich), erfahrene Leute mit den vorhandenen Clojure / Scala-Fertigkeiten an Bord zu bringen. Auf der anderen Seite sind die Leute, die diese Fähigkeiten haben (oder sie gerne erwerben möchten) wahrscheinlich zu den talentiertesten / motivierten Entwicklern gehören, so dass die Suche immer noch produktiv sein kann.

  • Bereiten Sie sich darauf vor, schwierige Entscheidungen zu treffen, ob Sie auf Sprach- / Bibliotheksfunktionen abzielen, die "gleich um die Ecke" sind. Warten Sie zum Beispiel auf die verbesserte primitive Unterstützung in Clojure 1.3? Oder mit den vollkommen adäquaten, aber langsameren Boxed-Primitiven Funktionen in Clojure 1.2 auskommen?

  • Ein großer Vorteil der JVM besteht darin, dass Sie das Java-Ökosystem weiterhin nutzen können, ohne an Java als Sprache gebunden zu sein. Unterschätzen Sie nicht, wie nützlich das ist: Ich verwende zum Beispiel eine Reihe von sehr gut getesteten, ausgereiften Java-Bibliotheken (zB Netty ) ziemlich transparent in meiner Clojure-Anwendung. Dies reduziert signifikant Ihr Risiko und die Menge der neuen Entwicklung, die Sie tun müssen.

mikera 18.01.2011, 18:19
quelle
1

Im Moment (nachdem ich gerade ein Service- / Integrationsprojekt abgeschlossen habe) steht Jersey oben auf Spring ganz oben auf meiner Favoritenliste für Web-Services.

Ich kann keine Vorschläge für ein SOA-Framework machen, das letzte Mal, als ich an solchen Dingen beteiligt war, nutzen wir Oracle BPEL Process Manager und ich habe gemischte Gefühle darüber. Wir haben REST dann auch nicht verwendet und ich bin mir nicht sicher, wie gut die Oracle-Software damit arbeitet.

    
Qwerky 18.01.2011 14:38
quelle
1

Für mich scheint Python der einfachste Weg, um SOA zu machen und Interoperabilität mit Windows-Computern zu haben. Ich habe keinen Frameworks-Namen, aber es gibt viele davon in SOAP, REST, RPC ...

    
ykatchou 18.01.2011 14:43
quelle