Reif ?  Scala für Enterprise-ApplikationenDr. Halil-Cem Gürsoy             adesso AG
Der Referent• Insgesamt über 10 Jahre Beratung und Entwicklung  rund um Java, davor Entwicklung im  Forschungsumfeld• Seni...
Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Sup...
Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Sup...
Motivation• Blog(s) von A. Blewitt • http://alblue.bandlem.com/2009/08/is-scala-ready-for-enterprise.html • http://alblue....
Kurze Scala Historie• Scalable Language• Prof. Martin Odersky, EPFL       Pizza         (2001)                            ...
Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Sup...
Enterprise – Ein Definitionsversuch• Definitionen ? • „A business organization“ • Unternehmen = Enterprise• A. Blewitts De...
Enterprise – Eine Definition       „Enterprise“ sind alle Unternehmen und     Unternehmungen, von deren Erfolg Menschen   ...
Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Sup...
Sprache und Syntax - Lesbarkeit• Große Freiheitsgrade der Sprache und der Syntax• Source-Lesbarkeit leidet unter Komplexit...
Sprache und Syntax – Beispiel Implicits• „pixie magic called implicits“• Casten von Typen durch implicits• (Komplexes) Reg...
Sprache und Syntax - Lernkurve• Flache Lernkurve im Vergleich zu Java oder C#• Weniger gut ausgebildete Entwickler• wenige...
Dokumentation• Viel Dokumentation (zu viel?)• Viele Beispiele• Inzwischen viele gute Bücher• „akademische Bücher vs. Praxi...
Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Sup...
Scala-Versionen und Kompatibilität• Scala 2.8 nicht binärkompatibel mit 2.7• Scala 2.9 nicht binärkompatibel mit 2.8• Verw...
Binärkompatibilität• Tatsächlich ein Problem?• Wie oft wechseln Projekte die Basis (z.B. JDK)?• Aber:Tools in einer neuen ...
Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Sup...
IDEs, Build-Systeme und Tool Support• Eclipse  • Scala IDE  • Seit Scala IDE 2.x (relativ) OK  • Entscheiden während der I...
Build-Systeme• Simple Build Tool (sbt) • In Scala für Scala • Scala-Versionshandling • Hudson / Jenkins PluginMaven • Ist ...
Toolchain und Integration• Herausforderungen mit sbt • sbt-Projekt in Eclipse importieren?    • → sbteclipse • sbt-Projekt...
Tools und Frameworks• Fast alle Java Frameworks • Hibernate / JPA, Log4J, Spring (!) usw. usw. • Conversions beachten ! • ...
Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Sup...
Support und Wartung• „Wen kann ich denn verklagen?“• Problem in konservativem Projektumfeld• Typisch Deutsch ;-)• Seit 201...
Agenda• Motivation• Enterprise ?• Sprache und Syntax• Scala-Versionen und Kompatibilität• IDEs, Build-Systeme und Tool Sup...
Fazit• Sprache und Syntax• Lernkurve, Verfügbarkeit• Scala-Versionen und Binärkompatibilität• IDE-Integration• Build-Syste...
Fazit           Scala ist Reif für Enterprise!Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   27
Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   28
Vielen Dank!Dr. Halil-Cem Gürsoy             adesso AG   @hgutwit & http://goo.gl/hljRS
Wir suchen Sie als  Software Architekt (m/w)  Projektleiter (m/w)  Senior Software Engineer (m/w)jobs@adesso.dewww.AAAjobs...
Nächste SlideShare
Wird geladen in …5
×

Reif? Scala für Enterprise-Applikationen

977 Aufrufe

Veröffentlicht am

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

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
977
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Reif? Scala für Enterprise-Applikationen

  1. 1. Reif ? Scala für Enterprise-ApplikationenDr. Halil-Cem Gürsoy adesso AG
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 27. Fazit Scala ist Reif für Enterprise!Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 27
  28. 28. Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 28
  29. 29. Vielen Dank!Dr. Halil-Cem Gürsoy adesso AG @hgutwit & http://goo.gl/hljRS
  30. 30. Wir suchen Sie als Software Architekt (m/w) Projektleiter (m/w) Senior Software Engineer (m/w)jobs@adesso.dewww.AAAjobs.de

×