Artwork

Inhalt bereitgestellt von Sven Wiegand and Benjamin Hagemeister. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Sven Wiegand and Benjamin Hagemeister oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.
Player FM - Podcast-App
Gehen Sie mit der App Player FM offline!

SP12/17: Die große Jahresend-Show

1:18:46
 
Teilen
 

Manage episode 193813477 series 1206977
Inhalt bereitgestellt von Sven Wiegand and Benjamin Hagemeister. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Sven Wiegand and Benjamin Hagemeister oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.

Scala 2.12.4

Scala 2.12.4 wurde am 20. Oktober freigegeben.

Änderungen:

  • Weitere 5–10% Verbesserung in den Compile-Time benchmarks gegenüber 2.12.3
  • Java‑9–Unterstützung verbessert

Links

Reasonable Scala

Reasonable Scala ist ein neuer Scala-Compiler der von Eugene Burmako und seinem Team bei Twitter entwickelt wird.

Es handelt sich dabei nicht um einen Fork vom Lightbend Scala-Compiler, sondern um eine komplette Neu-Implementierung die nur ein Ziel hat: Möglichst schnell zu kompilieren. Die Idee besteht offenbar darin zu identifizieren wie die Performance verbessert werden kann, damit diese Erkenntnisse dann in andere Scala-Compiler einfließen können.

In den ersten Performance-Messungen ist der rsc deutlich schneller als der Lightbend Scala-Compiler. Allerdings sind momentan auch noch nicht alle Scala-Features entwickelt, so dass die Ergebnisse nicht vergleichbar sind.

Links

Scala vs. Kotlin in der Praxis

Sven hatte die ein kleines Scala-Projekt nach Kotlin zu überführen und konnte so Erfahrungen aus der Praxis sammeln und eine differenzierte Bewertung vornehmen.

Das vermisse ich

  • Pattern Matching
  • Pattern Matching
  • Pattern Matching
  • Scala collections: List mit head und tail in Verbindung mit Pattern Matching und Rekursion
  • Echte immutable Collections
  • Partial Functions inklusive collect
  • match an Infix-Position im Vergleich zu when-Expression in Kotlin
  • Implizites Type-Widening für byte, etc.
  • Tuples
  • Implicits

Das finde ich besser

  • kein new-Operator
  • Benannte Parameter für Lambda-Deklarationen (z.B. type EventCallback = (event: Event) -> Boolean)
  • Top-Level-Functions
  • Extension Functions für Monkey Patching
  • Properties
  • Markdown für Dokumentation
  • IDE-Support
  • Interoperabilität mit Java. z.B.
    • Getter werden zu Properties (das get am Anfang des Methodennamens enfällt)
    • Kotlin-Klassen gut in Java zu nutzen
  • Funktionen ohne Parameter haben immer Klammern. Außer Property-getter
  • Klare Regelung für () vs. {}
  • Bezeichnung data class vs. case class
  • Variance-Bezeichner in and out klarer als + und -
  • Gradle als Standard-Build-System

Neutral

  • Option vs ?
  • Null-/Cast-Branch-Analyse
  • _ vs it

Das finde ich schlecht

  • Usability Immutable Collections

Fazit

Ich würde Kotlin einsetzen, wenn es darum geht ein bestehendes Java-Projekt zu modernisieren oder in einem neuen Projekt mit einem Entwicklungs-Team, dass sich nicht für Scala begeistern kann.

Ansonsten ist Scala weiterhin die mächtigere und für meinen Geschmack schönere Sprache. Daher würde ich sie in Neuprojekten weiterhin bevorzugen.

Ideal wäre es wenn Scala 3 mit einigen der oben genannten Ungereimtheiten aufräumen würde.

So, what’s wrong with SBT?

Li Haoyi hat über SBT gebloggt und sieht einige Probleme. Dabei konzentriert er sich auf interne Probleme, die in erster Linie relevant für Plug-In Entwickler sind und Anwender nicht direkt betreffen.

In seinem Fazit stellt er fest, dass Tooling eines der größten Probleme in der Scala-Community ist und damit auch eine große Hürde für Einsteiger ist.

In seinem Artikel verweist er an zwei Stellen auf Bazel einem in Python geschriebenen Build-Tool, dass auch für andere Sprachen verwendet werden kann, für das es aber bisher keinen Scala-Support gibt. Andere Build-Tools wie CBT oder Gradle werden nicht erwähnt obwohl auch die vieles richtig machen, was SBT falsch macht.

