Reif? Scala für Enterprise-Applikationen

  • 663 views
Uploaded on

Diese Präsentation gibt eine Antwort auf die Frage, ob man Scala in Enterprise-Anwendungen verwenden kann.

Diese Präsentation gibt eine Antwort auf die Frage, ob man Scala in Enterprise-Anwendungen verwenden kann.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
663
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Reif ? Scala für Enterprise-ApplikationenDr. Halil-Cem Gürsoy adesso AG
  • 2. Der Referent• Insgesamt über 10 Jahre Beratung und Entwicklung rund um Java, davor Entwicklung im Forschungsumfeld• Senior Software Engineer bei adesso AG, Dortmund• Schwerpunkt EAI und SOA-Projekte im JEE Umfeld, aber auch klassische JEE-Projekte• Autor und Referent auf KonferenzenHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 2
  • 3. Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Support• Support und Wartung• FazitHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 3
  • 4. Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Support• Support und Wartung• FazitHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 4
  • 5. Motivation• Blog(s) von A. Blewitt • http://alblue.bandlem.com/2009/08/is-scala-ready-for-enterprise.html • http://alblue.bandlem.com/2009/10/scala-is-still-not-enterprise-ready.html• Scala Hype & Fanboyism (?)• Scala zu Akademisch ! ?• Kunden zu empfehlen ?Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 5
  • 6. Kurze Scala Historie• Scalable Language• Prof. Martin Odersky, EPFL Pizza (2001) GJ (-2004) Scala (2004)• Scala 2.9: 05.2011Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 6
  • 7. Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Support• Support und Wartung• FazitHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 7
  • 8. Enterprise – Ein Definitionsversuch• Definitionen ? • „A business organization“ • Unternehmen = Enterprise• A. Blewitts Definition • Twitter – kein Enterprise • Startups – kein Enterprise • 10^n Mitarbeiter, X Millionen € Umsatz = EnterpriseHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 8
  • 9. Enterprise – Eine Definition „Enterprise“ sind alle Unternehmen und Unternehmungen, von deren Erfolg Menschen existentiell abhängenHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 9
  • 10. Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Support• Support und Wartung• FazitHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 10
  • 11. Sprache und Syntax - Lesbarkeit• Große Freiheitsgrade der Sprache und der Syntax• Source-Lesbarkeit leidet unter Komplexität• „the source is obfuscated by the syntax“def quickSort[A <% Ordered[A]](xs: List[A]): List[A] = xs match { case Nil => xs case y :: ys => ys partition (_ <= y) match { case (l1, l2) => quickSort(l1) ++ (y :: quickSort(l2)) }}(aus Wikipedia.de)• Erfahrung notwendig!Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 11
  • 12. Sprache und Syntax – Beispiel Implicits• „pixie magic called implicits“• Casten von Typen durch implicits• (Komplexes) Regelwerk, wann welche Implicits herangezogen werden (Scopes)• Sehr mächtig!• Übersicht in großen Projekten? Vorsicht...• Nachteil?Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 12
  • 13. Sprache und Syntax - Lernkurve• Flache Lernkurve im Vergleich zu Java oder C#• Weniger gut ausgebildete Entwickler• weniger gute Entwickler als bei Java / C# ?• „einfache“ Syntax ist auch ein Nachteil von Java!• verleitet zur (Selbst)Überschätzung!„Ich bin ein Java/Groovy/Python/Ruby-Experte!“Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 13
  • 14. Dokumentation• Viel Dokumentation (zu viel?)• Viele Beispiele• Inzwischen viele gute Bücher• „akademische Bücher vs. Praxisbücher“Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 14
  • 15. Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Support• Support und Wartung• FazitHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 15
  • 16. Scala-Versionen und Kompatibilität• Scala 2.8 nicht binärkompatibel mit 2.7• Scala 2.9 nicht binärkompatibel mit 2.8• Verwendete Frameworks müssen im richtigen „Binärformat“ vorliegen• Upgrade auf neue Scala-Version? • update Dependencys • u.U. update des SourcecodesHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 16
  • 17. Binärkompatibilität• Tatsächlich ein Problem?• Wie oft wechseln Projekte die Basis (z.B. JDK)?• Aber:Tools in einer neuen Version erfordern u.U. neue Scala-Version• Problem? Auch in Java... Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 17
  • 18. Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Support• Support und Wartung• FazitHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 18
  • 19. IDEs, Build-Systeme und Tool Support• Eclipse • Scala IDE • Seit Scala IDE 2.x (relativ) OK • Entscheiden während der Installation: Scala 2.x oder 2.9 ?• IntelliJ • Gute Unterstützung out of the Box• NetBeans • Gute Unterstützung (?)• Vim / Emacs • Sowieso ;-) Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 19
  • 20. Build-Systeme• Simple Build Tool (sbt) • In Scala für Scala • Scala-Versionshandling • Hudson / Jenkins PluginMaven • Ist möglich... • gleiche Bugs und Probleme wie bei Java-Projekten• Gradle • Scala PluginHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 20
  • 21. Toolchain und Integration• Herausforderungen mit sbt • sbt-Projekt in Eclipse importieren? • → sbteclipse • sbt-Projekt in IDEA importieren? • → Plugin • Bisher keine Integration von sbt in Eclipse oder IDEA analog zu Ant oder Maven (m2e) • Stört?Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 21
  • 22. Tools und Frameworks• Fast alle Java Frameworks • Hibernate / JPA, Log4J, Spring (!) usw. usw. • Conversions beachten ! • AOP-Frameworks...• Pure Scala Frameworks • Wachsende Anzahl, z.B. für Unittests (specs) • Webframeworks • Aber immer Abhängigkeit zur Scala-VersionHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 22
  • 23. Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Support• Support und Wartung• FazitHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 23
  • 24. Support und Wartung• „Wen kann ich denn verklagen?“• Problem in konservativem Projektumfeld• Typisch Deutsch ;-)• Seit 2011: Typesafe • Von den „Machern“ von Scala und Akka • Kommerzieller Support für den „Typesafe Stack“ • Scala, Akka, Scala IDE, sbtHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 24
  • 25. Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Support• Support und Wartung• FazitHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 25
  • 26. Fazit• Sprache und Syntax• Lernkurve, Verfügbarkeit• Scala-Versionen und Binärkompatibilität• IDE-Integration• Build-Systeme• Tools und Frameworks• Support und WartungHerbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 26
  • 27. Fazit Scala ist Reif für Enterprise!Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 27
  • 28. Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 28
  • 29. Vielen Dank!Dr. Halil-Cem Gürsoy adesso AG @hgutwit & http://goo.gl/hljRS
  • 30. Wir suchen Sie als Software Architekt (m/w) Projektleiter (m/w) Senior Software Engineer (m/w)jobs@adesso.dewww.AAAjobs.de