SlideShare a Scribd company logo
1 of 30
Download to read offline
Reif ?
  Scala für Enterprise-Applikationen


Dr. Halil-Cem Gürsoy
             adesso AG
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 Konferenzen




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   2
Agenda

• Motivation
• Enterprise ?
• Sprache und Syntax
• Scala-Versionen und Kompatibilität
• IDE's, Build-Systeme und Tool Support
• Support und Wartung
• Fazit




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   3
Agenda

• Motivation
• Enterprise ?
• Sprache und Syntax
• Scala-Versionen und Kompatibilität
• IDE's, Build-Systeme und Tool Support
• Support und Wartung
• Fazit




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   4
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
Kurze Scala Historie

• Scalable Language
• Prof. Martin Odersky, EPFL

       Pizza
         (2001)

                                                 GJ
                                                (-2004)



                                                                 Scala
                                                                  (2004)




• Scala 2.9: 05.2011
Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen             6
Agenda

• Motivation
• Enterprise ?
• Sprache und Syntax
• Scala-Versionen und Kompatibilität
• IDE's, Build-Systeme und Tool Support
• Support und Wartung
• Fazit




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   7
Enterprise – Ein Definitionsversuch

• Definitionen ?
 • „A business organization“
 • Unternehmen = Enterprise
• A. Blewitt's Definition
 • Twitter – kein Enterprise
 • Startups – kein Enterprise
 • 10^n Mitarbeiter, X Millionen € Umsatz = Enterprise




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   8
Enterprise – Eine Definition




       „Enterprise“ sind alle Unternehmen und
     Unternehmungen, von deren Erfolg Menschen
                existentiell abhängen




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   9
Agenda

• Motivation
• Enterprise ?
• Sprache und Syntax
• Scala-Versionen und Kompatibilität
• IDE's, Build-Systeme und Tool Support
• Support und Wartung
• Fazit




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   10
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
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
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
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
Agenda

• Motivation
• Enterprise ?
• Sprache und Syntax
• Scala-Versionen und Kompatibilität
• IDE's, Build-Systeme und Tool Support
• Support und Wartung
• Fazit




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   15
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 Sourcecodes




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   16
Binärkompatibilität

• Tatsächlich ein Problem?
• Wie oft wechseln Projekte die Basis (z.B. JDK)?
• Aber:Tool's in einer neuen Version erfordern u.U.
  neue Scala-Version
• Problem? Auch in Java...




 Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   17
Agenda

• Motivation
• Enterprise ?
• Sprache und Syntax
• Scala-Versionen und Kompatibilität
• IDE's, Build-Systeme und Tool Support
• Support und Wartung
• Fazit




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   18
IDE's, 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
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 Plugin




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   20
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
Tool's 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-Version




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   22
Agenda

• Motivation
• Enterprise ?
• Sprache und Syntax
• Scala-Versionen und Kompatibilität
• IDE's, Build-Systeme und Tool Support
• Support und Wartung
• Fazit




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   23
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, sbt




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   24
Agenda

• Motivation
• Enterprise ?
• Sprache und Syntax
• Scala-Versionen und Kompatibilität
• IDE's, Build-Systeme und Tool Support
• Support und Wartung
• Fazit




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   25
Fazit

• Sprache und Syntax
• Lernkurve, Verfügbarkeit
• Scala-Versionen und Binärkompatibilität
• IDE-Integration
• Build-Systeme
• Tools und Frameworks
• Support und Wartung




Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen   26
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.de
www.AAAjobs.de

More Related Content

Viewers also liked

File maker konferenz 2014 inkasso
File maker konferenz 2014   inkassoFile maker konferenz 2014   inkasso
File maker konferenz 2014 inkasso
Verein FM Konferenz
 
6993027462328718949
69930274623287189496993027462328718949
6993027462328718949
Jeremy Joo
 
energiehoch3 Partnerprogramm
energiehoch3 Partnerprogrammenergiehoch3 Partnerprogramm
energiehoch3 Partnerprogramm
energiehoch3
 
Deutsch polnische Wirtschaftsbeziehungen
Deutsch polnische WirtschaftsbeziehungenDeutsch polnische Wirtschaftsbeziehungen
Deutsch polnische Wirtschaftsbeziehungen
Bettina Grr
 

Viewers also liked (20)

Die rückkehr des Königs - The King's Return
Die rückkehr des Königs - The King's ReturnDie rückkehr des Königs - The King's Return
Die rückkehr des Königs - The King's Return
 
Gebt, so wird euch gegeben werden - Gain by Giving
Gebt, so wird euch gegeben werden - Gain by GivingGebt, so wird euch gegeben werden - Gain by Giving
Gebt, so wird euch gegeben werden - Gain by Giving
 
Neue Medien in der Lehre
Neue Medien in der LehreNeue Medien in der Lehre
Neue Medien in der Lehre
 
El alfabeto
El alfabetoEl alfabeto
El alfabeto
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
 
File maker konferenz 2014 inkasso
File maker konferenz 2014   inkassoFile maker konferenz 2014   inkasso
File maker konferenz 2014 inkasso
 
