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

Reply via email to