Hi Yaroslav,
Thanks for the feedback, that's much appreciated! Regarding Java
17 as a prerequisite, we would have to break compatibility
already since Scala 2.12.7 doesn't compile on Java 17 [1].
Given that we can only remove Scala APIs with the next major
Flink (2.0) version, would that still impact you a lot? I do
imagine that if we get to a Flink 2.0 version there would be more
breaking involved anyway. The biggest consequence of deprecating
support for Scala in Flink 1.x would be that new APIs would only
be available in Java, but since these don't exist yet there would
be no refactoring involved. I can imagine that we might change
something in an existing API, but that would have certain
compatibility guarantees already (depending if it's
Public/PublicEvolving/Experimental). If a change would happen
there, I think it would be smaller refactoring.
Best regards,
Martijn
[1] https://issues.apache.org/jira/browse/FLINK-25000
On Tue, Oct 4, 2022 at 10:58 AM Yaroslav Tkachenko
<yaros...@goldsky.com> wrote:
Hi Martijn,
As a Scala user, this change would affect me a lot and I'm
not looking forward to rewriting my codebase, and it's not
even a very large one :)
I'd like to suggest supporting Java 17 as a prerequisite
(https://issues.apache.org/jira/browse/FLINK-15736). Things
like switch expressions and records could simplify the
migration quite a bit. Would you consider adding it to the FLIP?
On Tue, Oct 4, 2022 at 10:50 AM Jing Ge <j...@ververica.com>
wrote:
Hi Martijn,
Thanks for bringing this up. It is generally a great
idea, so +1.
Since both scala extension projects mentioned in the FLIP
are still very young and I don't think they will attract
more scala developers as Flink could just because they
are external projects. It will be a big issue for users
who have to rewrite their large codebases. Those users
should be aware of the effort from now on and would
better not count on those scala extension projects and
prepare their migration plan before Flink 2.0.
Best regards,
Jing
On Tue, Oct 4, 2022 at 1:59 PM Martijn Visser
<martijnvis...@apache.org> wrote:
Hi Marton,
You're making a good point, I originally wanted to
include already the User mailing list to get their
feedback but forgot to do so. I'll do some more
outreach via other channels as well.
@Users of Flink, I've made a proposal to deprecate
and remove Scala API support in a future version of
Flink. Your feedback on this topic is very much
appreciated.
Regarding the large Scala codebase for Flink, a
potential alternative could be to have a wrapper for
all Java APIs that makes them available as Scala
APIs. However, this still requires Scala maintainers
and I don't think that we currently have those in our
community. The easiest solution for them would be to
use the Java APIs directly. Yes it would involve
work, but we won't actually be able to remove the
Scala APIs until Flink 2.0 so there's still time for
that :)
Best regards,
Martijn
On Tue, Oct 4, 2022 at 1:26 AM Márton Balassi
<balassi.mar...@gmail.com> wrote:
Hi Martjin,
Thanks for compiling the FLIP. I agree with the
sentiment that Scala poses
considerable maintenance overhead and key
improvements (like 2.13 or 2.12.8
supports) are hanging stale. With that said
before we make this move we
should attempt to understand the userbase affected.
A quick Slack and user mailing list search does
return quite a bit of
results for scala (admittedly a cursory look at
them suggest that many of
them have to do with missing features in Scala
that exist in Java or Scala
versions). I would love to see some polls on this
topic, we could also use
the Flink twitter handle to ask the community
about this.
I am aware of users having large existing Scala
codebases for Flink. This
move would pose a very large effort on them, as
they would need to rewrite
much of their existing code. What are the
alternatives in your opinion,
Martjin?
On Tue, Oct 4, 2022 at 6:22 AM Martijn Visser
<martijnvis...@apache.org>
wrote:
> Hi everyone,
>
> I would like to open a discussion thread on
FLIP-265 Deprecate and remove
> Scala API support. Please take a look at
>
>
https://cwiki.apache.org/confluence/display/FLINK/FLIP-265+Deprecate+and+remove+Scala+API+support
> and provide your feedback.
>
> Best regards,
>
> Martijn
> https://twitter.com/MartijnVisser82
> https://github.com/MartijnVisser
>