flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timo Walther (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FLINK-11063) Make flink-table Scala-free
Date Tue, 04 Dec 2018 10:32:00 GMT

     [ https://issues.apache.org/jira/browse/FLINK-11063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Timo Walther updated FLINK-11063:
    Affects Version/s: 1.7.0

> Make flink-table Scala-free
> ---------------------------
>                 Key: FLINK-11063
>                 URL: https://issues.apache.org/jira/browse/FLINK-11063
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table API &amp; SQL
>    Affects Versions: 1.7.0
>            Reporter: Timo Walther
>            Priority: Major
> Currently, the Table & SQL API is implemented in Scala. This decision was made a
long-time ago when the initial code base was created as part of a master's thesis. The community
kept Scala because of the nice language features that enable a fluent Table API like {{table.select('field.trim())}}
and because Scala allows for quick prototyping (e.g. multi-line comments for code generation).
The committers enforced not splitting the code-base into two programming languages.
> However, nowadays the {{flink-table}} module more and more becomes an important part
in the Flink ecosystem. Connectors, formats, and SQL client are actually implemented in Java
but need to interoperate with {{flink-table}} which makes these modules dependent on Scala.
As mentioned in an earlier mail thread, using Scala for API classes also exposes member variables
and methods in Java that should not be exposed to users. Java is still the most important
API language and right now we treat it as a second-class citizen.
> In order to not introduce more technical debt, the community aims to make the {{flink-table}}
module Scala-free as a long-term goal. This will be a continuous effort that can not be finished
within one release. We aim for avoiding API-breaking changes.
> A full description can be found in the corresponding [FLIP-28|https://cwiki.apache.org/confluence/display/FLINK/FLIP-28%3A+Long-term+goal+of+making+flink-table+Scala-free].
> FLIP-28 also contains a rough roadmap and serves as migration guidelines.
> This Jira issue is an umbrella issue for tracking the efforts and possible migration

This message was sent by Atlassian JIRA

View raw message