Hello Calcite Team,

I believe products are advancing through constant improvements rather than
freezing codebase. Why does nobody consider Kotlin as an opportunity to
improve Calcite? Indeed, most of the replies sound like: "I don't want to
learn Kotlin because it requires extra efforts, etc, etc."

Sincerely,
Igor

On Tue, Dec 17, 2019 at 4:20 PM Michael Mior <mm...@uwaterloo.ca> wrote:

> Le mar. 17 déc. 2019 à 03:30, Vladimir Sitnikov
> <sitnikov.vladi...@gmail.com> a écrit :
> >
> > Kevin>Focusing on the technical side of things, I agree that introducing
> a
> > new
> > Kevin>language is of little benefit currently
> >
> > Kevin, what is your opinion on removing Quidem language?
> > Focusing on the technical side, it is a standalone language.
> > The language is not Java, it has limited tooling, it has a limited set of
> > users, it has 0 or so questions on StackOverflow and so on.
>
> I'm not Kevin, but removing a language is quite different from
> introducing a new language. I wasn't around when Quidem tests were
> introduced, but I assume that similar concerns would have been raised.
>
> >
> > Kevin>I agree that introducing a new
> > Kevin>language is of little benefit currently
> >
> > Keeping tests easy to read, easy to edit, easy to create, easy to debug,
> > and easy to maintain is hard.
> > Making tests easy to read simplifies code reviews that pay off in the
> long
> > run.
>
> Agreed on those points. I'm not convinced though that having another
> language tests are written in will simplify code review. It may be
> true for someone equally literate in Java and Kotlin that in some
> instances, Kotlin tests will be easier to read. However, we know our
> current contributors are reasonably fluent in Java. I'm not sure about
> Kotlin.
>
> > It is sad you mention "code readability" as "little benefit currently"
> item.
> >
> > Kevin>surprised that a change went in to
> > Kevin>switch to Kotlin especially after the discussion that is happening
> on
> > the
> > Kevin>mailing list.
> >
> > Those are two different items. The discussion re $ is still open, and
> > there's no clear answer yet.
> > At the same time, in the very same thread, there were explicit opinions
> > that "tests that do not use $ might still benefit from improved
> > readability".
> >
> > The change in [2] is not related to the $-discussion, so I don't see why
> > people relate them.
> >
> > Kevin>I agree that introducing a new
> > Kevin>language is of little benefit currently
> >
> > It is not introducing a brand new language. The very same language is
> used
> > in the build scripts.
> > The language was designed for interoperability with Java, and it does
> > improve things if used appropriately.
> >
> > For instance, tests like
> >
> https://github.com/apache/calcite/pull/1657/commits/0d6bec4140da46af07d58cf07a5e682d61529603#diff-7a7027c499b6e4f5e7448b7b971052f1R85-R94
> > are
> > much easier to read and update than similar tests in Java.
>
> Assuming you understand, Kotlin, yes. I agree it's not exactly
> introducing a new language, but I think using Kotlin in tests is quite
> different from using it in build scripts. We expect most contributors
> to write tests. If build script editing is a bit less accessible, I
> think that's less of a concern.
>
> >
> > Note: Kotlin tests are still regular JUnit5 tests, so they get proper
> > statistics in the CI outputs like test count, skipped test count, failure
> > count, test duration.
> >
> > Kevin>In my opinion there are more negatives than positives
> > Kevin>currently.
> >
> > What your opinion re Kotlin is based on besides angst and "introducing a
> > new language"?
> > I can easily relate how the items play for writing tests COBOL, but,
> well,
> > I hope we don't consider that :)
> >
> > Kotlin is a modern language with good tooling.
> > It was designed for smooth Java interop which plays well for maintenance.
> > The code is easy to read, and it is copy-paste friendly in the same way
> as
> > almost any other language we currently have in the source repository.
> > So newbies could copy-paste Kotlin code or Java code or Quidem code.
> >
> > For instance, people might still create tests in Java and call methods
> > written in Kotlin. They might create "pure Java" tests if they like.
> > They might even create Quidem tests, but they won't be able to call
> > Java/Kotlin methods (and/or extend classes) then.
> >
> > It looks like you express an opinion on "let's rewrite everything in
> > Kotlin" rather than "let's pick the proper tools on a case by case
> basis".
> >
> > Currently, there are valid reasons against migrating all the tests to
> > Kotlin, and I guess we have never discussed that.
> > At the same time, we are not discussing "rewrite everything in Kotlin"
> here.
>
> I don't think anyone was discussing rewriting everything in Kotlin.
> But I think that's a straw man. Rewriting some things in Kotlin still
> has some of the same disadvantages.
>
> >
> > Vladimir
>

Reply via email to