I also noticed that we two replies in a separate thread on the User mailing
list, which can be found at
https://lists.apache.org/thread/m5ntl3cj81wg7frbfqg9v75c7hqnxtls.

I've included Clayton and David in this email, to at least centralize the
conversation once more :)



On Wed, Oct 5, 2022 at 11:36 AM Martijn Visser <martijnvis...@apache.org>
wrote:

> @Maciek
>
> I saw that I missed replying to your question:
>
> > Could you please remind what was the conclusion of discussion on
> upgrading Scala to 2.12.15/16?
> > https://lists.apache.org/thread/hwksnsqyg7n3djymo7m1s7loymxxbc3t - I
> couldn't find any follow-up vote?
>
> There is a vote thread, but that never got enough votes. See
> https://lists.apache.org/thread/l93l5qqr5n2oty3r2bjsz3ks3tjf1655
>
> > If it's acceptable to break binary compatibility by such an upgrade,
> then upgrading to JDK17 before 2.0 will be doable?
>
> I'm not sure, because I don't think a discussion and vote has been made
> yet if upgrading JDK17 can/will be done in a Flink 1.0 release or if it
> requires a 2.0 release. It was mentioned in the original discussion thread
> on dropping Java 8 support within 2/3 releases, but if I recall correctly
> there was no discussion yet on when Java 17 support would be added [1].
>
> Best regards,
>
> Martijn
>
> [1] https://lists.apache.org/thread/0fwo7nwzy51gck4vxhyfnbnttd4jycpx
>
> On Wed, Oct 5, 2022 at 6:58 AM Gaël Renoux <gael.ren...@datadome.co>
> wrote:
>
>> > I'm curious what target Scala versions people are currently interested
>> in.
>> > I would've expected that everyone wants to migrate to Scala 3, for
>> which several wrapper projects around Flink already exist
>>
>> The Scala 3 tooling is still subpar (we're using IntelliJ), so I'm not
>> sure I would move my team to Scala 3 right now (I'm currently toying with
>> it on a personal project). In addition, moving to Scala 3 is not completely
>> free - you have to do some rewrites, and developers will need some
>> adaptation time. Scala 2.13 is another thing entirely, we've wanted to
>> migrate for a long while.
>>
>> On Wed, Oct 5, 2022 at 12:53 PM Chesnay Schepler <ches...@apache.org>
>> wrote:
>>
>>> > It's possible that for the sake of the Scala API, we would
>>> occasionally require some changes in the Java API. As long as those changes
>>> are not detrimental to Java users, they should be considered.
>>>
>>> That's exactly the model we're trying to get to. Don't fix
>>> scala-specific issues with scala code, but rather on the Java side as much
>>> as possible which could also benefit other JVM languages (e.g., Kotlin).
>>>
>>> > A question regarding the Flink wrapper: would it be possible to keep
>>> it under the Flink project's umbrella? Or does it need to be a completely
>>> separate structure? I'm not aware of the full organizational implications
>>> of this, I'm afraid.
>>>
>>> Technically it can be under the Flink umbrella, but then Flink would
>>> still be (at least for a while) be the bottleneck because we'd have to
>>> review any changes coming in.
>>> That would only improve once several new committers were added to take
>>> care of this project.
>>> (In the end you'd just split Flink and the Scala API _codebases_, but
>>> achieve little else)
>>>
>>> > And if that is what it takes to move beyond Scala 2.12.7… This has
>>> been a big pain point for us.
>>>
>>> I'm curious what target Scala versions people are currently interested
>>> in.
>>> I would've expected that everyone wants to migrate to Scala 3, for which
>>> several wrapper projects around Flink already exist.
>>>
>>> On 05/10/2022 12:35, Gaël Renoux wrote:
>>>
>>> Hello everyone,
>>>
>>> I've already answered a bit on Twitter, I'll develop my thoughts a bit
>>> here. For context, my company (DataDome) has a significant codebase on
>>> Scala Flink (around 110K LOC), having been using it since 2017. I myself am
>>> an enthusiastic Scala developer (I don't think I'd like moving back to
>>> Java)
>>>
>>> Given that, I think separating the Scala support from Flink is actually
>>> a good move long term. We would then have a full-Java Flink, and a separate
>>> Scala wrapper. It would help a lot in solving the skills issue: Flink
>>> maintainers would no longer need to be fluent in Scala, and maintainers of
>>> the Scala wrapper would not need a deep knowledge of Flink's inner
>>> workings, just the API would be sufficient. And if that is what it takes to
>>> move beyond Scala 2.12.7… This has been a big pain point for us.
>>>
>>> I'm not too worried about finding contributors for the Scala wrapper.
>>> Within my company, we have developed additional wrappers and extension
>>> methods (for parts where we felt the Flink Scala API was insufficient), and
>>> we've been looking at ways we could contribute back. What held us back was
>>> our lack of knowledge of the full Flink environment (we're only using the
>>> Scala Datastream API). I don't think we're the only ones in that situation.
>>> One major point, though, is that Flink developers would not be completely
>>> rid of us ;-) It's possible that for the sake of the Scala API, we would
>>> occasionally require some changes in the Java API. As long as those changes
>>> are not detrimental to Java users, they should be considered.
>>>
>>> A question regarding the Flink wrapper: would it be possible to keep it
>>> under the Flink project's umbrella? Or does it need to be a completely
>>> separate structure? I'm not aware of the full organizational implications
>>> of this, I'm afraid.
>>>
>>> Finally, the hard part would be the migration to the new version. My
>>> dream solution would be to have the existing Scala API be entirely
>>> converted into a Scala wrapper over the Java API. That way, migration would
>>> be pretty minimal: add a dependency, change the imports for the Scala API,
>>> and we're done. However, even starting from the existing flink4s project,
>>> that's still quite a lot of work. So, more realistically, I'd settle for at
>>> least a partial implementation. We would have some broken code that we
>>> could fix, but at the very least I'd like the basic DataStream functions
>>> (process, uid, name…) to be available.
>>>
>>> Thanks for all the work that went into making Flink what it is!
>>>
>>>
>>> Gaël Renoux - Lead R&D Engineer
>>> E - gael.ren...@datadome.co
>>> W - www.datadome.co
>>>
>>>
>>>
>>> On Wed, Oct 5, 2022 at 9:30 AM Maciek Próchniak <m...@touk.pl> wrote:
>>>
>>>> Hi Martin,
>>>>
>>>> Could you please remind what was the conclusion of discussion on
>>>> upgrading Scala to 2.12.15/16?
>>>> https://lists.apache.org/thread/hwksnsqyg7n3djymo7m1s7loymxxbc3t - I
>>>> couldn't find any follow-up vote?
>>>>
>>>> If it's acceptable to break binary compatibility by such an upgrade,
>>>> then upgrading to JDK17 before 2.0 will be doable?
>>>>
>>>>
>>>> thanks,
>>>>
>>>> maciek
>>>>
>>>>
>>>> On 04.10.2022 18:21, Martijn Visser wrote:
>>>>
>>>> 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
>>>>>>>> >
>>>>>>>>
>>>>>>>
>>>

Reply via email to