Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Jodd is set of Java micro frameworks, tools and utilities, under 1.5 MB.

Curious, what do they mean by 'micro'?



"Doesn't have all the features that I think are unimportant."


I think the basis for comparison is spring, which has a sprawling API. That is the 800lb gorilla of java frameworks.



And as always when someone posts this - we are at Spring 4 now, update your funny bookmarks.

Here you go: http://docs.spring.io/spring/docs/4.1.6.RELEASE/javadoc-api/... http://docs.spring.io/spring/docs/4.1.6.RELEASE/javadoc-api/...

These are framework classes that you will never have to see or use when building a Spring application.

Spring is surely not perfect, most people don't have the slightest clue what a modern Spring Application (read into Spring Boot) looks like.


This is what happens when you take something good (patterns) too far, and then keep going.


Modern spring is amazing. Look into it. It's no longer the configuration hell it was 10 years ago. Everything is convention Over configuration. It's easy to run and configure.


I've started using java just recently, spent years in C/C++/etc... So is spring the java equivalent of boost?


Not quite. Although i don't know C++ well enough to be sure.

Spring started life as a dependency injection framework, and that still constitutes the central part of it. Dependency injection is the mechanism by which components of an application are created and assembled, and so there was a natural expansion of Spring into providing those components. Spring now provides a web framework, plumbing for database persistence, batch processing, and all sorts of other things:

https://spring.io/platform

AIUI, Boost is a collection of libraries. Spring is much more frameworky than that. The general approach with Spring is to add a particular module to your project, sprinkle a few magic annotations on your code, then watch in wonder as lots of sophisticated stuff happens, exactly as Spring's designers foresaw. Usually.

There are two main alternatives to Spring. Firstly, Java EE, which is similar in spirit, smaller in extent, and the product of a decades-long standards process involving some of the world's most ponderous companies, but really not as bad as that might suggest:

http://www.oracle.com/technetwork/java/javaee/overview/index...

And in fact, i'd describe Spring as an alternative to Java EE, rather than vice versa.

Secondly, not using a framework at all, and just putting everything together yourself. To a large extent, Dropwizard etc are the result of people doing this, then posting the reusable bits of their application to GitHub.

Java's equivalent of Boost is probably some combination of Apache Commons:

http://commons.apache.org/

And Google Guava:

https://code.google.com/p/guava-libraries/

The difference is that if you're using Spring, then you are writing a Spring application. Every part of your code will be pervaded by Spring, and you will have to do things in the way Spring prescribes. If you're using Commons or Guava, your application is your own, and those libraries will crop up here and there, where you choose to use them.


These things actually exist?!


They do, and I think more unsettling is the fact that they are completely serious about doing these things. The widespread use of IDEs that autocomplete probably leads to a feeling of indifference ("I don't have to type it all anyway.")

Also related is the forced convention of requiring one directory nesting level per package name component, resulting in deeply-nested mostly-empty directories that have a tendency to easily exceed filesystem limits.

Here's another ridiculous class name found in different project (AspectJ):

http://aspectj.sourcearchive.com/documentation/1.6.5plus-pdf...


Really accurate methods names are a Good Thing, because you are less likely to be surprised at what they do.

AbstractProxyFactoryBeanInstanceSingletonCommand is not, because it is too abstract. Typing the name is not so bad though.


Words cannot describe...


I am a Java programmer and I consider Jodd micro. YMMW.


that's exactly what I thought. What I would like is something like those JS frameworks where you can choose what you want and generate the lib that suits your needs.

Customisation over configuration.


> Customisation over configuration.

Composition over Inheritance.


http://jodd.org/download/

When using maven you can pick and choose the modules you want.


I know, I was talking about having a simple ui where you check check check and "pom" you have the libraries that you want.

Edit: The ui generates the dependencies for your pom. I know how maven works, and it's a pain to copy all those xml snippets in your pom.


But... that's the point of Maven and other package managers. Why does it need a UI like that? Unlike JS, the tradition in Java development is to use managed dependencies rather than download JARs for everything and throw them in /lib.


Maven needs a UI because of its pathologically-verbose XML syntax. Compare a pom.xml with its Gradle equivalent...only one is designed with humans in mind.


Which is why I said "and other package managers." My point was that a UI like the one to build a custom Bootstrap download doesn't make sense in the Java world because we have package managers, unmanaged dependencies are not the norm in most projects.


Most IDEs will let you search Maven Central in a UI and add those pesky snippets to your pom for you.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: