Jump over to the Oracle Code home page and you will see the “mission statement” of the Oracle Code conference series:
“Learn from technical experts in sessions for developing software in Java, Node.js, and other languages and frameworks.”
You might hence be thinking that “old school” stuff like (relational) database technology has no place at such a conference, and certainly the agenda looks slanted away from database technologies. But I think you’re wrong and here is why I think that. I did a talk in Bangalore last week at the Oracle Code event there (which by the way was a wonderful event, so thanks to all that came along) on some SQL language techniques. After the talk, one of attendees came up to me, thanked me for the talk and said this (I’m paraphrasing):
“It was really interesting to see all the stuff that you could do in SQL. I’m a Java person, and whenever I have complicated data requirements, I have always simply retrieved the data from the database and then done the complex part of the operations in Java. But your session has convinced me to explore doing some of that in SQL”
It is so easy to have a bias for the technology(s) that you are most capable with. I am just as guilty of that as anyone. I’ll generally look for a SQL or PL/SQL means to solve a business problem before considering other options that may actually be more appropriate. But here we had an attendee who was happy to consider looking outside his sphere of expertise to focus on optimal solutions to problems rather than just solutions that sat inside his “comfort zone”. That really struck a chord with me, and made me feel like the entire trip was worthwhile. Because when we have a bias toward a particular technology, it is easy to lulled into an argument that other technologies are inappropriate for any usage. And then suddenly we’re into a shouting match about why technology “X” is the best and that anything that is not technology “X” is junk. We all lose when that’s the case.
So there’s an argument to made that Oracle Code is indeed not for database developers, but in the same way, it is not for middle tier developers, and not for front end developers. Oracle Code is about creating the balanced developer – a developer that has expertise in one (or more) areas but more importantly, can understand the whole stack and have an impartial, unclouded (no pun intended) view of the benefits of all layers in the application stack. Because that balance ultimately leads to a better development community, and better opportunities to maximize the benefits of each of the components in the array of technologies that now permeate our development careers.
So whatever your area of expertise, Oracle Code has something for you, and and perhaps the best thing you can do at an Oracle Code event, is attend something outside your current area of expertise.
Beautifully Articulated.
I have met with some good developers who are so good at what they do and they just seem to be lacking at one area and that if expressing themselves to a lay man using simple English words. You excel at both areas.We need more like you
Thanks for sharing this view.
We do need to cut the boundaries of technology in able to deliver a quality business solution
I’m pleased whenever I hear about a Java developer that doesn’t just see the database as a dumb data store. But I wouldn’t call integrating SQL into a Java middle tier “optimal.” The optimal solution is to do the database work from the database tier. Package the functionality and call it from the middle tier.
I have to agree, for the application I look after I created three tables to hold all the sql and which UI objects they are associated with, and a set of packages for any DML or more complicated reports. Our Angular front end then calls the java middle tier which interrogates my tables and then executes the sql it retrieves. The result set is then converted to JSON format and passed to the Angular code. So the Java middle tier is minimal in terms of code as it is just a dumb JSON generator with some data caching capability : )
The previous application which was written in java had a million plus lines of code (most of it pretending to be a database in that it joined lots of data together using for loops : ( ) while as my new application has about 500 queries and about 20000 lines of plsql.
Alan, you said you agreed with me, but you’re still executing the SQL from the middle tier. Why store SQL in a database table when you can store in a compiled package and call that package from the middle tier? I’m not clear on what you see as the advantages of your method over using stored functions and procedures.