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!

SP10/17: Wir leben noch

1:24:38
 
Teilen
 

Manage episode 190116082 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.3 released

Interessanteste Änderung ist eine — laut eigenen Aussagen — drastisch verbesserte Performance:

  • Insbesondere der inkrementelle Compiler Zinc (wird von SBT und diversen anderen Build-Tools verwendet) wurde verbessert um möglichst wenig Code neu zu compilieren.
  • Aber auch am Compiler selbst wurden diverse kleine Performance-Optimierungen vorgenommen, die sich erheblich aufaddieren können. Bei verschiedenen Projekten sank die Dauer für einen Full-Build auf 66% bis 85% gegenüber 2.11.11. Besonders profitieren kleinere Projekte.
  • Der Blog-Post Towards a faster Scala compiler beschreibt alle Details.
  • Um sicherzustellen, dass sich die Performance nicht verschlechtert werden nach jeder Änderung am Compiler automatische Performance-Tests ausgeführt.

Links

SBT 1.0.0 is da

Version 1.0.0 und inzwischen sogar 1.0.1 bzw. 1.0.2 ist verfügbar.

Highlights:

  • basiert auf Scala 2.12, es ist also kein 2.10 Support mehr bei Scala Plugins notwendig
  • Zinc 1 mit verbesserter Performance bei der inkrementellen Compilierung
  • paralleler Download von Artefakten
  • Library Management API (erleichtert einen Wechsel von Ivy auf ein anderes System in der Zukunft)
  • ab SBT 1.0.0 wird Semantic Versioning verwendet
  • SBT 1.0.0 ist weder Source- noch Binär-Kompatibel mit 0.13., es gibt eine Anleitung für die Migration

Links

Java 9 wurde released

Nach mehrfacher Verschiebung wurde im September Java 9 released.

Änderungen, die potential für uns als Scala-Entwickler interessant sind:

Links

scalameta/scalamacros

Der Fokus von Scalameta hat sich verändert. Das Projekt wurde ursprünglich gestartet um Macros zu vereinfachen. Inzwischen wurden die Macros in ein eigenes Projekt ausgelagert.

Scalameta ist inzwischen allgemeiner angelegt, also Basis für Entwickler-Tools verschiedener Art, wie z.B.

Scalamacros

Zu Scalamacros findet man auf Github Beispiele für Macro-Annotations und def Macros, allerdings bisher wenig Dokumentation.

Roadmap

Inzwischen beteiligt das Scala Center sich bei der Implementierung (siehe SCP-014) und es gibt eine Planung für die nächsten Schritte:

  • Scala 2.12: Weitere Schritte über Compiler-Plugin
  • Dotty: Integration in den Compiler
  • Support für IntelliJ IDEA
  • Scala 2.13: Immer noch über Compiler-Plugin und Feature-Flags
  • Scala 2.14: Macros sollen nicht mehr experimentell sein und scala.reflect wird deprecated

Links

Scala AST im Browser untersuchen

  • AST explorer ist eine Web-Site mit der sich die Abstract Syntax Trees für beliebigen Code verschiedener Programmiersprachen analysieren lassen.
  • Gabriele Petronella hat unter Einsatz von Scalameta und Scala.js Scala-Unterstützung für den AST explorer implementiert, so dass Scala jetzt in der Liste der unterstützten Sprachen auftaucht.

Fazit

Wer mit Scala Macros experimentiert, dem kann der AST explorer die Arbeit deutlich vereinfachen.

Links

Catch bugs with Scalafix v0.5 | The Scala Programming Language

Scalafix kann nicht nur Code verändern sondern auch als Linter verwendet werden. Ein Blog Beitrag von Ólafur Páll Geirsson zeigt wie einfach es ist eigene Regeln für den Linter zu schreiben — zumindest wenn man sich ein bisschen mit Quasiquotes und Scalameta auskennt.

Links

Scala.js vs TypeScript

Sven hat Scala.js angepriesen. In letzter Zeit hat er sich mit TypeScript beschäftigt. Hier sein Vergleich:

Vorzüge von Scala.js

  • Scala halt
  • Kompakte Syntax (einzeilige case-Klassen)
  • Typ-Klassen
  • Declaration-Side Variance
  • Implicits
  • Shared Client-Server-Projekte (auf Scala-Basis)

Neutral

  • Mit Facebook’s immutable.js existiert eine gute Implementierung von immutable Collections.
  • Out-of-the-box automatische Tests mit Coverage-Analyse
  • Mächtiges Typ-System mit mächtiger Typ-Interference.