Zusätzlich hat er auf Twitter (sieht hier und hier) nachgefragt wer Interesse daran hat an einem neuen Build-Tool für Scala mit zu arbeiten. Dem zweiten Tweet zufolge gibt es auch schon einen Plan und einen Prototypen. Merkwürdigerweise findet das bisher aber offenbar komplett hinter verschlossenen Türen statt. Es gibt keine Web-Seite und auch keine öffentliche Diskussion dazu.

Mir persönlich wäre es lieber wenn es dazu erst mal eine Diskussion gäbe, am besten unter der Kontrolle vom Scala-Center. Bevor man anfängt was neues zu entwickeln sollte man gucken ob man nicht z.B. CBT weiter ausbauen kann oder ein anderes Build-Tool wie Gradle oder Bazel um guten Scala-Support erweitern kann. Gradle hätte für mich den großen Vorteil, dass viele Java-Entwickler Gradle bereits kennen und damit Scala einsetzen können ohne sich an ein neues Build-Tool gewöhnen zu müssen.

Links

Resümee 2017

Svens Resümee

Insgesamt empfinde ich 2017 als ein ruhiges Scala-Jahr.

Die aus meiner Sicht wichtigsten Events/Erkenntnisse waren folgende:

  • dotty wird nun mehr oder weniger als Scala 3.0 gesehen
  • Fokussierung auf Multi-Plattform-Entwicklung mit Scala Native und Scala.js. Für letzteres schätze ich die Wahrscheinlichkeit einer größeren Bedeutung im Vergleich zu Konkurrenten wie TypeScript als gering ein.
  • Der Kampf um Android ist verloren.
  • Ein Scala 3, das alte Zöpfe und Ungereimtheiten beseitigt scheint noch weit entfernt.

Benjamins Resümee

Ich würde das zwar nie offen zugeben, aber Sven hat Recht: 2017 war ein ruhiges Scala-Jahr.

Es haben sich aber immerhin drei meiner vier Wünsche erfüllt:

  • SBT 1.0 ist draußen
  • Wir konnten auf Scala 2.12 umstellen.
  • Unser Team ist vollständig.

Ansonsten ist für mich noch das Engagement des Scala-Centers bei den Macros wichtig.

Wünsche 2018

Svens Wünsche

  • Eine klarere Roadmap für Scala 3 und was wir davon erwarten können. Diese Aussicht könnte für Entscheidungsträger interessant sein, ob bei neuen Projekten auf Scala oder weniger komplexe Alternativen wie Kotlin gesetzt wird.
  • Unterstützung einer vollwertigen Alternative zu SBT durch das ScalaCenter

Benjamins Wünsche

  • def Macros auf Basis von Scalameta und zwar nicht nur als Prototyp, sondern so, dass auch ein einfacher Scala-Entwickler sie nutzen kann. Am besten gleich mit ein bisschen Dokumentation.
  • Bessere Unterstützung von Macros in IntelliJ IDEA.
  • Ein schneller Scala-Compiler.

Gib uns Dein Feedback als Kommentar auf unserer Web-Site, via Twitter oder Google+.

Kauf uns einen Kaffee

Kapitel

  1. Intro (00:00:00.000)
  2. Alles wird anders (00:01:02.189)
  3. Scala 2.12.4 (00:02:03.000)
  4. Reasonable Scala (00:03:46.307)
  5. Scala vs. Kotlin in der Praxis (00:07:42.253)
  6. So, what’s wrong with SBT? (00:50:45.752)
  7. Resümee 2017 (01:04:40.771)
  8. Wünsche für 2018 (01:13:00.787)
  9. Outro (01:17:30.696)

Lizenz

Creative Commons Lizenzvertrag
Scala Profis von Benjamin Hagemeister & Sven Wiegand ist lizenziert unter einer Creative Commons Namensnennung — Keine Bearbeitungen 4.0 International Lizenz.

Über diese Lizenz hinausgehende Erlaubnisse kannst Du unter http://scalaprofis.de erhalten.

Titelsong basierend auf Wish You Were Here von THE.MADPIX.PROJECT lizensiert unter Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0).

  continue reading

Kapitel

1. Intro (00:00:00)

2. Alles wird anders (00:01:02)

3. Scala 2.12.4 (00:02:03)

4. Reasonable Scala (00:03:46)

5. Scala vs. Kotlin in der Praxis (00:07:42)

6. So, what's wrong with SBT? (00:50:45)

7. Resümee 2017 (01:04:40)

8. Wünsche für 2018 (01:13:00)

9. Outro (01:17:30)

15 Episoden

Artwork

SP12/17: Die große Jahresend-Show

Scala Profis

13 subscribers

published

iconTeilen
 
