Timo Walther created FLINK-11063:
------------------------------------
Summary: 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 & SQL
Reporter: Timo Walther
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 blockers.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)