Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Scala für Enterprise-ApplikationenEine BestandsaufnahmeDr. Halil-Cem Gürsoyadesso AGTwitter: @hgutwitG+: http://goo.gl/hlj...
Der Referent►   Insgesamt über 10 Jahre Beratung und Entwicklung rund um Java►   davor Entwicklung im Forschungsumfeld►   ...
Agenda►   Motivation►   Enterprise ?►   Sprache und Syntax►   Scala-Versionen und Kompatibilität►   IDEs, Build-Systeme un...
Agenda►   Motivation►   Enterprise ?►   Sprache und Syntax►   Scala-Versionen und Kompatibilität►   IDEs, Build-Systeme un...
Motivation►   Blog(s) von A. Blewitt►   http://alblue.bandlem.com/2009/08/is-scala-ready-for-enterprise.html►   http://alb...
►   Scalable Language►   Prof. Martin Odersky, EPFL           Pizza               (2001)                                  ...
Agenda►   Motivation►   Enterprise ?►   Sprache und Syntax►   Scala-Versionen und Kompatibilität►   IDEs, Build-Systeme un...
Enterprise►   Definitionen ?    > „A business organization“    > Unternehmen = Enterprise►   A. Blewitts Definition    > T...
Ein Definitions-Versuch                              „Enterprise“ sind alle                                   Unternehmen ...
Agenda►   Motivation►   Enterprise ?►   Sprache und Syntax►   Scala-Versionen und Kompatibilität►   IDEs, Build-Systeme un...
Sprache und Syntax - Lesbarkeit►   Große Freiheitsgrade der Sprache und der Syntax►   Source-Lesbarkeit leidet unter Kompl...
Sprache und Syntax - Implicits►   „pixie magic called implicits“►   Casten von Typen durch Implicits►   (Komplexes) Regelw...
Traits und mehr...►   Traits    > Zwischen Java-Interfaces und Klassen    > Ermöglicht „Mehrfachvererbung“    > Mächtiges ...
Sprache - Dokumentation►   Viel Dokumentation (zu viel?)►   Viele Beispiele►   Inzwischen viele gute Bücher►   „akademisch...
Sprache und Syntax - Lernkurve►   Flache Lernkurve im Vergleich zu Java oder C#►   Weniger gut ausgebildete Entwickler►   ...
Scala zu komplex►   Grundsätzliche Frage►   Ist die Syntax von Scala und die Sprachkonstrukte zu komplex?►   Was trauen Si...
Agenda►   Motivation►   Enterprise ?►   Sprache und Syntax►   Scala-Versionen und Kompatibilität►   IDEs, Build-Systeme un...
Scala-Versionen und Kompatibilität►   Scala 2.8 nicht binärkompatibel mit 2.7►   Scala 2.9 nicht binärkompatibel mit 2.8► ...
Binärkompatibilität►   Tatsächlich ein Problem?►   Wie oft wechseln Projekte die Basis (z.B. JDK)?►   Aber:Tools in einer ...
Agenda►   Motivation►   Enterprise ?►   Sprache und Syntax►   Scala-Versionen und Kompatibilität►   IDEs, Build-Systeme un...
IDEs, Build-Systeme und Tool Support►   Eclipse    > Scala IDE    > Seit Scala IDE 2.x (relativ) OK    > Entscheiden währe...
Scala IDE in Action25.11.11   22   Scala für Enterprise-Applikationen
Weitere IDEs►   IntelliJ    > Gute Unterstützung out of the Box►   NetBeans    > Gute Unterstützung (?)►   Vim / Emacs    ...
Build-Systeme►   Simple Build Tool (sbt)    > In Scala für Scala    > Scala-Versionshandling    > Hudson / Jenkins Plugin►...
Beispiel für sbt-Konfigurationname := "MyScalaProj"version := "0.1"organization := "de.adesso.hgu"javacOptions ++= Seq("-s...
Scala-Toolchain►   Herausforderungen mit sbt    > sbt-Projekt in Eclipse importieren mit sbt-plugin sbteclipse    > sbt-Pr...
Tools und Frameworks►   Fast alle Java Frameworks    > Hibernate / JPA, Log4J, Spring (!) usw. usw.    > Conversions beach...
Agenda►   Motivation►   Enterprise ?►   Sprache und Syntax►   Scala-Versionen und Kompatibilität►   IDEs, Build-Systeme un...
Support und Toolchain►   „Wen kann ich im Notfall verklagen?“►   Problem in konservativem Projektumfeld►   Typisch Deutsch...
Agenda►   Motivation►   Enterprise ?►   Sprache und Syntax►   Scala-Versionen und Kompatibilität►   IDEs, Build-Systeme un...
Fazit►   Sprache und Syntax►   Lernkurve, Verfügbarkeit►   Scala-Versionen und Binärkompatibilität►   IDE-Integration►   B...
Fazit                Scala ist Reif für Enterprise!25.11.11   32   Scala für Enterprise-Applikationen
25.11.11   33   Scala für Enterprise-Applikationen
Danke für Ihre Aufmerksamkeit!25.11.11   34   Scala für Enterprise-Applikationen
Nächste SlideShare
Wird geladen in …5
×

Scala 4 Enterprise

933 Aufrufe

Veröffentlicht am

Diese Präsentation geht der Frage nach,

  • Als Erste(r) kommentieren

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

Scala 4 Enterprise

  1. 1. Scala für Enterprise-ApplikationenEine BestandsaufnahmeDr. Halil-Cem Gürsoyadesso AGTwitter: @hgutwitG+: http://goo.gl/hljRS25.11.11
  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 Konferenzen25.11.11 2 Scala für Enterprise-Applikationen
  3. 3. Agenda► Motivation► Enterprise ?► Sprache und Syntax► Scala-Versionen und Kompatibilität► IDEs, Build-Systeme und Tool Support► Support und Wartung► Fazit25.11.11 3 Scala für Enterprise-Applikationen
  4. 4. Agenda► Motivation► Enterprise ?► Sprache und Syntax► Scala-Versionen und Kompatibilität► IDEs, Build-Systeme und Tool Support► Support und Wartung► Fazit25.11.11 4 Scala für Enterprise-Applikationen
  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 ?
  6. 6. ► Scalable Language► Prof. Martin Odersky, EPFL Pizza (2001) GJ (-2004) Scala (2004)► Scala 2.9: 05.201125.11.11 6 Scala für Enterprise-Applikationen
  7. 7. Agenda► Motivation► Enterprise ?► Sprache und Syntax► Scala-Versionen und Kompatibilität► IDEs, Build-Systeme und Tool Support► Support und Wartung► Fazit25.11.11 7 Scala für Enterprise-Applikationen
  8. 8. Enterprise► Definitionen ? > „A business organization“ > Unternehmen = Enterprise► A. Blewitts Definition > Twitter – Nach seiner Definition kein Enterprise (!) > Startups – auch kein Enterprise, da zu klein und unbedeutend > 10^n Mitarbeiter, X Millionen € Umsatz = Enterprise25.11.11 8 Scala für Enterprise-Applikationen
  9. 9. Ein Definitions-Versuch „Enterprise“ sind alle Unternehmen und Unternehmungen, von deren Erfolg Menschen existentiell abhängen25.11.11 9 Scala für Enterprise-Applikationen
  10. 10. Agenda► Motivation► Enterprise ?► Sprache und Syntax► Scala-Versionen und Kompatibilität► IDEs, Build-Systeme und Tool Support► Support und Wartung► Fazit25.11.11 10 Scala für Enterprise-Applikationen
  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!25.11.11 11 Scala für Enterprise-Applikationen
  12. 12. Sprache und Syntax - Implicits► „pixie magic called implicits“► Casten von Typen durch Implicits► (Komplexes) Regelwerk, wann welche Implicits herangezogen werden (Scopes)► Sehr mächtiges Feature!► Übersicht in großen Projekten?► Sind Implicits ein Nachteil?25.11.11 12 Scala für Enterprise-Applikationen
  13. 13. Traits und mehr...► Traits > Zwischen Java-Interfaces und Klassen > Ermöglicht „Mehrfachvererbung“ > Mächtiges Feature► Einige ausgewählte Vorteile > Alles ist ein Objekt > Auch Funktionen sind Objekte (FP!) > Native XML-Unterstützung > Actors25.11.11 13 Scala für Enterprise-Applikationen
  14. 14. Sprache - Dokumentation► Viel Dokumentation (zu viel?)► Viele Beispiele► Inzwischen viele gute Bücher► „akademische Bücher vs. Praxisbücher“25.11.11 14 Scala für Enterprise-Applikationen
  15. 15. 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!“25.11.11 15 Scala für Enterprise-Applikationen
  16. 16. Scala zu komplex► Grundsätzliche Frage► Ist die Syntax von Scala und die Sprachkonstrukte zu komplex?► Was trauen Sie Ihren Entwicklern zu?► Sind Ihre Entwickler Enterprise-Ready?25.11.11 16 Scala für Enterprise-Applikationen
  17. 17. Agenda► Motivation► Enterprise ?► Sprache und Syntax► Scala-Versionen und Kompatibilität► IDEs, Build-Systeme und Tool Support► Support und Wartung► Fazit25.11.11 17 Scala für Enterprise-Applikationen
  18. 18. 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 Sourcecodes25.11.11 18 Scala für Enterprise-Applikationen
  19. 19. 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► Ist Binärkompatibilität tatsächlich ein Problem?► Wie ist es in Java?25.11.11 19 Scala für Enterprise-Applikationen
  20. 20. Agenda► Motivation► Enterprise ?► Sprache und Syntax► Scala-Versionen und Kompatibilität► IDEs, Build-Systeme und Tool Support► Support und Wartung► Fazit25.11.11 20 Scala für Enterprise-Applikationen
  21. 21. 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 ? > Teil des Typesafe-Stacks25.11.11 21 Scala für Enterprise-Applikationen
  22. 22. Scala IDE in Action25.11.11 22 Scala für Enterprise-Applikationen
  23. 23. Weitere IDEs► IntelliJ > Gute Unterstützung out of the Box► NetBeans > Gute Unterstützung (?)► Vim / Emacs > Sowieso ;-)25.11.11 23 Scala für Enterprise-Applikationen
  24. 24. Build-Systeme► Simple Build Tool (sbt) > In Scala für Scala > Scala-Versionshandling > Hudson / Jenkins Plugin► Maven > Ist möglich... > gleiche Bugs und Probleme wie bei Java-Projekten► Gradle > Scala Plugin25.11.11 24 Scala für Enterprise-Applikationen
  25. 25. Beispiel für sbt-Konfigurationname := "MyScalaProj"version := "0.1"organization := "de.adesso.hgu"javacOptions ++= Seq("-source", "1.6", "-target", "1.6")scalacOptions += "-deprecation"scalaVersion := "2.8.1"libraryDependencies += "org.mockito" % "mockito-all" % "1.8.5" %"test"libraryDependencies += "org.scala-tools.testing" %% "specs" %"1.6.7"libraryDependencies += "org.scala-tools.testing" %% "scalacheck" %"1.8"25.11.11 25 Scala für Enterprise-Applikationen
  26. 26. Scala-Toolchain► Herausforderungen mit sbt > sbt-Projekt in Eclipse importieren mit sbt-plugin sbteclipse > sbt-Projekt in IDEA importieren sbt-Plugin vorhanden > Bisher keine Integration von sbt in Eclipse oder IDEA analog zu Ant oder Maven (m2e) > Dadurch größere Roundtrips► sbteclipse > Wird aktiv entwickelt25.11.11 26 Scala für Enterprise-Applikationen
  27. 27. 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-Version25.11.11 27 Scala für Enterprise-Applikationen
  28. 28. Agenda► Motivation► Enterprise ?► Sprache und Syntax► Scala-Versionen und Kompatibilität► IDEs, Build-Systeme und Tool Support► Support und Wartung► Fazit25.11.11 28 Scala für Enterprise-Applikationen
  29. 29. Support und Toolchain► „Wen kann ich im Notfall 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, sbt25.11.11 29 Scala für Enterprise-Applikationen
  30. 30. Agenda► Motivation► Enterprise ?► Sprache und Syntax► Scala-Versionen und Kompatibilität► IDEs, Build-Systeme und Tool Support► Support und Wartung► Fazit25.11.11 30 Scala für Enterprise-Applikationen
  31. 31. Fazit► Sprache und Syntax► Lernkurve, Verfügbarkeit► Scala-Versionen und Binärkompatibilität► IDE-Integration► Build-Systeme► Tools und Frameworks► Support und Wartung25.11.11 31 Scala für Enterprise-Applikationen
  32. 32. Fazit Scala ist Reif für Enterprise!25.11.11 32 Scala für Enterprise-Applikationen
  33. 33. 25.11.11 33 Scala für Enterprise-Applikationen
  34. 34. Danke für Ihre Aufmerksamkeit!25.11.11 34 Scala für Enterprise-Applikationen

×