Manage episode 193813477 series 1206977
Inhalt bereitgestellt von Sven Wiegand and Benjamin Hagemeister. Alle Podcast-Inhalte, einschließlich Episoden, Grafiken und Podcast-Beschreibungen, werden direkt von Sven Wiegand and Benjamin Hagemeister oder seinem Podcast-Plattformpartner hochgeladen und bereitgestellt. Wenn Sie glauben, dass jemand Ihr urheberrechtlich geschütztes Werk ohne Ihre Erlaubnis nutzt, können Sie dem hier beschriebenen Verfahren folgen https://de.player.fm/legal.

Scala 2.12.4

Scala 2.12.4 wurde am 20. Oktober freigegeben.

Änderungen:

  • Weitere 5–10% Verbesserung in den Compile-Time benchmarks gegenüber 2.12.3
  • Java‑9–Unterstützung verbessert

Links

Reasonable Scala

Reasonable Scala ist ein neuer Scala-Compiler der von Eugene Burmako und seinem Team bei Twitter entwickelt wird.

Es handelt sich dabei nicht um einen Fork vom Lightbend Scala-Compiler, sondern um eine komplette Neu-Implementierung die nur ein Ziel hat: Möglichst schnell zu kompilieren. Die Idee besteht offenbar darin zu identifizieren wie die Performance verbessert werden kann, damit diese Erkenntnisse dann in andere Scala-Compiler einfließen können.

In den ersten Performance-Messungen ist der rsc deutlich schneller als der Lightbend Scala-Compiler. Allerdings sind momentan auch noch nicht alle Scala-Features entwickelt, so dass die Ergebnisse nicht vergleichbar sind.

Links

Scala vs. Kotlin in der Praxis

Sven hatte die ein kleines Scala-Projekt nach Kotlin zu überführen und konnte so Erfahrungen aus der Praxis sammeln und eine differenzierte Bewertung vornehmen.

Das vermisse ich

  • Pattern Matching
  • Pattern Matching
  • Pattern Matching
  • Scala collections: List mit head und tail in Verbindung mit Pattern Matching und Rekursion
  • Echte immutable Collections
  • Partial Functions inklusive collect
  • match an Infix-Position im Vergleich zu when-Expression in Kotlin
  • Implizites Type-Widening für byte, etc.
  • Tuples
  • Implicits

Das finde ich besser

  • kein new-Operator
  • Benannte Parameter für Lambda-Deklarationen (z.B. type EventCallback = (event: Event) -> Boolean)
  • Top-Level-Functions
  • Extension Functions für Monkey Patching
  • Properties
  • Markdown für Dokumentation
  • IDE-Support
  • Interoperabilität mit Java. z.B.
    • Getter werden zu Properties (das get am Anfang des Methodennamens enfällt)
    • Kotlin-Klassen gut in Java zu nutzen
  • Funktionen ohne Parameter haben immer Klammern. Außer Property-getter
  • Klare Regelung für () vs. {}
  • Bezeichnung data class vs. case class
  • Variance-Bezeichner in and out klarer als + und -
  • Gradle als Standard-Build-System

Neutral

  • Option vs ?
  • Null-/Cast-Branch-Analyse
  • _ vs it

Das finde ich schlecht

  • Usability Immutable Collections

Fazit

Ich würde Kotlin einsetzen, wenn es darum geht ein bestehendes Java-Projekt zu modernisieren oder in einem neuen Projekt mit einem Entwicklungs-Team, dass sich nicht für Scala begeistern kann.

Ansonsten ist Scala weiterhin die mächtigere und für meinen Geschmack schönere Sprache. Daher würde ich sie in Neuprojekten weiterhin bevorzugen.

Ideal wäre es wenn Scala 3 mit einigen der oben genannten Ungereimtheiten aufräumen würde.

So, what’s wrong with SBT?

Li Haoyi hat über SBT gebloggt und sieht einige Probleme. Dabei konzentriert er sich auf interne Probleme, die in erster Linie relevant für Plug-In Entwickler sind und Anwender nicht direkt betreffen.

In seinem Fazit stellt er fest, dass Tooling eines der größten Probleme in der Scala-Community ist und damit auch eine große Hürde für Einsteiger ist.

In seinem Artikel verweist er an zwei Stellen auf Bazel einem in Python geschriebenen Build-Tool, dass auch für andere Sprachen verwendet werden kann, für das es aber bisher keinen Scala-Support gibt. Andere Build-Tools wie CBT oder Gradle werden nicht erwähnt obwohl auch die vieles richtig machen, was SBT falsch macht.

Zusätzlich hat er auf Twitter (sieht hier und hier) nachgefragt wer Interesse daran hat an einem neuen Build-Tool für Scala mit zu arbeiten. Dem zweiten Tweet zufolge gibt es auch schon einen Plan und einen Prototypen. Merkwürdigerweise findet das bisher aber offenbar komplett hinter verschlossenen Türen statt. Es gibt keine Web-Seite und auch keine öffentliche Diskussion dazu.