Vorzüge von TypeScript

  • Durchgängiges structural typing passt besser zum dynamischen Character von JavaScript. Außerdem ermöglicht es die schlanke Instanziierung von Interfaces mittels JavaScripts Object-Syntax.
    Typ-Konstrukte, die so bei Scala nicht möglich sind:
    • Union Types (A | B, string | number) passen gut JavaScript.
    • Intersection-Types (A & B) ermöglichen interessante Typisierungs-Lösungen, die mit Scala so nicht möglich sind.
    • Mit [mapped types] lassen sich leicht neue Typen auf Basis existierender erstellen (Partial, Readonly)
  • Zero Script-Size Overhead
  • Zero Runtime-Overhead
  • Unterstützung von TSX
  • Mächtiger Standard-Linter
  • Declaration-Files für die meisten, selbst wenig populäre JavaScript-Libraries
  • Tooling (IDE-Support, Debugging, Integration mit webpack und Co)
  • Turn-around-Zeiten
  • Popularität

Vorläufiges Fazit

Stand heute ist der Einsatz von Scala.js als JavaScript-Ersatz nur mit großen Kompromissen möglich:

  • Fassaden für JavaScript-Bibliotheken müssen manuell erstellt werden
  • Die generierten Bundles haben einen erheblichen Overhead
  • Das Debugging in Chrome ist aufgrund unpräziser Source-Maps und starker Optimierungen (fehlende Variablen) kaum brauchbar
  • Vor allem das Tooling kommt nicht annähernd and das von TypeScript heran. So müssen Templates häufig als Strings abgebildet werden wodurch viele Fehler erst zur Laufzeit auftreten.

Play 2.6.0 released

Ende Juni wurde Play 2.6.0 freigegeben. Über die Änderungen sprachen wir in Episode SP02/17 im Detail. Die wichtigsten Änderungen sind:

  • Unterstützung für Scala 2.12
  • Akka HTTP ersetzt Netty
  • Experimenteller Support für HTTP/2

Links

Scastie hat das Beta-Stadium verlassen

Scastie ist eine vom Scala Center Team betriebene interaktive Web-Seite, die es Dir ermöglicht Scala-Code im Browser auszuprobieren, auf den Servern zu speichern und zu teilen (ähnlich wie bei JSFiddle & Co.).

Gegenüber der Beta-Version wurde folgendes geändert:

  • Die Oberfläche wurde komplett aufgeräumt.
  • Neben den Standard-Scala-Versionen, dem Dotty und dem Typelevel-Compiler steht nun auch Scala.js als Target bereit.

Weiterhin vorhandene Features:

  • Über eine interaktive Suche kannst Du sämtliche im scaladex geführte Bibliotheken mit einem Klick hinzufügen und ausprobieren.
  • Wenn das immer noch nicht reicht kannst Du direkt das SBT-Script beeinflussen und so zum Beispiel beliebige Dependencies hinzufügen

Links

Underscore Books

Frei verfügbare eBooks rund um Scala.

Derzeit verfügbar:

  • Essential Scala
  • Essential Play
  • Advanced Scala with Cats
  • Essential Slick
  • Creative Scala
  • The Type Astronout’s Guide to Shapeless
  • The Lift Cookbook

Links

47deg/sbt-microsites

Von der Projektseite:

sbt-microsites is an SBT plugin that facilitates the creation of fancy microsites for your projects, with minimal tweaks.

What is a microsite?

A microsite is an instance of Jekyll, ready to publish a static web page for your new library. Some of the benefits of having these auto-generated web pages are:

  • You can write documentation easily in markdown format.
  • Templates, layouts, styles, and other resources will be able through the plugin at compile time.
  • You don’t have to deal with the styling.

Links

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. Scala 2.12.3 (00:01:49.037)
  3. SBT 1.0.0 (00:04:19.678)
  4. Java 9 (00:09:47.661)
  5. scalameta/scalamacros (00:28:24.547)
  6. AST explorer (00:39:39.765)
  7. ScalaFix als Linter (00:44:08.035)
  8. Scala.js vs. TypeScript (00:47:45.592)
  9. Play 2.6 released (01:16:03.907)
  10. Scastie hat das Beta-Stadium verlassen (01:19:02.552)
  11. Underscore Books (01:21:21.037)
  12. sbt-microsites (01:22:25.880)
  13. Outro (01:23:46.787)

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. Scala 2.12.3 (00:01:49)

3. SBT 1.0.0 (00:04:19)

4. Java 9 (00:09:47)

5. scalameta/scalamacros (00:28:24)

6. AST explorer (00:39:39)

7. ScalaFix als Linter (00:44:08)

8. Scala.js vs. TypeScript (00:47:45)

9. Play 2.6 released (01:16:03)

10. Scastie hat das Beta-Stadium verlassen (01:19:02)

11. Underscore Books (01:21:21)

12. sbt-microsites (01:22:25)

13. Outro (01:23:46)

15 Episoden

Artwork