Ein Sonnenstrahl Jesu - Jesus Wants Me for a Sunbeam
Ein Sonnenstrahl Jesu - Jesus Wants Me for a SunbeamEin Sonnenstrahl Jesu - Jesus Wants Me for a Sunbeam
Ein Sonnenstrahl Jesu - Jesus Wants Me for a Sunbeam
 
Einführung in die Programmierung, Gruppenassignment
Einführung in die Programmierung, GruppenassignmentEinführung in die Programmierung, Gruppenassignment
Einführung in die Programmierung, Gruppenassignment
 
Slideshare
SlideshareSlideshare
Slideshare
 
Bengal tiger
Bengal tigerBengal tiger
Bengal tiger
 
Einladung: INSTANDHALTUNGSTAGE 2016!
Einladung: INSTANDHALTUNGSTAGE 2016!Einladung: INSTANDHALTUNGSTAGE 2016!
Einladung: INSTANDHALTUNGSTAGE 2016!
 
Relationship chart gordon henry kraft:guelph herzog bavaria von altdorf
Relationship chart gordon henry kraft:guelph herzog bavaria von altdorfRelationship chart gordon henry kraft:guelph herzog bavaria von altdorf
Relationship chart gordon henry kraft:guelph herzog bavaria von altdorf
 
6993027462328718949
69930274623287189496993027462328718949
6993027462328718949
 
Erik
ErikErik
Erik
 
Binder1
Binder1Binder1
Binder1
 
energiehoch3 Partnerprogramm
energiehoch3 Partnerprogrammenergiehoch3 Partnerprogramm
energiehoch3 Partnerprogramm
 
Güte in Aktion - Do Good
Güte in Aktion - Do GoodGüte in Aktion - Do Good
Güte in Aktion - Do Good
 
Final-Präsentation GERMAN RACING Concept Challenge 2013 – 4. Platz "Racehorse...
Final-Präsentation GERMAN RACING Concept Challenge 2013 – 4. Platz "Racehorse...Final-Präsentation GERMAN RACING Concept Challenge 2013 – 4. Platz "Racehorse...
Final-Präsentation GERMAN RACING Concept Challenge 2013 – 4. Platz "Racehorse...
 
Deutsch polnische Wirtschaftsbeziehungen
Deutsch polnische WirtschaftsbeziehungenDeutsch polnische Wirtschaftsbeziehungen
Deutsch polnische Wirtschaftsbeziehungen
 
Wie lohnen sich Investitionen in erneuerbare Energien?
Wie lohnen sich Investitionen in erneuerbare Energien?Wie lohnen sich Investitionen in erneuerbare Energien?
Wie lohnen sich Investitionen in erneuerbare Energien?
 

Similar to Reif? Scala für Enterprise-Applikationen

Liquid - Templating on Rails
Liquid - Templating on RailsLiquid - Templating on Rails
Liquid - Templating on Rails
gearwheeldotnet
 

Similar to Reif? Scala für Enterprise-Applikationen (20)

Scala 4 Enterprise
Scala 4 EnterpriseScala 4 Enterprise
Scala 4 Enterprise
 
Scala
ScalaScala
Scala
 
Ansible für Entwickler: Konfigurationsmanagement nicht nur für Ops
Ansible für Entwickler: Konfigurationsmanagement nicht nur für OpsAnsible für Entwickler: Konfigurationsmanagement nicht nur für Ops
Ansible für Entwickler: Konfigurationsmanagement nicht nur für Ops
 
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der DatenbankmigrationstoolsJavaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
Javaland 2016 - Flyway vs. LiquiBase - Battle der Datenbankmigrationstools
 
Liquid - Templating on Rails
Liquid - Templating on RailsLiquid - Templating on Rails
Liquid - Templating on Rails
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
 
fn project serverless computing
fn project serverless computingfn project serverless computing
fn project serverless computing
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
ColdFusion gibt's das noch?
ColdFusion gibt's das noch?ColdFusion gibt's das noch?
ColdFusion gibt's das noch?
 
Koordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX ProjekteKoordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX Projekte
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
Domain Driven Design - Strategic Design
Domain Driven Design - Strategic DesignDomain Driven Design - Strategic Design
Domain Driven Design - Strategic Design
 
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
Seit 10 Jahren mit Python: Quantax, ein Risk-Management-System für Banken
 
IntelliJ für Flex
IntelliJ für FlexIntelliJ für Flex
IntelliJ für Flex
 
Alfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest APIAlfresco Day Vienna 2016: Alfrescos neue Rest API
Alfresco Day Vienna 2016: Alfrescos neue Rest API
 

More from adesso AG

Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
adesso AG
 

More from adesso AG (20)

SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP (Kurzversion)
 
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMPSNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
SNMP Applied - Sicheres Anwendungs-Monitoring mit SNMP
 
Mythos High Performance Teams
Mythos High Performance TeamsMythos High Performance Teams
Mythos High Performance Teams
 
