SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

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 ReturnFreekidstories
 
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 GivingFreekidstories
 
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 WunderlichVerein FM Konferenz
 
File maker konferenz 2014 inkasso
File maker konferenz 2014   inkassoFile maker konferenz 2014   inkasso
File maker konferenz 2014 inkassoVerein FM Konferenz
 
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 SunbeamFreekidstories
 
Einführung in die Programmierung, Gruppenassignment
Einführung in die Programmierung, GruppenassignmentEinführung in die Programmierung, Gruppenassignment
Einführung in die Programmierung, GruppenassignmentMichael Steurer
 
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 altdorfGordon Kraft
 
6993027462328718949
69930274623287189496993027462328718949
6993027462328718949Jeremy Joo
 
energiehoch3 Partnerprogramm
energiehoch3 Partnerprogrammenergiehoch3 Partnerprogramm
energiehoch3 Partnerprogrammenergiehoch3
 
Güte in Aktion - Do Good
Güte in Aktion - Do GoodGüte in Aktion - Do Good
Güte in Aktion - Do GoodFreekidstories
 
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...GERMAN RACING Concept Challenge
 
Deutsch polnische Wirtschaftsbeziehungen
Deutsch polnische WirtschaftsbeziehungenDeutsch polnische Wirtschaftsbeziehungen
Deutsch polnische WirtschaftsbeziehungenBettina Grr
 
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?thermorent Energiemanagement
 

En vedette (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?
 

Similaire à Reif? Scala für Enterprise-Applikationen

Scala 4 Enterprise
Scala 4 EnterpriseScala 4 Enterprise
Scala 4 Enterpriseadesso AG
 
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 OpsQAware GmbH
 
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 DatenbankmigrationstoolsStephan Kaps
 
Liquid - Templating on Rails
Liquid - Templating on RailsLiquid - Templating on Rails
Liquid - Templating on Railsgearwheeldotnet
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatengeKarin Patenge
 
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!adesso AG
 
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Anwendungsmodernisierung mit Oracle Application Express (APEX)
Anwendungsmodernisierung mit Oracle Application Express (APEX)Niels de Bruijn
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatengeKarin Patenge
 
fn project serverless computing
fn project serverless computingfn project serverless computing
fn project serverless computingWolfgang Weigend
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatengeKarin Patenge
 
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 2015AboutYouGmbH
 
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?Thorsten Kamann
 
Koordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX ProjekteKoordination innerhalb großer APEX Projekte
Koordination innerhalb großer APEX ProjekteOliver Lemm
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsHussein Morsy
 
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 Martin Gfeller
 
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 APIAlfresco Software
 

Similaire à 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
 

Plus de adesso AG

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)adesso AG
 
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 SNMPadesso AG
 
Mythos High Performance Teams
Mythos High Performance TeamsMythos High Performance Teams
Mythos High Performance Teamsadesso AG
 
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 AGadesso 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!adesso AG
 
Continuous Delivery praktisch
Continuous Delivery praktischContinuous Delivery praktisch
Continuous Delivery praktischadesso AG
 
Agilität, Snapshots und Continuous Delivery
Agilität, Snapshots und Continuous DeliveryAgilität, Snapshots und Continuous Delivery
Agilität, Snapshots und Continuous Deliveryadesso AG
 
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?adesso AG
 
Getriebene Anwendungslandschaften
Getriebene AnwendungslandschaftenGetriebene Anwendungslandschaften
Getriebene Anwendungslandschaftenadesso AG
 
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 2013adesso 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
 
OOP 2013 NoSQL Suche
OOP 2013 NoSQL SucheOOP 2013 NoSQL Suche
OOP 2013 NoSQL Sucheadesso AG
 
NoSQL in der Cloud - Why?
NoSQL in der Cloud -  Why?NoSQL in der Cloud -  Why?
NoSQL in der Cloud - Why?adesso AG
 
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.adesso AG
 
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 CDIadesso AG
 
Zehn Hinweise für Architekten
Zehn Hinweise für ArchitektenZehn Hinweise für Architekten
Zehn Hinweise für Architektenadesso AG
 
Agile Praktiken
Agile PraktikenAgile Praktiken
Agile Praktikenadesso AG
 
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 adesso AG
 
Neue EBusiness Perspektiven durch HTML5
Neue EBusiness Perspektiven durch HTML5Neue EBusiness Perspektiven durch HTML5
Neue EBusiness Perspektiven durch HTML5adesso AG
 
CloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App EngineCloudConf2011 Introduction to Google App Engine
CloudConf2011 Introduction to Google App Engineadesso AG
 

Plus de 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