Gang,
I think I wrote in a blog somewhere;
"If all you have is an Object, everything looks like a Dependency."
and talking to friend, I once said something like; "Computer Science
has abstracted away reality, making programmers job much harder."
In my opinion, one of the biggest problem in our industry is
"abstractions of abstractions of abstractions", we want flexibility
and we see relationships and abstractions in places where there are
none.
Example;
public class Person
{
private String name;
private Age age;
:
}
public class Fossil
{
private String name;
private Age age;
:
}
and we go; "Hey, the Person and Fossil have something in common, so
let's create a NamedAgeUnit;
public class NamedAgeUnit
{
private String name;
private Age age;
:
}
public class Person extends NamedAgeUnit
{}
public class Fossil extends NamedAgeUnit
{}
Yeah, keep laughing. This is much, much more common than you think.
Even in YOUR code, MY code, everywhere... Perhaps not such blatantly
stupid, because most of the time it is a lot more abstract, making it
harder to notice.
Now, here at Qi4j we try to call an apple "Apple". And we don't try to
create AbstractionNirvana like most Computer Science scholars and
fanatics do. We are pragmatic, build system from top-down. Make the
difficult things at low level, instead of requiring more and more
"glue code", "acrobatic programmers" and "impedance mismatch" the
higher up the technology stack you go. I think our industry has been
going down the wrong track for long, and it is about time to change.
And the change is not dynamically types languages, or obscure language
features that can express the code in fewer lines. It is simpler than
that; The change we are talking about is that "Domain Code First", and
everything else has to adapt to that, instead of the "build another
layer on top of common platform below"
So, when you see things in Qi4j that don't seem to make sense or
missing.... It is probably on purpose! We don't want to give you
endless opportunity to f**k up. You focus on your domain code, and if
there are things that your domain requires that can't be done in Qi4j,
THEN let us know of your actual situation, the use-case.
Have a good day everyone.
Cheers
Niclas
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev