June 12, 2016

LambdaOmega V. 0.3: Even more concise Java Collections!



LambdaOmega 0.3 is now RELEASED! LambdaOmega is an open-source wrapper library around Java collections and lambdas to make them more concise and enjoyable to work with. The newest release completes collections support by adding a wrapper for Set.

Inspired by the concise collections and functions syntax of technologies like Groovy and JavaScript / lodash, LambdaOmega wraps around Java collections in order to increase ease of development, allowing you to write less code:
Map<String, Integer> map = m("a", 0).i("b", 1).i("c", 2).m;
V. 0.3 added Set support:
Set<Integer> set = set(0, 1, 2);
You can easily pipe and execute functions:
List<Integer> list2468 = l(0, 1, 2).a(3).Map(it -> it + 1).map(it -> it * 2);
Previously, V. 0.2 added a grand unified Functional Interface – use one interface instead of 29 / 12 mutually incompatible interfaces when defining a lambda function:
boolean yes = F((int it) -> it > 0).call(1);
And there’s more:
  • A more powerful yet more concise API which unifies Collection and Map access
  • Convenience classes for Integer ranges and 2D vectors
  • Functions to “convert everything into everything”
  • A drop-in replacement for the bloated, buggy CompletableFuture class.
Please feel free to visit the project’s repository on GitHub where you’ll find its exhaustive documentation. You can download its current release as a JAR file or look up the Maven dependency information.

Feedback welcome!

With Collections support being completed and thoroughly tested (>= 90%), I think the first stable release 1.0 is now quite close already. I’ll use the next release, 0.4, for small enhancement and for API cleanup.

I strongly encourage you to check out the current release and to test it out. Your feedback is highly appreciated!

If you think something important (within the scope of the project) is still lacking, or if you think some part of the API needs revision, please feel free to file an issue on the GitHub project, or comment on this article. I will gladly include your propositions into the next release before fixating the API in the first stable release.

Conclusion

I’m happy LambdaOmega is approaching its first final release. Actually, this is the first of my own open source projects to make it to the 0.3 version. (I guess creating 0.2 is easy as you’re still “in the flow”, and 0.3 really shows long-term commitment…)

Again, please check out the project on GitHub, and as always, let me know your thoughts in the comments section below. Thank you for your interest in LambdaOmega.

No comments:

Post a Comment