Your SlideShare is downloading. ×
0
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
Upcoming SlideShare
Loading in...5
×

Scala 4 Enterprise

516

Published on

Diese Präsentation geht der Frage nach,

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
516
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×