Benedict created CASSANDRA-10063:
------------------------------------

             Summary: Standardize use of collections, streams, iterables, 
functions, predicates etc.
                 Key: CASSANDRA-10063
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10063
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
            Reporter: Benedict
            Assignee: Benedict
             Fix For: 3.x


With the advent of Java 8 we have a lot of different mechanisms for achieving 
the same expression of ideas. We should standardize on (approximately) a single 
approach across the codebase, as this will help clarity, reduce development 
time (with less indecision about which set of tools to use, and how to 
interface between the two), and improve icache occupancy.

The problem is exacerbated by the difficulty of interfacing between the two 
paradigms, and this (IMO) introduces an unnecessary cognitive burden when they 
inevitably meet. We should pick one and fill in whatever we're missing to make 
it fit all of our needs. We should perform a bit of due diligence about the 
implementation details of any utility methods we use also, as having dived into 
a handful they are occasionally.... surprising. And probably not how we would 
implement them (take {{Ordering.leastOf}} as an example).

Since it is the future, I think we should be standardising on the JDK8 Streams 
API where possible. There are a couple of rough edges with interfacing with it 
in some places, but we can smooth them and the result should be much more 
legible code.

This really should not be a huge amount of work, and I expect will pay 
dividends quite quickly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to