+1 Good point. In general, keeping the common/runtime as simple as possible is quite important
> On 16 Feb 2015, at 16:05, Till Rohrmann <trohrm...@apache.org> wrote: > > +1 > > On Mon, Feb 16, 2015 at 3:38 PM, Aljoscha Krettek <aljos...@apache.org> > wrote: > >> +1 >> >> On Mon, Feb 16, 2015 at 3:18 PM, Fabian Hueske <fhue...@gmail.com> wrote: >>> +1 >>> >>> 2015-02-15 17:47 GMT+01:00 Stephan Ewen <se...@apache.org>: >>> >>>> I thought about adding a wiki page for that. >>>> >>>> On Sat, Feb 14, 2015 at 7:16 PM, Henry Saputra <henry.sapu...@gmail.com >>> >>>> wrote: >>>> >>>>> +1 to the idea >>>>> >>>>> I suppose no really action item for FLINK-1548? Maybe add doc about >>>>> contributing to Scala portion? >>>>> >>>>> >>>>> On Saturday, February 14, 2015, Stephan Ewen <se...@apache.org> >> wrote: >>>>> >>>>>> Hi everyone! >>>>>> >>>>>> Since a sizable portion of the Flink code is now in Scala (and more >> is >>>>>> coming in the API projects), I think we need to define a few >> guidelines >>>>> for >>>>>> Scala programming. >>>>>> >>>>>> Scala is very powerful and has a lot of "magic" features that allow >> you >>>>> to >>>>>> design killer nice APIs, but also make reasoning about code harder. >>>>>> Through the use of implicit parameters, lazy parameters, overriding >> of >>>>> base >>>>>> operators, functions that take code blocks, etc, you can easily >> write >>>>> code >>>>>> that does something entirely different than what it looks like >>>> initially. >>>>>> >>>>>> For APIs, I think we should embrace the power of these features to >> make >>>>> the >>>>>> APIs nice, convenient, and with intuitive syntax. After all, the >>>> elegance >>>>>> of the API matters a lot. >>>>>> >>>>>> For the runtime or anything below the APIs, I propose to refrain to >> a >>>>> large >>>>>> extend from the magic features. For those parts, I think it matters >>>> most >>>>>> that the code is predictable, it is easy to understand the >> implications >>>>> for >>>>>> also non-expert Scala programmers, and it is possible to peer >> review it >>>>>> through GitHub (where you do not see a difference between a lazy or >> an >>>>>> eager parameter). >>>>>> >>>>>> One example of such a change would be >>>>>> https://issues.apache.org/jira/browse/FLINK-1548 >>>>>> >>>>>> Summary: Be magic in the APIs, be explicit and simple in the >> runtime. >>>>>> >>>>>> Greetings, >>>>>> Stephan >>>>>> >>>>> >>>> >>