+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 > > > > > >