The big problem they seem to have is that they have learned their design off of relational databases and they don't really get that java has been wrestling with the object oriented/relational mismatch for 10+ years.
So they don't really get the advantages of mapreduce/nosql/etc aside from the fact that they have heard that it scales. But on a more fundamental level it is about having one design rather than two designs that mismatch.
http://www.reddit.com/r/programming/comments/25su19/tdd_is_a_feedback_tool_not_a_religion/
Has a very good comment that basically describes the issue
- someone comes up with an idea
- others like the idea
- The less experienced use said idea to avoid making actual decisions
- The more experienced use it as another tool to make better decisions in general
- eventually the less experienced become experienced and start realizing the idea isn't the panacea they thought it was
- There's a backlash and lots of infighting
- It eventually settles down and everyone tends to have a more pragmatic idea of when it's best to apply the idea, and when it isn't. When it works, and when it falls down (and why). In other words, all of the infighting had a net positive effect.
- Someone comes up with an idea...
- Ad Nauseum.
I agree totally with the idea that "on a more fundamental level it is about having one design rather than two designs that mismatch." That is why I don't waste my time with Object Oriented Design and stick with Database Design (the rules of Normalisation) instead. After designing and building my database tables I then use my Class Generator to generate a separate class file for each database table. In this way my software and database structures are ALWAYS in sync, there is NEVER any mismatch, and so there is NEVER any need for that abomination called an Object Relational Mapper (ORM).
ReplyDelete