abstraction layers that hurt

Hibernate is this tool that you can use, that means that you don't have to write any SQL in order to use a database. It's like a compiler for SQL: you write your code in java, and it compiles the SQL for you automatically.

The problem with Hibernate is that you have to be an expert in data storage theory in order to use it well. So at that point you may as well write the SQL, because let me tell you Hibernate is not a very good compiler. You have to spoon feed it your data structures, and in order to get it to work cleanly you have to give up a lot of speed and efficiency in your database design.

It does have some good data portability and regularity benefits, but I'm betting we'll never take advantage of them for our game. Abstraction Layers that don't reduce complexity, don't increase performance, and don't grant extra flexibility that you will actually use, should be avoided.

No comments:

Post a Comment