SP10/17: Wir leben noch

Scala Profis

13 subscribers

published

iconTeilen
 
Manage episode 190116082 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.3 released

Interessanteste Änderung ist eine — laut eigenen Aussagen — drastisch verbesserte Performance:

  • Insbesondere der inkrementelle Compiler Zinc (wird von SBT und diversen anderen Build-Tools verwendet) wurde verbessert um möglichst wenig Code neu zu compilieren.
  • Aber auch am Compiler selbst wurden diverse kleine Performance-Optimierungen vorgenommen, die sich erheblich aufaddieren können. Bei verschiedenen Projekten sank die Dauer für einen Full-Build auf 66% bis 85% gegenüber 2.11.11. Besonders profitieren kleinere Projekte.
  • Der Blog-Post Towards a faster Scala compiler beschreibt alle Details.
  • Um sicherzustellen, dass sich die Performance nicht verschlechtert werden nach jeder Änderung am Compiler automatische Performance-Tests ausgeführt.

Links

SBT 1.0.0 is da

Version 1.0.0 und inzwischen sogar 1.0.1 bzw. 1.0.2 ist verfügbar.

Highlights:

  • basiert auf Scala 2.12, es ist also kein 2.10 Support mehr bei Scala Plugins notwendig
  • Zinc 1 mit verbesserter Performance bei der inkrementellen Compilierung
  • paralleler Download von Artefakten
  • Library Management API (erleichtert einen Wechsel von Ivy auf ein anderes System in der Zukunft)
  • ab SBT 1.0.0 wird Semantic Versioning verwendet
  • SBT 1.0.0 ist weder Source- noch Binär-Kompatibel mit 0.13., es gibt eine Anleitung für die Migration

Links

Java 9 wurde released

Nach mehrfacher Verschiebung wurde im September Java 9 released.

Änderungen, die potential für uns als Scala-Entwickler interessant sind:

Links

scalameta/scalamacros

Der Fokus von Scalameta hat sich verändert. Das Projekt wurde ursprünglich gestartet um Macros zu vereinfachen. Inzwischen wurden die Macros in ein eigenes Projekt ausgelagert.

Scalameta ist inzwischen allgemeiner angelegt, also Basis für Entwickler-Tools verschiedener Art, wie z.B.

Scalamacros

Zu Scalamacros findet man auf Github Beispiele für Macro-Annotations und def Macros, allerdings bisher wenig Dokumentation.

Roadmap

Inzwischen beteiligt das Scala Center sich bei der Implementierung (siehe SCP-014) und es gibt eine Planung für die nächsten Schritte:

  • Scala 2.12: Weitere Schritte über Compiler-Plugin
  • Dotty: Integration in den Compiler
  • Support für IntelliJ IDEA
  • Scala 2.13: Immer noch über Compiler-Plugin und Feature-Flags
  • Scala 2.14: Macros sollen nicht mehr experimentell sein und scala.reflect wird deprecated

Links

Scala AST im Browser untersuchen

  • AST explorer ist eine Web-Site mit der sich die Abstract Syntax Trees für beliebigen Code verschiedener Programmiersprachen analysieren lassen.
  • Gabriele Petronella hat unter Einsatz von Scalameta und Scala.js Scala-Unterstützung für den AST explorer implementiert, so dass Scala jetzt in der Liste der unterstützten Sprachen auftaucht.

Fazit

Wer mit Scala Macros experimentiert, dem kann der AST explorer die Arbeit deutlich vereinfachen.

Links

Catch bugs with Scalafix v0.5 | The Scala Programming Language

Scalafix kann nicht nur Code verändern sondern auch als Linter verwendet werden. Ein Blog Beitrag von Ólafur Páll Geirsson zeigt wie einfach es ist eigene Regeln für den Linter zu schreiben — zumindest wenn man sich ein bisschen mit Quasiquotes und Scalameta auskennt.

Links

Scala.js vs TypeScript

Sven hat Scala.js angepriesen. In letzter Zeit hat er sich mit TypeScript beschäftigt. Hier sein Vergleich:

Vorzüge von Scala.js

  • Scala halt
  • Kompakte Syntax (einzeilige case-Klassen)
  • Typ-Klassen
  • Declaration-Side Variance
  • Implicits
  • Shared Client-Server-Projekte (auf Scala-Basis)

Neutral

  • Mit Facebook’s immutable.js existiert eine gute Implementierung von immutable Collections.
  • Out-of-the-box automatische Tests mit Coverage-Analyse
  • Mächtiges Typ-System mit mächtiger Typ-Interference.

