neco4j (“new collections 4 Java”) ist ein Projekt, um immutable Colections und Datenstrukturen für Java 8 bereitzustellen.
Wir dachten dabei an immutable Gegenstücke zu den Standard-Collections (List, Set, Map), Tuple und Either, eventuell auch Gegenstücke zu Guava-Collections. Auch ergänzende Klassen (Zipper, Pattern-Matching) können hinzukommen.
Uns ist natürlich bekannt, dass es andere Bibliotheken in dieser Richtung gibt (functionaljava, pcollections, totally lazy…). neco4j soll sich von diesen wie folgt unterscheiden:
[ul]
[li] Größe: Eine kleine Bibliothek ohne weitere Abhängigkeiten
[/li][li] Interoperabilität: Keine “Ausgrenzung” mutabler Collections, sondern einfache Umwandlungsmöglichkeiten. Nutzung von Java-Standard-Klassen, wo es möglich ist. Am Java Standard angelehnte API.
[/li][li] Aktualität: Ausnutzung der Java 8 Features wie Lambdas, Default-Methoden u.s.w.
[/li][li] Kohärenz: Enger Bezug der Klassen aufeinander
[/li][li] Pragmatismus: Gute Performance, Verständlichkeit, keine theoretischen Spielereien.
[/li][/ul]
Zur Zeit arbeiten Marco13, cmrudolph und ich an neco4j. Wir haben beschlossen, den Code privat zu halten (BitBucket) bis wir etwas Vorzeigbares haben, was uns erst mal auf maximal 5 Committer beschränkt (sonst wird BitBucket kostenpflichtig).
*** Edit ***
Ach ja, noch eine Bemerkung zu meiner Arbeitsweise: Es mag momentan der Eindruck entstehen, dass ich bei vielen Sachen ungefragt voranpresche.
Mir ist Konsens und Diskussion in diesem Projekt sehr wichtig, und ich habe bestimmt nicht vor, hier eine Einmannshow hinzulegen. Aber ich habe auch die Erfahrung gemacht, dass nicht viel passiert, wenn man nicht einfach mal “macht”. Deshalb: Nichts ist in Stein gemeißelt, alles neue ist wirklich nur erst einmal ein Vorschlag. Wenn etwas nicht passt oder unklar ist, einfach “Stop” rufen.