Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
The moose likes JDBC and the fly likes SQL Antipatterns question - Database programmers vs Software programmers, the role of ORMs Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "SQL Antipatterns question - Database programmers vs Software programmers, the role of ORMs" Watch "SQL Antipatterns question - Database programmers vs Software programmers, the role of ORMs" New topic
Author

SQL Antipatterns question - Database programmers vs Software programmers, the role of ORMs

Michael Angstadt
Ranch Hand

Joined: Jun 17, 2009
Posts: 273

As a software developer, I always feel a little embarrassed for myself when I have to write some SQL and forget how to do something basic like an inner join. Do you think it's possible to be both a good database programmer and a good software programmer? Or are the two domains too complex for any one person to be an expert in both?

Also, with ORMs like Hibernate becoming more and more popular, do you think the role of the "database programmer" is becoming obsolete?

Thanks.


SCJP 6 || SCWCD 5
Bill Karwin
author
Ranch Hand

Joined: Aug 02, 2010
Posts: 32
Michael Angstadt wrote:As a software developer, I always feel a little embarrassed for myself when I have to write some SQL and forget how to do something basic like an inner join. Do you think it's possible to be both a good database programmer and a good software programmer? Or are the two domains too complex for any one person to be an expert in both?

Well I can tell you that no matter how much I program in Java or in SQL, I keep a collection of links to reference guides handy. I added a dropdown list of these links to my browser toolbar. There's too much to memorize, so make sure you keep resources close to you.

Also, with ORMs like Hibernate becoming more and more popular, do you think the role of the "database programmer" is becoming obsolete?

The benefit of an ORM is to speed up development, but it often produces very sub-optimal SQL code. Inevitably after you develop an application you find a few bottlenecks where you have to peel away the ORM abstraction layer and write the SQL by hand. This is called a Leaky Abstraction. http://www.joelonsoftware.com/articles/LeakyAbstractions.html

Some people try very hard to use the abstraction layer no matter how much it fails them. Or they try to compensate for bad code by adding more power to their server. But neither of these are an economical decision.


Bill Karwin is the author of SQL Antipatterns: Avoiding the Pitfalls of Database Programming
 
jQuery in Action, 2nd edition
 
subject: SQL Antipatterns question - Database programmers vs Software programmers, the role of ORMs