Vorzüge von TypeScript

  • Durchgängiges structural typing passt besser zum dynamischen Character von JavaScript. Außerdem ermöglicht es die schlanke Instanziierung von Interfaces mittels JavaScripts Object-Syntax.
    Typ-Konstrukte, die so bei Scala nicht möglich sind:
    • Union Types (A | B, string | number) passen gut JavaScript.
    • Intersection-Types (A & B) ermöglichen interessante Typisierungs-Lösungen, die mit Scala so nicht möglich sind.
    • Mit [mapped types] lassen sich leicht neue Typen auf Basis existierender erstellen (Partial, Readonly)
  • Zero Script-Size Overhead
  • Zero Runtime-Overhead
  • Unterstützung von TSX
  • Mächtiger Standard-Linter
  • Declaration-Files für die meisten, selbst wenig populäre JavaScript-Libraries
  • Tooling (IDE-Support, Debugging, Integration mit webpack und Co)
  • Turn-around-Zeiten
  • Popularität

Vorläufiges Fazit

Stand heute ist der Einsatz von Scala.js als JavaScript-Ersatz nur mit großen Kompromissen möglich:

  • Fassaden für JavaScript-Bibliotheken müssen manuell erstellt werden
  • Die generierten Bundles haben einen erheblichen Overhead
  • Das Debugging in Chrome ist aufgrund unpräziser Source-Maps und starker Optimierungen (fehlende Variablen) kaum brauchbar
  • Vor allem das Tooling kommt nicht annähernd and das von TypeScript heran. So müssen Templates häufig als Strings abgebildet werden wodurch viele Fehler erst zur Laufzeit auftreten.

Play 2.6.0 released

Ende Juni wurde Play 2.6.0 freigegeben. Über die Änderungen sprachen wir in Episode SP02/17 im Detail. Die wichtigsten Änderungen sind:

  • Unterstützung für Scala 2.12
  • Akka HTTP ersetzt Netty
  • Experimenteller Support für HTTP/2

Links

Scastie hat das Beta-Stadium verlassen

Scastie ist eine vom Scala Center Team betriebene interaktive Web-Seite, die es Dir ermöglicht Scala-Code im Browser auszuprobieren, auf den Servern zu speichern und zu teilen (ähnlich wie bei JSFiddle & Co.).

Gegenüber der Beta-Version wurde folgendes geändert:

  • Die Oberfläche wurde komplett aufgeräumt.
  • Neben den Standard-Scala-Versionen, dem Dotty und dem Typelevel-Compiler steht nun auch Scala.js als Target bereit.

Weiterhin vorhandene Features:

  • Über eine interaktive Suche kannst Du sämtliche im scaladex geführte Bibliotheken mit einem Klick hinzufügen und ausprobieren.
  • Wenn das immer noch nicht reicht kannst Du direkt das SBT-Script beeinflussen und so zum Beispiel beliebige Dependencies hinzufügen

Links

Underscore Books

Frei verfügbare eBooks rund um Scala.

Derzeit verfügbar:

  • Essential Scala
  • Essential Play
  • Advanced Scala with Cats
  • Essential Slick
  • Creative Scala
  • The Type Astronout’s Guide to Shapeless
  • The Lift Cookbook

Links

47deg/sbt-microsites

Von der Projektseite:

sbt-microsites is an SBT plugin that facilitates the creation of fancy microsites for your projects, with minimal tweaks.

What is a microsite?

A microsite is an instance of Jekyll, ready to publish a static web page for your new library. Some of the benefits of having these auto-generated web pages are:

  • You can write documentation easily in markdown format.
  • Templates, layouts, styles, and other resources will be able through the plugin at compile time.
  • You don’t have to deal with the styling.

Links

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. Scala 2.12.3 (00:01:49.037)
  3. SBT 1.0.0 (00:04:19.678)
  4. Java 9 (00:09:47.661)
  5. scalameta/scalamacros (00:28:24.547)
  6. AST explorer (00:39:39.765)
  7. ScalaFix als Linter (00:44:08.035)
  8. Scala.js vs. TypeScript (00:47:45.592)
  9. Play 2.6 released (01:16:03.907)
  10. Scastie hat das Beta-Stadium verlassen (01:19:02.552)
  11. Underscore Books (01:21:21.037)
  12. sbt-microsites (01:22:25.880)
  13. Outro (01:23:46.787)

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. Scala 2.12.3 (00:01:49)

3. SBT 1.0.0 (00:04:19)

4. Java 9 (00:09:47)

5. scalameta/scalamacros (00:28:24)

6. AST explorer (00:39:39)

7. ScalaFix als Linter (00:44:08)

8. Scala.js vs. TypeScript (00:47:45)

9. Play 2.6 released (01:16:03)

10. Scastie hat das Beta-Stadium verlassen (01:19:02)

11. Underscore Books (01:21:21)

12. sbt-microsites (01:22:25)

13. Outro (01:23:46)

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