A Business-Critical SharePoint Solution From adesso AG
A Business-CriticalSharePoint SolutionFrom adesso AGA Business-CriticalSharePoint SolutionFrom adesso AG
A Business-Critical SharePoint Solution From adesso AG
 
Was Sie über NoSQL Datenbanken wissen sollten!
Was Sie über NoSQL Datenbanken wissen sollten!Was Sie über NoSQL Datenbanken wissen sollten!
Was Sie über NoSQL Datenbanken wissen sollten!
 
Continuous Delivery praktisch
Continuous Delivery praktischContinuous Delivery praktisch
Continuous Delivery praktisch
 
Agilität, Snapshots und Continuous Delivery
Agilität, Snapshots und Continuous DeliveryAgilität, Snapshots und Continuous Delivery
Agilität, Snapshots und Continuous Delivery
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
 
Getriebene Anwendungslandschaften
Getriebene AnwendungslandschaftenGetriebene Anwendungslandschaften
Getriebene Anwendungslandschaften
 
Google App Engine JAX PaaS Parade 2013
Google App Engine JAX PaaS Parade 2013Google App Engine JAX PaaS Parade 2013
Google App Engine JAX PaaS Parade 2013
 
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
Wartbare Web-Anwendungen mit Knockout.js und Model-View-ViewModel (MVVM)
 
OOP 2013 NoSQL Suche
OOP 2013 NoSQL SucheOOP 2013 NoSQL Suche
OOP 2013 NoSQL Suche
 
NoSQL in der Cloud - Why?
NoSQL in der Cloud -  Why?NoSQL in der Cloud -  Why?
NoSQL in der Cloud - Why?
 
Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.Lean web architecture mit jsf 2.0, cdi & co.
Lean web architecture mit jsf 2.0, cdi & co.
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 
Zehn Hinweise für Architekten
Zehn Hinweise für ArchitektenZehn Hinweise für Architekten
Zehn Hinweise für Architekten
 
Agile Praktiken
Agile PraktikenAgile Praktiken
Agile Praktiken
 
Java und Cloud - nicht nur mit PaaS
Java und Cloud - nicht nur mit PaaS Java und Cloud - nicht nur mit PaaS
Java und Cloud - nicht nur mit PaaS
 
Neue EBusiness Perspektiven durch HTML5
Neue EBusiness Perspektiven durch HTML5Neue EBusiness Perspektiven durch HTML5
Neue EBusiness Perspektiven durch HTML5
 
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App EngineCloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engine
 

Reif? Scala für Enterprise-Applikationen

  • 1. Reif ? Scala für Enterprise-Applikationen Dr. 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 Konferenzen Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 2
  • 3. Agenda • Motivation • Enterprise ? • Sprache und Syntax • Scala-Versionen und Kompatibilität • IDE's, Build-Systeme und Tool Support • Support und Wartung • Fazit Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 3
  • 4. Agenda • Motivation • Enterprise ? • Sprache und Syntax • Scala-Versionen und Kompatibilität • IDE's, Build-Systeme und Tool Support • Support und Wartung • Fazit Herbstcampus 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.2011 Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 6
  • 7. Agenda • Motivation • Enterprise ? • Sprache und Syntax • Scala-Versionen und Kompatibilität • IDE's, Build-Systeme und Tool Support • Support und Wartung • Fazit Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 7
  • 8. Enterprise – Ein Definitionsversuch • Definitionen ? • „A business organization“ • Unternehmen = Enterprise • A. Blewitt's Definition • Twitter – kein Enterprise • Startups – kein Enterprise • 10^n Mitarbeiter, X Millionen € Umsatz = Enterprise Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 8
  • 9. Enterprise – Eine Definition „Enterprise“ sind alle Unternehmen und Unternehmungen, von deren Erfolg Menschen existentiell abhängen Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 9
  • 10. Agenda • Motivation • Enterprise ? • Sprache und Syntax • Scala-Versionen und Kompatibilität • IDE's, Build-Systeme und Tool Support • Support und Wartung • Fazit Herbstcampus 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 • IDE's, Build-Systeme und Tool Support • Support und Wartung • Fazit Herbstcampus 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 Sourcecodes Herbstcampus 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:Tool's 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 • IDE's, Build-Systeme und Tool Support • Support und Wartung • Fazit Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 18
  • 19. IDE's, 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 Plugin Maven • Ist möglich... • gleiche Bugs und Probleme wie bei Java-Projekten • Gradle • Scala Plugin Herbstcampus 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. Tool's 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-Version Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 22
  • 23. Agenda • Motivation • Enterprise ? • Sprache und Syntax • Scala-Versionen und Kompatibilität • IDE's, Build-Systeme und Tool Support • Support und Wartung • Fazit Herbstcampus 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, sbt Herbstcampus 2011 – Reif? - Scala für Enterprise-Applikationen 24
  • 25. Agenda • Motivation • Enterprise ? • Sprache und Syntax • Scala-Versionen und Kompatibilität • IDE's, Build-Systeme und Tool Support • Support und Wartung • Fazit Herbstcampus 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 Wartung Herbstcampus 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.de www.AAAjobs.de