Hi Martijn
I do not maintain a large production application based on Flink, so it
would not be a problem for me to convert existing implementations to
whatever API.
I am working in the area of cultural heritage, which is mainly about the
processing of structured (meta)-data (scientific libraries, archives and
museums)
My impression: People without much background/experience with Java
implementations find it easier to get into the functional mindset as
supported in Scala. That's why I think it would be very unfortunate if
the use of Scala in Flink becomes more and more limited or neglected.
I think using the Java API in Scala is a possible way also in my
environment.
In the last weeks I tried to port the examples from the "Flink Course"
of Daniel Ciorcilan (https://rockthejvm.com/p/flink - he mainly offers
Scala courses), which are exclusively based on the native Scala API, to
the Java API. This has worked without any problems as far as I can see.
So far I haven't tried any examples based on the Table API or streaming
workflows in batch mode (which would be important for our environment).
My main trouble: So far I don't know enough about the limitations of
using the Java API in a Scala implementation and what that means. My
current understanding: the limitation is mainly in deriving the type
information in generic APIs with Scala types. For me it would be very
significant and helpful if there would be more information, descriptions
and examples about this topic.
So far unfortunately I had too little time to deal with a wrapper like
flink-scala-api (https://github.com/findify/flink-scala-api ) and the
current alternative is probably going to be deprecated in the future
(https://github.com/ariskk/flink4s/issues/17#issuecomment-1125806808 )
Günter
On 04.10.22 13:58, Martijn Visser 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
>
--
Günter Hipler
University library Leipzig