Mir persönlich wäre es lieber wenn es dazu erst mal eine Diskussion gäbe, am besten unter der Kontrolle vom Scala-Center. Bevor man anfängt was neues zu entwickeln sollte man gucken ob man nicht z.B. CBT weiter ausbauen kann oder ein anderes Build-Tool wie Gradle oder Bazel um guten Scala-Support erweitern kann. Gradle hätte für mich den großen Vorteil, dass viele Java-Entwickler Gradle bereits kennen und damit Scala einsetzen können ohne sich an ein neues Build-Tool gewöhnen zu müssen.

Links

Resümee 2017

Svens Resümee

Insgesamt empfinde ich 2017 als ein ruhiges Scala-Jahr.

Die aus meiner Sicht wichtigsten Events/Erkenntnisse waren folgende:

  • dotty wird nun mehr oder weniger als Scala 3.0 gesehen
  • Fokussierung auf Multi-Plattform-Entwicklung mit Scala Native und Scala.js. Für letzteres schätze ich die Wahrscheinlichkeit einer größeren Bedeutung im Vergleich zu Konkurrenten wie TypeScript als gering ein.
  • Der Kampf um Android ist verloren.
  • Ein Scala 3, das alte Zöpfe und Ungereimtheiten beseitigt scheint noch weit entfernt.

Benjamins Resümee

Ich würde das zwar nie offen zugeben, aber Sven hat Recht: 2017 war ein ruhiges Scala-Jahr.

Es haben sich aber immerhin drei meiner vier Wünsche erfüllt:

  • SBT 1.0 ist draußen
  • Wir konnten auf Scala 2.12 umstellen.
  • Unser Team ist vollständig.

Ansonsten ist für mich noch das Engagement des Scala-Centers bei den Macros wichtig.

Wünsche 2018

Svens Wünsche

  • Eine klarere Roadmap für Scala 3 und was wir davon erwarten können. Diese Aussicht könnte für Entscheidungsträger interessant sein, ob bei neuen Projekten auf Scala oder weniger komplexe Alternativen wie Kotlin gesetzt wird.
  • Unterstützung einer vollwertigen Alternative zu SBT durch das ScalaCenter

Benjamins Wünsche

  • def Macros auf Basis von Scalameta und zwar nicht nur als Prototyp, sondern so, dass auch ein einfacher Scala-Entwickler sie nutzen kann. Am besten gleich mit ein bisschen Dokumentation.
  • Bessere Unterstützung von Macros in IntelliJ IDEA.
  • Ein schneller Scala-Compiler.

Gib uns Dein Feedback als Kommentar auf unserer Web-Site, via Twitter oder Google+.

Kauf uns einen Kaffee

Kapitel

  1. Intro (00:00:00.000)
  2. Alles wird anders (00:01:02.189)
  3. Scala 2.12.4 (00:02:03.000)
  4. Reasonable Scala (00:03:46.307)
  5. Scala vs. Kotlin in der Praxis (00:07:42.253)
  6. So, what’s wrong with SBT? (00:50:45.752)
  7. Resümee 2017 (01:04:40.771)
  8. Wünsche für 2018 (01:13:00.787)
  9. Outro (01:17:30.696)

Lizenz

Creative Commons Lizenzvertrag
Scala Profis von Benjamin Hagemeister & Sven Wiegand ist lizenziert unter einer Creative Commons Namensnennung — Keine Bearbeitungen 4.0 International Lizenz.

Über diese Lizenz hinausgehende Erlaubnisse kannst Du unter http://scalaprofis.de erhalten.

Titelsong basierend auf Wish You Were Here von THE.MADPIX.PROJECT lizensiert unter Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0).

  continue reading

Kapitel

1. Intro (00:00:00)

2. Alles wird anders (00:01:02)

3. Scala 2.12.4 (00:02:03)

4. Reasonable Scala (00:03:46)

5. Scala vs. Kotlin in der Praxis (00:07:42)

6. So, what's wrong with SBT? (00:50:45)

7. Resümee 2017 (01:04:40)

8. Wünsche für 2018 (01:13:00)

9. Outro (01:17:30)

15 Episoden

Alle Folgen

×
 
Loading …

Willkommen auf Player FM!

Player FM scannt gerade das Web nach Podcasts mit hoher Qualität, die du genießen kannst. Es ist die beste Podcast-App und funktioniert auf Android, iPhone und im Web. Melde dich an, um Abos geräteübergreifend zu synchronisieren.

 

Kurzanleitung