# Scala

Scala is a programming language that combines functional and object-oriented programming styles.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Interning at Khan Academy: from student to intern

DevFeed: [Interning at Khan Academy: from student to intern](<https://devfeed.tech/articles/interning-at-khan-academy-from-student-to-intern-27383.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/interning-at-khan-academy.htm>)

Author: Khan Academy

Published: 2016-12-12T23:00:00Z

Content type: article

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [React](<https://devfeed.tech/topics/react.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [es6](<https://devfeed.tech/topics/es6.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [es6](<https://devfeed.tech/tags/es6.md>), [features](<https://devfeed.tech/tags/features.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [intern](<https://devfeed.tech/tags/intern.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [news](<https://devfeed.tech/tags/news.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [react](<https://devfeed.tech/tags/react.md>), [student](<https://devfeed.tech/tags/student.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>), [web-frontend](<https://devfeed.tech/tags/web-frontend.md>)

### AI overview

A student intern describes two months working on Khan Academy's X-on-Mobile initiative. The article covers improving a mobile math keypad, fixing gesture-related bugs, adding interface features, learning idiomatic ES6 with React in production, and working with open-source libraries.

### Source excerpt

By Shadaj Laddad This past summer I had the amazing opportunity to work on a product I use ... Read more

## Co-Create: Building GitLab with our users

DevFeed: [Co-Create: Building GitLab with our users](<https://devfeed.tech/articles/co-create-building-gitlab-with-our-users-86.md>)

Original publisher: [Read original article](<https://about.gitlab.com/blog/co-create-h1-2026/>)

Author: Isa Huerga

Published: 2026-09-10T00:00:00Z

Content type: article

Language: en

Sources: [GitLab](<https://devfeed.tech/sources/gitlab.md>)

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [Application Security](<https://devfeed.tech/topics/application-security.md>), [Cloud APIs](<https://devfeed.tech/topics/cloud-apis.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [co-created](<https://devfeed.tech/tags/co-created.md>), [community](<https://devfeed.tech/tags/community.md>), [contributors](<https://devfeed.tech/tags/contributors.md>), [duo](<https://devfeed.tech/tags/duo.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>), [scala](<https://devfeed.tech/tags/scala.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

GitLab users collaborated through the Co-Create program on product improvements delivered in the first half of 2026, including API extensions, CI/CD capabilities, Scala support for AI-powered code understanding, security controls, and integration flexibility.

### Source excerpt

GitLab users bring firsthand experience of the workflows they want to improve. Through our Co-Create program, they collaborate directly with us to design, build, and deliver product improvements that benefit more teams. In the first half of 2026, our users helped us extend APIs, add CI/CD capabilities, expand language support for AI-powered code understanding, strengthen security controls, increase the flexibility of integrations, and make GitLab easier to use and understand. Co-Create gives customers a direct path from a real-world challenge to a product improvement. Customers collaborate with us on the problem and solution, and help deliver the change. Unlike a feedback-only model, this puts real workflow context into the product development process. It creates a shorter path from need to value while helping us validate improvements in real conditions and extend their benefits to more GitLab users. "Over ten years ago, we set out to build code.siemens.com, our internal coding platform based on GitLab, which today serves close to 100,000 people. We've run and scaled the platform with a tiny team, guided by a 'for developers, from developers' philosophy. We co-created hundreds of features such as x509/gpg signed commits, protected container/packages, and project and social features such as follow users, allowing us to strengthen the security and collaboration culture at the scale of Siemens." -- Roger Meier, Distinguished Engineer, Siemens From a specific need to a shared improvement Some of the best product improvements start with a specific, real-world need. GitLab contributors helped us address the following needs: Making Scala codebases understandable to Orbit and GitLab Duo Giving security administrators a way to enforce Secret Push Protection across an entire instance Letting high-throughput teams configure merge train pipeline limits Showing the platforms supported by multi-architecture images Providing screen reader users with more context on documentation pa

## Creator of Scala: Comparing Languages And How AI Will Impact Them | Martin Odersky

DevFeed: [Creator of Scala: Comparing Languages And How AI Will Impact Them | Martin Odersky](<https://devfeed.tech/articles/creator-of-scala-comparing-languages-and-how-ai-will-impact-them-martin-odersky-18089.md>)

Original publisher: [Read original article](<https://www.developing.dev/p/creator-of-scala-comparing-languages>)

Author: Ryan Peterman

Published: 2026-08-31T13:05:35Z

Content type: opinion

Language: en

Sources: [The Developing Dev](<https://devfeed.tech/sources/the-developing-dev.md>)

Topics: [Scala](<https://devfeed.tech/topics/scala.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [languages](<https://devfeed.tech/tags/languages.md>), [llms](<https://devfeed.tech/tags/llms.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

An interview with Martin Odersky, creator of Scala, compares Rust, Zig, Python, and Scala and discusses how AI may affect programming-language ecosystems. Odersky also explains functional programming as a style based on values and functions, with minimal mutable state and side effects.

### Source excerpt

There are so many choices every programming language creator makes while navigating engineering tradeoffs in building one.

## AWS Glue 6.0 now available with 30% lower price and full Apache Iceberg v3 support

DevFeed: [AWS Glue 6.0 now available with 30% lower price and full Apache Iceberg v3 support](<https://devfeed.tech/articles/aws-glue-6-0-now-available-with-30-lower-price-and-full-apache-iceberg-v3-support-4608.md>)

Original publisher: [Read original article](<https://aws.amazon.com/blogs/aws/aws-glue-6-0-now-available-with-30-lower-price-and-full-apache-iceberg-v3-support/>)

Author: Channy Yun (윤석찬)

Published: 2026-08-21T18:53:26Z

Content type: release

Language: en

Sources: [AWS News Blog](<https://devfeed.tech/sources/aws-news-blog.md>)

Topics: [Apache Iceberg](<https://devfeed.tech/topics/apache-iceberg.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>), [Python](<https://devfeed.tech/topics/python.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Geographic Information System](<https://devfeed.tech/topics/gis.md>), [Internet of things](<https://devfeed.tech/topics/iot.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [apache](<https://devfeed.tech/tags/apache.md>), [apache-iceberg](<https://devfeed.tech/tags/apache-iceberg.md>), [aws](<https://devfeed.tech/tags/aws.md>), [aws-glue](<https://devfeed.tech/tags/aws-glue.md>), [launch](<https://devfeed.tech/tags/launch.md>), [news](<https://devfeed.tech/tags/news.md>), [performance](<https://devfeed.tech/tags/performance.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [python-3-13](<https://devfeed.tech/tags/python-3-13.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [release](<https://devfeed.tech/tags/release.md>), [scala](<https://devfeed.tech/tags/scala.md>), [spark](<https://devfeed.tech/tags/spark.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

AWS Glue 6.0 is generally available with 30% lower pricing, a modernized Spark 4.1 runtime, Python 3.13 and Scala 2.13 support, and full Apache Iceberg v3 support. The release adds improved handling of semi-structured data, declarative ETL pipelines, faster PySpark execution, and real-time streaming with single-digit millisecond latency.

### Source excerpt

AWS Glue 6.0 is built on a fully modernized runtime, Apache Spark 4.1, Python 3.13, and Scala 2.13, delivering 30% lower pricing than previous AWS Glue versions.

## On programming languages, targets, and platforms

DevFeed: [On programming languages, targets, and platforms](<https://devfeed.tech/articles/on-programming-languages-targets-and-platforms-18923.md>)

Original publisher: [Read original article](<https://blog.frankel.ch/programming-languages-targets-platforms/>)

Author: Nicolas Fränkel

Published: 2026-06-21T00:00:00Z

Content type: opinion

Language: en

Sources: [Nicolas Fränkel](<https://devfeed.tech/sources/nicolas-frankel.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Java](<https://devfeed.tech/topics/java.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [java](<https://devfeed.tech/tags/java.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [languages](<https://devfeed.tech/tags/languages.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [python](<https://devfeed.tech/tags/python.md>), [rust](<https://devfeed.tech/tags/rust.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

A personal discussion of how programming languages have evolved from targeting a single compilation target and platform toward supporting multiple targets. It uses Scala.js as an example and mentions Kotlin and Clojure as other JVM-originated languages targeting JavaScript.

### Source excerpt

I started as a Java developer, but for some time now, I have broadened my horizons. Recently, I thought about how early languages were dedicated to a single target and platform, and now they are broadening their focus. In this post, I want to write down my thoughts in the hope that it may be useful to others, probably to my future self. Definitions You may have been wondering about the title terms.

## Project Valhalla Uses Java Value Classes to Reduce Domain-Primitive Overhead

DevFeed: [Project Valhalla Uses Java Value Classes to Reduce Domain-Primitive Overhead](<https://devfeed.tech/articles/rethink-domain-primitives-with-valhalla-41529.md>)

Original publisher: [Read original article](<https://dfa1.github.io/articles/rethink-domain-primitives-with-valhalla.html>)

Author: Davide Angelocola

Published: 2026-05-16T00:00:00Z

Content type: opinion

Language: en

Sources: [Davide Angelocola](<https://devfeed.tech/sources/davide-angelocola.md>)

Topics: [Project Valhalla](<https://devfeed.tech/topics/project-valhalla.md>), [JEP-401](<https://devfeed.tech/topics/jep-401.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Java](<https://devfeed.tech/topics/java.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [heap](<https://devfeed.tech/tags/heap.md>), [java](<https://devfeed.tech/tags/java.md>), [jep-401](<https://devfeed.tech/tags/jep-401.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [scala](<https://devfeed.tech/tags/scala.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

The article examines how Project Valhalla value classes can make domain-specific types more practical in performance-sensitive Java code. It focuses on flattening wrappers into arrays, registers, and object fields to reduce heap allocation, indirection, memory use, cache misses, and garbage-collection overhead.

### Source excerpt

Your Compiler Is Already Part of Your Security Team made the case for domain primitives: encode constraints in types, the compiler enforces them forever. The recurring objection -- a wrapper class per int is one heap object per value, plus a pointer to reach it. Fine at the boundary; questionable in a hot loop where allocations and cache misses dominate.

## How to really measure LLMs for JVM Code? A Benchmarking guide for late 2025

DevFeed: [How to really measure LLMs for JVM Code? A Benchmarking guide for late 2025](<https://devfeed.tech/articles/how-to-really-measure-llms-for-jvm-code-a-benchmarking-guide-for-late-2025-23020.md>)

Original publisher: [Read original article](<https://www.javaadvent.com/2025/12/how-to-really-measure-llms-for-jvm-code-a-benchmarking-guide-for-late-2025.html>)

Author: Artur Skowronski

Published: 2025-12-21T04:04:59Z

Content type: tutorial

Language: en

Sources: [Java Advent Calendar](<https://devfeed.tech/sources/java-advent-calendar.md>)

Topics: [LLM evaluation / benchmarking](<https://devfeed.tech/topics/llm-evaluation-benchmarking.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Java](<https://devfeed.tech/topics/java.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [2017](<https://devfeed.tech/tags/2017.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [coding](<https://devfeed.tech/tags/coding.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [llms](<https://devfeed.tech/tags/llms.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

This guide explains how to evaluate large language models for coding, focusing on benchmarks relevant to JVM languages such as Java, Kotlin, and Scala. It describes the shift from testing isolated code generation to assessing software-engineering tasks, including HumanEval, MBPP, and SWE-bench.

### Source excerpt

If you're reading this, you're probably already using some LLM for coding. Maybe it's Copilot, maybe Claude Code, maybe Cursor with Gemini enabled (or Cursor's own model). You know the drill. Do you truly expect the announcement "We are worst than competitors?" The problem is that when someone asks, "Which model is best for Java?", [...] The post How to really measure LLMs for JVM Code? A Benchmarking guide for late 2025 appeared first on JVM Advent.

## Scala Days 2025 Talk on Using Scala in a Go-First Company

DevFeed: [Scala Days 2025 Talk on Using Scala in a Go-First Company](<https://devfeed.tech/articles/new-website-scala-days-2025-announcement-41506.md>)

Original publisher: [Read original article](<https://chollinger.com/blog/2025/06/new-website-scala-days-2025-announcement/>)

Author: Christian Hollinger

Published: 2025-06-05T00:00:00Z

Content type: news

Language: en

Sources: [Christian Hollinger](<https://devfeed.tech/sources/christian-hollinger.md>)

Topics: [Scala](<https://devfeed.tech/topics/scala.md>), [data-engineering](<https://devfeed.tech/topics/data-engineering.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [ci](<https://devfeed.tech/topics/ci.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [networking](<https://devfeed.tech/topics/networking.md>)

Tags: [astro](<https://devfeed.tech/tags/astro.md>), [ci](<https://devfeed.tech/tags/ci.md>), [cli](<https://devfeed.tech/tags/cli.md>), [code](<https://devfeed.tech/tags/code.md>), [data-engineering](<https://devfeed.tech/tags/data-engineering.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [go](<https://devfeed.tech/tags/go.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [observability](<https://devfeed.tech/tags/observability.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [scala](<https://devfeed.tech/tags/scala.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

A personal announcement about speaking at Scala Days 2025 in Lausanne. The talk examines why and how to maintain a Scala 3 project in a company where Go is the default, including shared repositories, CI, tooling, deployments, on-call processes, and observability.

### Source excerpt

Some personal updates: My upcoming talk @ Scala Days 2025 in Lausanne, Switzerland, my new website, switching from Hugo, thoughts on the modern web & minimalism, and maintaining ink-free (for the ~2 people using my RSS feed).

## A Distributed System from scratch, with Scala 3 - Part 3: Job submission, worker scaling, and leader election & consensus with Raft

DevFeed: [A Distributed System from scratch, with Scala 3 - Part 3: Job submission, worker scaling, and leader election & consensus with Raft](<https://devfeed.tech/articles/a-distributed-system-from-scratch-with-scala-3-part-3-job-submission-worker-scaling-and-leader-election-consensus-with-raft-41505.md>)

Original publisher: [Read original article](<https://chollinger.com/blog/2025/05/a-distributed-system-from-scratch-with-scala-3-part-3-job-submission-worker-scaling-and-leader-election-consensus-with-raft/>)

Author: Christian Hollinger

Published: 2025-05-18T00:00:00Z

Content type: article

Language: en

Sources: [Christian Hollinger](<https://devfeed.tech/sources/christian-hollinger.md>)

Topics: [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [scaling](<https://devfeed.tech/topics/scaling.md>), [Raft](<https://devfeed.tech/topics/raft.md>), [parallel](<https://devfeed.tech/topics/parallel.md>)

Tags: [bridgefour](<https://devfeed.tech/tags/bridgefour.md>), [cats](<https://devfeed.tech/tags/cats.md>), [cats-effect](<https://devfeed.tech/tags/cats-effect.md>), [consensus](<https://devfeed.tech/tags/consensus.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [higher-kinded-types](<https://devfeed.tech/tags/higher-kinded-types.md>), [leader-election](<https://devfeed.tech/tags/leader-election.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [programming](<https://devfeed.tech/tags/programming.md>), [raft](<https://devfeed.tech/tags/raft.md>), [scala](<https://devfeed.tech/tags/scala.md>), [scaling](<https://devfeed.tech/tags/scaling.md>), [tagless-final](<https://devfeed.tech/tags/tagless-final.md>), [zio](<https://devfeed.tech/tags/zio.md>)

### AI overview

This third part of a Scala 3 distributed-system project describes updates to Bridge Four, including Scala upgrades, worker scaling, job submission, and leader election and consensus using Raft. The system uses a single leader and multiple workers for embarrassingly parallel workloads.

### Source excerpt

Upgrades to Bridge Four, the functional, effectful distributed compute system optimized for embarrassingly parallel workloads: Updating Scala, auto-scaling workers, and implementing leader election with Raft (or half of a replicated state machine).

## jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more

DevFeed: [jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more](<https://devfeed.tech/articles/jooq-3-20-released-with-clickhouse-databricks-and-much-more-duckdb-support-new-modules-oracle-type-hierarchies-more-spatial-support-decfloat-and-synonym-support-hidden-co-28953.md>)

Original publisher: [Read original article](<https://blog.jooq.org/jooq-3-20-released-with-clickhouse-databricks-and-much-more-duckdb-support-new-modules-oracle-type-hierarchies-more-spatial-support-decfloat-and-synonym-support-hidden-columns-scala-3-kotlin/>)

Author: lukaseder

Published: 2025-02-20T10:27:54Z

Content type: release

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [databricks](<https://devfeed.tech/topics/databricks.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [DuckDB](<https://devfeed.tech/topics/duckdb.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [jpa](<https://devfeed.tech/topics/jpa.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [databricks](<https://devfeed.tech/tags/databricks.md>), [decfloat](<https://devfeed.tech/tags/decfloat.md>), [dirty-tracking](<https://devfeed.tech/tags/dirty-tracking.md>), [dml-join](<https://devfeed.tech/tags/dml-join.md>), [duckdb](<https://devfeed.tech/tags/duckdb.md>), [hidden-columns](<https://devfeed.tech/tags/hidden-columns.md>), [jdk-21](<https://devfeed.tech/tags/jdk-21.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-20](<https://devfeed.tech/tags/jooq-3-20.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [json](<https://devfeed.tech/tags/json.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-2](<https://devfeed.tech/tags/kotlin-2.md>), [merge](<https://devfeed.tech/tags/merge.md>), [modules](<https://devfeed.tech/tags/modules.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [oracle-plsql-types](<https://devfeed.tech/tags/oracle-plsql-types.md>), [r2dbc](<https://devfeed.tech/tags/r2dbc.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [scala](<https://devfeed.tech/tags/scala.md>), [scala-3](<https://devfeed.tech/tags/scala-3.md>), [sequences](<https://devfeed.tech/tags/sequences.md>), [spatial](<https://devfeed.tech/tags/spatial.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

jOOQ 3.20 introduces experimental ClickHouse and Databricks SQL dialects, improves DuckDB support, adds new integration modules, and expands support for Oracle type hierarchies, spatial features, decfloat, synonyms, hidden columns, Scala 3, and Kotlin 2.

### Source excerpt

New dialects: jOOQ 3.20 ships with 2 new experimental dialects: ClickHouse is a fast-moving SQL dialect with a historic vendor-specific syntax that is gradually migrated to a more standards compliant alternative, which is why our support is still experimental. A lot of behaviours differ from what one would expect elsewhere, including NULL handling, which is ... Continue reading jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more ->

## Why Learning Scala Gave Me Déjà Vu of Kotlin: A Developer's Journey

DevFeed: [Why Learning Scala Gave Me Déjà Vu of Kotlin: A Developer's Journey](<https://devfeed.tech/articles/why-learning-scala-gave-me-deja-vu-of-kotlin-a-developer-s-journey-22877.md>)

Original publisher: [Read original article](<https://medium.com/mindorks/why-learning-scala-gave-me-d%C3%A9j%C3%A0-vu-of-kotlin-a-developers-journey-3126b0e80272?source=rss----f1a763fc7443---4>)

Author: Kavya P S

Published: 2024-10-16T06:49:14Z

Content type: opinion

Language: en

Sources: [Mindorks - Medium](<https://devfeed.tech/sources/mindorks-medium.md>)

Topics: [Scala](<https://devfeed.tech/topics/scala.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [beginners-guide](<https://devfeed.tech/tags/beginners-guide.md>), [developer](<https://devfeed.tech/tags/developer.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [journey](<https://devfeed.tech/tags/journey.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learning](<https://devfeed.tech/tags/learning.md>), [programming](<https://devfeed.tech/tags/programming.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

A Kotlin Android developer reflects on beginning to learn Scala for backend development and finding familiar concepts in its syntax and features. The article compares the languages through examples including conciseness, type inference, functional programming, null safety, extension functions, pattern matching, and operator overloading. The author notes that the comparison is based on only a few hours of Scala study.

### Source excerpt

Imagine you're 2 years deep into creating cool stuff with Kotlin for Android and you decide to venture into an unfamiliar territory -- Backend development with Scala. You are all prepared to start from zero. But as you go on, it feels strangely familiar, like meeting an old friend. Let me take you through my journey -- exploring Scala was a bit like déjà vu, reminding me of Kotlin in unexpected ways. Come along as I share this story of two coding worlds that seemed oddly similar to me! Disclaimer: Before I begin, I am only one day deep into Scala learning -- okay 2-5 hours deep thanks to this RockTheJVM tutorial! So, this article is not a consolidated list, but a spoiler before you learn the basics of Scala as a Kotlin developer (or vice versa). Before we begin, here's a "textbook" answer for similarities between Kotlin and Scala (thanks to ChatGPT) -- feel free to skip it! Kotlin and Scala, while having their unique features, share some similarities in their syntax. Here are a few key similarities between Kotlin and Scala:1. Conciseness: Both Kotlin and Scala are designed to reduce boilerplate code, allowing developers to write more with less. They provide concise syntax for common operations, making the code cleaner and easier to read. 2. Type Inference: Both languages support type inference, allowing developers to omit explicit type declarations in many cases. The compiler can often deduce the types based on the context, reducing verbosity in code. 3. Functional Programming Features: Both languages incorporate functional programming concepts. They support higher-order functions, immutable data structures, lambda expressions, and various functional programming paradigms. 4. Null Safety: Kotlin and Scala provide features to handle null references safely. Kotlin has a robust system with nullable and non-nullable types, while Scala includes options like `Option` or `Some` to deal with null values. 5. Extension Functions/Methods: Both languages support extension functions

## Improving my Distributed System with Scala 3: Consistency Guarantees & Background Tasks (Part 2)

DevFeed: [Improving my Distributed System with Scala 3: Consistency Guarantees & Background Tasks (Part 2)](<https://devfeed.tech/articles/improving-my-distributed-system-with-scala-3-consistency-guarantees-background-tasks-part-2-41502.md>)

Original publisher: [Read original article](<https://chollinger.com/blog/2024/02/improving-my-distributed-system-with-scala-3-consistency-guarantees-background-tasks-part-2/>)

Author: Christian Hollinger

Published: 2024-02-19T00:00:00Z

Content type: article

Language: en

Sources: [Christian Hollinger](<https://devfeed.tech/sources/christian-hollinger.md>)

Topics: [consistency](<https://devfeed.tech/topics/consistency.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [state-management](<https://devfeed.tech/topics/state-management.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [execution](<https://devfeed.tech/topics/execution.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [parallel](<https://devfeed.tech/topics/parallel.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [api](<https://devfeed.tech/tags/api.md>), [bridgefour](<https://devfeed.tech/tags/bridgefour.md>), [cache](<https://devfeed.tech/tags/cache.md>), [cats](<https://devfeed.tech/tags/cats.md>), [cats-effect](<https://devfeed.tech/tags/cats-effect.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [data](<https://devfeed.tech/tags/data.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [execution](<https://devfeed.tech/tags/execution.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [general](<https://devfeed.tech/tags/general.md>), [higher-kinded-types](<https://devfeed.tech/tags/higher-kinded-types.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [programming](<https://devfeed.tech/tags/programming.md>), [scala](<https://devfeed.tech/tags/scala.md>), [scala-3](<https://devfeed.tech/tags/scala-3.md>), [tagless-final](<https://devfeed.tech/tags/tagless-final.md>), [tasks](<https://devfeed.tech/tags/tasks.md>), [zio](<https://devfeed.tech/tags/zio.md>)

### AI overview

This article describes updates to Bridge Four, a distributed data-processing system built from scratch in Scala 3. It focuses on state management, consistency guarantees, background workers, caching, API semantics, and the system's single-leader, multi-worker architecture.

### Source excerpt

Improving Bridge Four, a simple, functional, effectful, single-leader, multi worker, distributed compute system optimized for embarrassingly parallel workloads by providing consistency guarantees and improving overall code quality (or something like that).

## How the Guardian improved Typerighter, its style-guide checking tool

DevFeed: [How the Guardian improved Typerighter, its style-guide checking tool](<https://devfeed.tech/articles/making-typerighter-work-harder-19958.md>)

Original publisher: [Read original article](<https://www.theguardian.com/info/2023/dec/11/making-typerighter-work-harder-engineering-blog>)

Author: Rhys Mills

Published: 2023-12-11T15:12:52Z

Content type: article

Language: en

Sources: [Guardian](<https://devfeed.tech/sources/guardian.md>)

Topics: [Tool](<https://devfeed.tech/topics/tool.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [Composer](<https://devfeed.tech/topics/composer.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [Library](<https://devfeed.tech/topics/library.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [content](<https://devfeed.tech/tags/content.md>), [library](<https://devfeed.tech/tags/library.md>), [quality](<https://devfeed.tech/tags/quality.md>), [quality-control](<https://devfeed.tech/tags/quality-control.md>), [regex](<https://devfeed.tech/tags/regex.md>), [scala](<https://devfeed.tech/tags/scala.md>), [tool](<https://devfeed.tech/tags/tool.md>), [web-app](<https://devfeed.tech/tags/web-app.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The Guardian describes improvements to Typerighter, a style-guide checking tool integrated with its Composer content management system. The system uses curated regular expressions and XML-based LanguageTool rules to identify potential spelling and grammar problems, and the article explains why expanding its use was important for live blogs.

### Source excerpt

How we improved Typerighter, the Guardian's style guide checker, to provide more value for the Guardian and its readers Minimising typos is important to a newspaper. Publishing messy prose might undermine trust in our overall quality control - why trust our political reporting if we can't spell Thérèse Coffey's name? We want to provide accurate information, and typos can mutate meaning - a single letter can transform a fiend to a friend and a bowl to a bowel. Worse, a missing word can turn a holy text into a wicked one. The Guardian is in the business of words, and we're keen to avoid "idiosyncratic" spelling decisions. That's why we built Typerighter, a tool that offers recommendations from our style guide into our content management system - Composer - and highlights errors well before the articles get in front of our readers. Continue reading...

## Building a Functional, Effectful Distributed Compute System from Scratch in Scala 3 (Part 1)

DevFeed: [Building a Functional, Effectful Distributed Compute System from Scratch in Scala 3 (Part 1)](<https://devfeed.tech/articles/building-a-functional-effectful-distributed-system-from-scratch-in-scala-3-just-to-avoid-leetcode-part-1-41500.md>)

Original publisher: [Read original article](<https://chollinger.com/blog/2023/06/building-a-functional-effectful-distributed-system-from-scratch-in-scala-3-just-to-avoid-leetcode-part-1/>)

Author: Christian Hollinger

Published: 2023-06-19T00:00:00Z

Content type: article

Language: en

Sources: [Christian Hollinger](<https://devfeed.tech/sources/christian-hollinger.md>)

Topics: [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [data-engineering](<https://devfeed.tech/topics/data-engineering.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [Platform Engineering](<https://devfeed.tech/topics/platform-engineering.md>), [parallel](<https://devfeed.tech/topics/parallel.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [bridgefour](<https://devfeed.tech/tags/bridgefour.md>), [cats](<https://devfeed.tech/tags/cats.md>), [cats-effect](<https://devfeed.tech/tags/cats-effect.md>), [data-engineering](<https://devfeed.tech/tags/data-engineering.md>), [data-platform-engineering](<https://devfeed.tech/tags/data-platform-engineering.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [high-performance](<https://devfeed.tech/tags/high-performance.md>), [higher-kinded-types](<https://devfeed.tech/tags/higher-kinded-types.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [programming](<https://devfeed.tech/tags/programming.md>), [scala](<https://devfeed.tech/tags/scala.md>), [scala-3](<https://devfeed.tech/tags/scala-3.md>), [tagless-final](<https://devfeed.tech/tags/tagless-final.md>), [zio](<https://devfeed.tech/tags/zio.md>)

### AI overview

The author explains building Bridge Four, a functional, effectful distributed data-processing system from scratch in Scala 3 as an alternative to practicing LeetCode problems. The project focuses on distributed systems and data-platform engineering, with later parts covering consistency, background tasks, job submission, worker scaling, leader election, and Raft consensus.

### Source excerpt

Building something that already exist (but worse) so I don't have to think about Leetcode: Bridge Four, a simple, functional, effectful, single-leader, multi worker, distributed compute system optimized for embarrassingly parallel workloads.

## Arrow 2.0's Trajectory

DevFeed: [Arrow 2.0's Trajectory](<https://devfeed.tech/articles/arrow-2-0-s-trajectory-25509.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/arrows-2-0-trajectory/>)

Author: Simon Vergauwen

Published: 2023-04-16T00:00:00Z

Content type: opinion

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [Java](<https://devfeed.tech/topics/java.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [arrow](<https://devfeed.tech/tags/arrow.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [oss](<https://devfeed.tech/tags/oss.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

A presentation transcription about Arrow's 10-year history, its trajectory toward version 2.0, functional programming in Kotlin, ecosystem cohesion, evolving APIs, and challenges faced by open-source projects.

### Source excerpt

This blog post is an improved version of the transcription of the presentation I gave at KotlinConf 2023. It discusses the 10-year history of Arrow, all the way from the first commit to the current state of the library. It also discusses the future of Functional Programming in Kotlin, and the challenges OSS projects face.

## Strava's Transition from a Ruby on Rails Monolith to Scala Microservices

DevFeed: [Strava's Transition from a Ruby on Rails Monolith to Scala Microservices](<https://devfeed.tech/articles/a-taste-of-pakora-26568.md>)

Original publisher: [Read original article](<https://medium.com/strava-engineering/a-taste-of-pakora-cf3b5de261ec?source=rss----89d4108ce2a3---4>)

Author: Avery Dunn

Published: 2022-11-01T16:02:01Z

Content type: opinion

Language: en

Sources: [Strava Engineering](<https://devfeed.tech/sources/strava-engineering.md>)

Topics: [Microservices](<https://devfeed.tech/topics/microservices.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [internships](<https://devfeed.tech/tags/internships.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [scala](<https://devfeed.tech/tags/scala.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

### AI overview

A Strava software engineering intern reflects on the company's transition from a Ruby on Rails monolith to Scala microservices. The article describes the intended benefits for team independence and developer experience, and notes that the API is evolving from REST to GraphQL.

### Source excerpt

My name is Avery Dunn and I am a rising master's student at Washington University in St. Louis studying computer science. For the past 12 weeks, I have been a software engineering intern on the API & Platform pod of the Foundation team. I am an active Strava user and have been for approximately 3 years with my favorite activity being running. Some other activities I enjoy are playing the piano, reading novels, or skiing (more of a luxury rather than a hobby). My internship at Strava has been a wonderful experience to help me learn, grow, and develop into becoming a more well-rounded, conscientious software engineer. Whether it was working with a recent hire or seasoned "Stravioli," the positive and ambitious company culture shined brightly throughout the course of the summer. In Transition From a Monolithic to Microservice Architecture Strava currently maintains a code monolith-a huge Ruby on Rails codebase that controls the user interface, business logic, and database access. For a growing company like Strava and the continuous development of ideas being made into new features, a code monolith doesn't make for a great developer experience. Trying to parse through a massive codebase and making sure that all the moving parts are in order so that a typo that was somehow glossed over can successfully be changed makes me a little dizzy, personally. The developers at Strava thought so too, and decided to embark on a transition from the Ruby on Rails singular software application to Scala microservices. Over the course of my internship, I gained insight into the process of restructuring a singular software application into Scala microservices and the benefits of that result. Scala microservices can be thought of as modules that work together but separately. They encourage diversification of teams such that each team has less of a dependence on one another like they would for a monolithic codebase. Figure 1: Comparison of a monolithic codebase architecture versus distribut

## Functional programming concepts and Scala features useful in data engineering

DevFeed: [Functional programming concepts and Scala features useful in data engineering](<https://devfeed.tech/articles/functional-programming-concepts-i-actually-like-a-bit-of-praise-for-scala-for-once-41495.md>)

Original publisher: [Read original article](<https://chollinger.com/blog/2022/06/functional-programming-concepts-i-actually-like-a-bit-of-praise-for-scala-for-once/>)

Author: Christian Hollinger

Published: 2022-06-01T00:00:00Z

Content type: opinion

Language: en

Sources: [Christian Hollinger](<https://devfeed.tech/sources/christian-hollinger.md>)

Topics: [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Object-oriented programming (OOP)](<https://devfeed.tech/topics/oop.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [design-patterns](<https://devfeed.tech/tags/design-patterns.md>), [effects](<https://devfeed.tech/tags/effects.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [go](<https://devfeed.tech/tags/go.md>), [java](<https://devfeed.tech/tags/java.md>), [oop](<https://devfeed.tech/tags/oop.md>), [procedural](<https://devfeed.tech/tags/procedural.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [scala](<https://devfeed.tech/tags/scala.md>), [tagless-final](<https://devfeed.tech/tags/tagless-final.md>), [types](<https://devfeed.tech/tags/types.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

An opinionated discussion of functional programming concepts and Scala features that the author finds useful in day-to-day data engineering work. It focuses on type-driven programming, composition, abstraction, and related design patterns rather than providing a complete tutorial.

### Source excerpt

Types, type classes, implicits, tagless-final, effects, and other things: Not everything in the world of functional programming is bleak and overly academic. A view on FP & scala concepts someone who loves to complain actually likes.

## Learning Scala at SoundCloud

DevFeed: [Learning Scala at SoundCloud](<https://devfeed.tech/articles/learning-scala-at-soundcloud-2072.md>)

Original publisher: [Read original article](<https://developers.soundcloud.com/blog//learning-scala-at-soundcloud>)

Published: 2022-04-19T00:00:00Z

Content type: article

Language: en

Sources: [SoundCloud Backstage Blog](<https://devfeed.tech/sources/soundcloud-backstage-blog.md>)

Topics: [Scala](<https://devfeed.tech/topics/scala.md>), [Go](<https://devfeed.tech/topics/go.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [developer](<https://devfeed.tech/tags/developer.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [learning](<https://devfeed.tech/tags/learning.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

A backend developer describes learning Scala after joining SoundCloud, where Scala is widely used for microservices. The article covers courses, books, varied study methods, help from colleagues, personal objectives, and differences between Go and Scala, including their approaches to concurrency and parallelism.

### Source excerpt

I'm a backend developer who worked extensively writing code in Golang before joining SoundCloud. SoundCloud mostly uses Scala for its...

## The End of the Public API Strangler

DevFeed: [The End of the Public API Strangler](<https://devfeed.tech/articles/the-end-of-the-public-api-strangler-2030.md>)

Original publisher: [Read original article](<https://developers.soundcloud.com/blog//end-of-the-strangler>)

Published: 2022-03-14T00:00:00Z

Content type: article

Language: en

Sources: [SoundCloud Backstage Blog](<https://devfeed.tech/sources/soundcloud-backstage-blog.md>)

Topics: [BFF](<https://devfeed.tech/topics/bff.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [Finagle](<https://devfeed.tech/topics/finagle.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [bff](<https://devfeed.tech/tags/bff.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [finagle](<https://devfeed.tech/tags/finagle.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

SoundCloud describes an eight-year migration of its public API from a monolithic Ruby on Rails application to a BFF using the Strangler pattern. The approach introduced a Scala service built with Finagle to proxy and augment API responses while functionality moved across microservices.

### Source excerpt

This is the story of how we used the Strangler pattern to migrate our public API from a monolithic codebase to a fully fledged BFF over the...

## Scala, Spark, Books, and Functional Programming: An Essay

DevFeed: [Scala, Spark, Books, and Functional Programming: An Essay](<https://devfeed.tech/articles/scala-spark-books-and-functional-programming-an-essay-41494.md>)

Original publisher: [Read original article](<https://chollinger.com/blog/2022/02/scala-spark-books-and-functional-programming-an-essay/>)

Author: Christian Hollinger

Published: 2022-02-27T00:00:00Z

Content type: opinion

Language: en

Sources: [Christian Hollinger](<https://devfeed.tech/sources/christian-hollinger.md>)

Topics: [Scala](<https://devfeed.tech/topics/scala.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>), [data-engineering](<https://devfeed.tech/topics/data-engineering.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Data Science](<https://devfeed.tech/topics/data-science.md>)

Tags: [essay](<https://devfeed.tech/tags/essay.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [oop](<https://devfeed.tech/tags/oop.md>), [programming](<https://devfeed.tech/tags/programming.md>), [scala](<https://devfeed.tech/tags/scala.md>), [spark](<https://devfeed.tech/tags/spark.md>)

### AI overview

An opinionated essay reflecting on learning functional programming as a data engineer, with particular attention to Scala, Spark, and the gap between using Scala-based tools and writing idiomatic Scala.

### Source excerpt

Reviewing 'Essential Scala' and 'Functional Programming Simplified', while explaining why Spark has nothing to do with Scala, and asking why learning Functional Programming is such a pain. A (maybe) productive rant (or an opinionated essay).

## Datalore Enterprise 2021.3: ячейки SQL, подключение Jupyter-ноутбуков к БД, интерактивные отчеты и многое другое

DevFeed: [Datalore Enterprise 2021.3: ячейки SQL, подключение Jupyter-ноутбуков к БД, интерактивные отчеты и многое другое](<https://devfeed.tech/articles/datalore-enterprise-2021-3-sql-jupyter-23947.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/593959/>)

Author: alenaguzharina (JetBrains)

Published: 2021-12-07T14:10:12Z

Content type: release

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [Data Science](<https://devfeed.tech/topics/data-science.md>), [jupyter](<https://devfeed.tech/topics/jupyter.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SQLAlchemy](<https://devfeed.tech/topics/sqlalchemy.md>), [R](<https://devfeed.tech/topics/r.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Amazon Redshift](<https://devfeed.tech/topics/amazon-redshift.md>), [Azure SQL](<https://devfeed.tech/topics/azure-sql.md>), [MariaDB](<https://devfeed.tech/topics/mariadb.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>)

Tags: [azure-sql](<https://devfeed.tech/tags/azure-sql.md>), [data](<https://devfeed.tech/tags/data.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [database](<https://devfeed.tech/tags/database.md>), [datalore](<https://devfeed.tech/tags/datalore.md>), [jupyter](<https://devfeed.tech/tags/jupyter.md>), [jupyterhub](<https://devfeed.tech/tags/jupyterhub.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [plus-a5524f17cbdd](<https://devfeed.tech/tags/plus-a5524f17cbdd.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [python](<https://devfeed.tech/tags/python.md>), [scala](<https://devfeed.tech/tags/scala.md>), [sql](<https://devfeed.tech/tags/sql.md>), [tag-4d3456108bed](<https://devfeed.tech/tags/tag-4d3456108bed.md>), [tag-b0c5f1e2d8ce](<https://devfeed.tech/tags/tag-b0c5f1e2d8ce.md>), [tag-baf5012a40ff](<https://devfeed.tech/tags/tag-baf5012a40ff.md>)

### AI overview

This release article presents Datalore Enterprise 2021.3, a data science platform for collaborative Jupyter notebooks. The update adds database connections and native SQL cells, with query results transferred to pandas DataFrames, support for R and Scala notebooks, reactive features, chart builders, and interactive report publishing.

### Source excerpt

Привет, Хабр! Datalore Enterprise -- это data science платформа для совместной работы с Jupyter-ноутбуками. Ее можно установить в частное облако или на приватный сервер компании. Новая версия 2021.3 позволяет специалистам по анализу и обработке данных работать с базами данных и SQL-кодом внутри Jupyter-ноутбуков, а также легко делиться результатами работы с коллегами. Также мы интегрировали поддержку ноутбуков R и Scala, добавили новый реактивный режим, реализовали конструкторы графиков и множество других функций. Читайте дальше, чтобы узнать о новых возможностях Datalore Enterprise 2021.3! Читать далее

## Обзор плагина Big Data Tools

DevFeed: [Обзор плагина Big Data Tools](<https://devfeed.tech/articles/big-data-tools-23923.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/JetBrains/articles/570088/>)

Author: olegchir (JetBrains)

Published: 2021-07-28T10:41:36Z

Content type: article

Language: ru

Sources: [JetBrains RU](<https://devfeed.tech/sources/jetbrains-ru.md>)

Topics: [ide](<https://devfeed.tech/topics/ide.md>), [big-data](<https://devfeed.tech/topics/big-data.md>), [Hadoop](<https://devfeed.tech/topics/hadoop.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>), [data](<https://devfeed.tech/topics/data.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [big-data](<https://devfeed.tech/tags/big-data.md>), [big-data-tools](<https://devfeed.tech/tags/big-data-tools.md>), [data](<https://devfeed.tech/tags/data.md>), [hadoop](<https://devfeed.tech/tags/hadoop.md>), [ide](<https://devfeed.tech/tags/ide.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [python](<https://devfeed.tech/tags/python.md>), [scala](<https://devfeed.tech/tags/scala.md>), [spark](<https://devfeed.tech/tags/spark.md>), [tools](<https://devfeed.tech/tags/tools.md>), [zeppelin](<https://devfeed.tech/tags/zeppelin.md>)

### AI overview

This article reviews JetBrains' Big Data Tools plugin for working with cloud file systems, Hadoop, Spark, and Zeppelin directly from an IDE. It explains the plugin's role in data-engineering workflows, including ETL, and notes support for Scala and Python.

### Source excerpt

Храните файлы в облачных файловых системах или, может быть, используете Hadoop, Spark и Zeppelin? А пробовали ли вы работать с ними напрямую из IDE? Привет, меня зовут Олег, я из команды плагина Big Data Tools. В этой статье мы поговорим, зачем этот плагин нужен, как применяется и где его достать. За последний год плагин прошёл большой путь и из экспериментального продукта превратился в боевое решение, на которое стоит взглянуть специалистам по Big Data. В JetBrains мы создаем IDE и другие инструменты, которые делают жизнь разработчиков лучше. Big Data Tools -- это очень узкоспециализированный, редкоземельный плагин, который предназначен для конкретного вида разработчиков -- для дата-инженеров. Если вам интересно подробней узнать о мире Big Data и работе дата-инженеров, рекомендую развернутую серию статей Паши Финкельштейна. Здесь мы рассмотрим одну из самых популярных схем. Читать далее

## Tackling the Awkward Squad for Reactive Programming

DevFeed: [Tackling the Awkward Squad for Reactive Programming](<https://devfeed.tech/articles/tackling-the-awkward-squad-for-reactive-programming-29482.md>)

Original publisher: [Read original article](<http://lambda-the-ultimate.org/node/5603>)

Published: 2020-09-15T17:48:50Z

Content type: article

Language: en

Sources: [Lambda the Ultimate](<https://devfeed.tech/sources/lambda-the-ultimate.md>)

Topics: [reactive](<https://devfeed.tech/topics/reactive.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [IO](<https://devfeed.tech/topics/io.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [effects](<https://devfeed.tech/tags/effects.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [ltu-forum](<https://devfeed.tech/tags/ltu-forum.md>), [programming](<https://devfeed.tech/tags/programming.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [reactive-programming](<https://devfeed.tech/tags/reactive-programming.md>), [scala](<https://devfeed.tech/tags/scala.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

This paper examines how reactive programming is embedded within applications that also use imperative languages such as JavaScript or Scala. It identifies long-running computations, side effects, and coordination between imperative and reactive code as key concerns, then proposes the Actor-Reactor Model, which separates actors and reactors and composes them through data streams. The model is demonstrated in the Stella language.

### Source excerpt

https://2020.ecoop.org/details/ecoop-2020-papers/19/Tackling-the-Awkward-Squad-for-Reactive-Programming-The-Actor-Reactor-Model Sam Van den Vonder, Thierry Renaux, Bjarno Oeyen, Joeri De Koster, Wolfgang De Meuter Reactive programming is a programming paradigm whereby programs are internally represented by a dependency graph, which is used to automatically (re)compute parts of a program whenever its input changes. In practice reactive programming can only be used for some parts of an application: a reactive program is usually embedded in an application that is still written in ordinary imperative languages such as JavaScript or Scala. In this paper we investigate this embedding and we distill "the awkward squad for reactive programming" as 3 concerns that are essential for real-world software development, but that do not fit within reactive programming. They are related to long lasting computations, side-effects, and the coordination between imperative and reactive code. To solve these issues we design a new programming model called the Actor-Reactor Model in which programs are split up in a number of actors and reactors. Actors and reactors enforce a strict separation of imperative and reactive code, and they can be composed via a number of composition operators that make use of data streams. We demonstrate the model via our own implementation in a language called Stella.

## Gradle vs Bazel for JVM Projects

DevFeed: [Gradle vs Bazel for JVM Projects](<https://devfeed.tech/articles/gradle-vs-bazel-for-jvm-projects-24635.md>)

Original publisher: [Read original article](<https://blog.gradle.org/gradle-vs-bazel-jvm>)

Author: Piotr Jagielski

Published: 2020-06-30T04:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [bazel](<https://devfeed.tech/tags/bazel.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [comparisons](<https://devfeed.tech/tags/comparisons.md>), [ecosystem](<https://devfeed.tech/tags/ecosystem.md>), [github](<https://devfeed.tech/tags/github.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [performance-analysis](<https://devfeed.tech/tags/performance-analysis.md>), [projects](<https://devfeed.tech/tags/projects.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [speed](<https://devfeed.tech/tags/speed.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>)

### AI overview

This article compares Gradle and Bazel for JVM projects. It reports that Gradle performed better in nearly all tested scenarios, while Bazel optimization required substantially more build authoring and maintenance effort. The article also evaluates build-system capabilities, performance factors, and common JVM use cases.

### Source excerpt

Introduction Gradle has emerged as the build tool of choice for projects within the JVM ecosystem, including Kotlin. It is the most popular build tool for open source JVM projects on GitHub. It is downloaded on average more than 15 million times per month and has been counted in the Top 20 Most Popular Open Source Projects for IT by Techcrunch. Many popular projects have migrated from Maven to Gradle, with Spring Boot being a prominent example. Recently, we have received inquiries about the suitability of Google's Bazel build tool for usage within JVM environments. What follows is a detailed comparative performance analysis and evaluation of key capabilities, that arrives at three major conclusions: Despite Bazel's strong and well-deserved reputation for performance and scalability, Gradle outperforms Bazel in almost every scenario we tested. Optimizing projects for Bazel comes at a significant cost for build authoring and maintenance. Gradle provides more compelling features and conveniences for common use cases in JVM projects. In summary, the data and analysis indicates clearly that Gradle is a better choice than Bazel for most JVM projects. We will provide an equivalent comparison for Android projects in a follow up article. At the same time, recognizing that individual tools have unique strengths in addressing the needs and requirements of specific developer ecosystems and specific use cases, we expect that build tool specialization and fragmentation will continue to be the norm across and even within these ecosystems (e.g. Gradle and Maven). In recognition of this, Gradle Enterprise provides analytics and acceleration for more than just Gradle. This allows users to benefit from faster and more reliable builds without migrating to any specific build tool. Today this includes Gradle and Maven, but will include Bazel and other tools in the future. To learn more about the acceleration technology supported in Gradle Enterprise for the Gradle, Maven, and soon Bazel

[Next page](<https://devfeed.tech/topics/scala.md?cursor=WyIyMDIwLTA2LTMwVDA0OjAwOjAwKzAwOjAwIiwgImVhODdiOWU2LTYyNjktNGE5Ny1iYWYyLTU0ZjM2MDc1YzQ2ZCJd>)