Disclaimer: I work for Oracle now. This post pretty much pertains to any and all database IDE and GUIs. –Thanks, Jeff 1/25/2012
Let’s get this out of the way, because anyone who knows me, knows that I have a HUGE bias in this argument: I work for Quest Software, and my primary job is to help sell Toad for Oracle. I also love SQL*Plus, and I use it almost everyday. So don’t bash me because I’m bashing SQL*Plus because I’m not! I’m bashing the people that refuse to consider using anything OTHER than SQL*Plus 🙂
Ok, with that out of the way, I want to explore a bit this notion that you are ‘smarter’ if you only use command-line tools. I get the feeling when people tell me that they ONLY use the command-line, it’s because they feel like I am insulting their intelligence, skill-level, productivity by talking about a GUI product.
This used to be me.
When I started out with Oracle, my only tools were TELNET, SQL*Plus, FTP, and TkProf. When I needed to work on a remote customer site, all I ever needed was a network connection. I didn’t have to worry about if they had my favorite GUI in place for me to do my job. At the time, I wasn’t even really aware of GUIs in the database world. This made me very adept at using these tools. The muscle-memory my fingers developed over those two years still helps me today. I was very productive in my job, and I regularly received high performance appraisals. So, I didn’t really have anything pushing me to go look for GUI tools.
That changed one day. My co-worker asked me over to her cube to help her with a problem she was having. She had this weird window up, and I asked here what it was. “Oh, that’s _____, it helps you save time in Oracle.” She could click into a table and just see the data. Of course, she could also still write all of her SQL by hand and still get the old-school command-line output back too. I have to admit, I was intrigued, but I didn’t go back running to my cube eager to go download this software.
Occasionally I would go to ask her for help with something I hadn’t done before, and she would click, click, click her way to the ‘answer’ using her tool. I would ask her how to do that in SQL*Plus. She would show me, and I would go back to my desk and do it. Eventually I went and got her tool and started using both the command-line and the GUI.
A year later, I ended up being on the R&D team that made the tool, and my life never been the same since!
This morning I came across an interesting article from the OakTable.net folks titled – I don’t use GUI. Manly Men use SQL. I left a small comment, but didn’t really want to get into a heated discussion, as this usually devolves into a religious war. And let’s be honest, I’d rather that happen here. I also quite liked the story, and agreed with the general premise –
“There is a time for text and a time for graphics. Graphics lead the way to the text that is worth spending time analyzing.”
No One is Asking You to Kill SQL*Plus
Just because you use a GUI doesn’t mean you suddenly stop using the command-line interface. A carpenter doesn’t put away their hammer once they get their nail gun. Oracle has not deprecated SQL*Plus even though they put out SQL Developer. And I don’t see most of these SQL*Plus fanatics give much pause before jumping into Enterprise Manager or GRID…but I digress.
If a tool helps you save time, why would you refuse to use it? Is it ego? “Oh, I don’t need a tool.” I don’t think you need a tool for every task. Some things were meant to be done ‘by hand.’ I’d rather use the SQL*Plus interface to TRUNCATE a table in production. This should be a very deliberate action. However, if you ask me to TRUNCATE 30 tables in development, I can do that in 2 or 3 clicks versus coding a dynamic SQL script.
Valid Reasons for Sticking with SQL*Plus
- You can do everything you need to do in the same amount of time it would take in a GUI.
- You like the way you work now, and so do your bosses. There’s also no push for efficiency improvements and you bill by the hour (can you smell the snark the Jeff is cooking here?)
- You have no money and neither do your clients. No money for tools that is. I had a boss once that forced the accountants to use the Calculator in Windows to do their accounting beacuse it was free and ‘good enough.’ A few months later, they were all using their fancy, expensive accounting calculators. I wonder why that is?
Ok, so I was having a bit of fun there with those reasons, but the first one is really all you need. There are people out there that can legitimately claim this, and you know who you are.
Surprise! Travel Agents Are Having This Same Discussion
While looking for green-screen images I could use in this blog post, I found a similar discussion in the travel agency universe. It’s a SIMILAR discussion, but I think it highlights one of the reasons there is reluctance to leave the warm confines of SQL*Plus.
In A Eulogy for the Green Screen, Gord notes that
“In a day or two, anyone can become reasonably proficient.”
I think this scares the older agents. They are worried those years of experience learning the ‘old ways’ have been wasted and that any bozo can come in and replace them in a few days. I know for a FACT that the user-friendliness of the GUI in the Oracle world scares a lot of DBAs because it seemingly makes Oracle look ‘easy.’ Every click has a cost associated to it. When someone asks to do something on a million-row table without thinking about the impact on the system, that is a big problem.
Also, you take pride in the years you have invested in the scripts you have built and collected. As well you should. Using a GUI doesn’t dishonor that experience. It just saves you time. Often a GUI will drive me to a problem that I can only fix with one of those scripts.
The Tool Cannot Replace Experience
The reason I am good at my job is not because I know everything there is to know about Toad. For starters, I don’t know everything! The primary reason I’ve been succesful in my career at Quest is because I lived on the front lines, fighting the same battles as other developers and DBAs. I learned Oracle from the ground up using command-line interfaces like SQL*Plus, SVRMGRL, and RMAN. Quest could hire someone to replace me who had no database experience, and force them to memorize the GUI stuff. But hiring someone new to Oracle and giving them a GUI cannot replace years of experience. It’s just cheaper. At least, it’s cheaper up-front.
I have a Twitter-buddy who has told me countless times how much he hates Toad. Not because he doesn’t’ like the tool. But because he hates the people who use it who have no idea what they are doing when it comes to SQL or Oracle. This same person has recently become quite the fan of SQL Developer, so I have hope that he is coming around to the Dark Side of the Force.
SQL Server Dismissed Because of their Tools?
I sometimes wonder if one of the reasons Oracle folks are so quick to dismiss SQL Server people is because it runs on Windows and comes with very nice GUI tools. The fact that they didn’t struggle with with shell scripting and green-screens doesn’t mean the underlying RDBMS is faulty. Some people have told me that SQL Server runs itself via the ‘Start > Run’ technology it’s based on. The bias here is very deep and hard to dispel. The only solution is to put an Oracle person in charge of a production SQL Server environment. Hmmm, this is probably deserving of it’s own blog post!
After presenting to a group of developers at a university in Virginia, one of the ladies walked up to me and invited me to lunch with her husband who happened to be a DBA. She loved her GUI, but he refused to budge from SQL*Plus. Apparently she thought I could pry him out of his cave. I told her that wasn’t likely, but I’d be happy to tell him what other DBAs told me what they liked about our GUI technology.
It didn’t go well. He got burned once by a person using a GUI 10 years ago. Page in the middle of the night, tablespace full, they didn’t know how to add space without using the GUI. “That’s the last time we let DBAs rely on GUIs here!” he exclaimed. I nodded my head and sympathized with the situation. He asked me what I would have done in his place. I told him I’d re-evaluate our interview process. Having a DBA on the production staff that couldn’t figure out how to use Google or read a MAN page isn’t who you want running your database is it?
I hope the GUI fans out there aren’t sacrificing knowledge for productivity.
I told the wife-developer that I’d have an easier time converting a Southern Baptist into an Episcopalian. And we’ve come full-circle to the religious argument. It’s not worth the time or energy trying to convince someone they are ‘wrong.’ I prefer to share why others are happy and productive with our tools. If it speaks to you, then great!
Our tools aren’t for everyone. There are several hundred GUIs out there available for database professionals. Use the one that works for you. I have to run now and work on my SQL*Plus script I use for creating BLOCKING LOCKS for my Toad demo.
(1) As a database developer I use whatever GUI is made available by the client (e.g. TOAD, or PL/SQL Developer) or Oracle SQL Developer otherwise. However, the final outcome of my work is a deployment script, which must be a SQL*Plus script – because that’s how the DBAs must run the deployment scripts. Personally I find the GUI’s “run using SQL*Plus” option very handy in this regard – it gives me the best of both worlds – a syntax highlighting editor, plus the assurance that the script will work fine when run in SQL*Plus.
(2) The best thing I ever did as a newbie developer was to use TOAD’s “show SQL” option. At first I’d use the GUI wizards to build my tables, triggers, etc. – and then I’d examine the SQL to see what was being generated for me. It made learning the syntax very quick and easy, and pretty soon I was writing my DDL by hand – and because I touch type this is actually faster than using the wizards.
I agree Jeff, it’s imperative that the GUI tools be transparent when it comes to the SQL they generate by wizard, button, click, etc.
Pingback: Instrumenting OBIEE – the final chapter « RNM
cmd-line is just way more repeatable.. try explaining 100 mouse clicks to someone.
Bash, Crontab and SQL*PLUS makes life so much nicer.
You got me there hdaz! However, I don’t advocate giving up the command-line exclusively to use GUI tools. A good GUI tool should allow you to create macros, which allow those 100-click commands to become repeatable as well – when the task calls for it. Thankfully my favorite IDE supports that 🙂
I still use SQL*plus and KSH BTW!
Pingback: What’s Your Favorite IDE for PL/SQL Programming?
I have limited memory recall, Toad allows me to remember the stuff that matters rather than how to set column widths etc in sqlplus BUT Toad also gives endless opportunities to screw a database that you wouldn’t have dreamed was possible with only a sqlplus window. In one swift click you can kill a live db performance, so you have to know what you are doing. These GUI tools are not for dummies, they are for DBAs that want to take it a little bit further, a little but more efficiently (actually a lot more efficiently) but if I was going to give a newbie a ‘safe’ tool I’d give them sqlplus not Toad. Toad is way too powerful and only the real men (ahem and ladeeez) should be using it 🙂
So instead of locking down the user, you give them a simpler tool? They will find a way to do what they want. You’re assuming their imagination is limited by the buttons they can push. You did use single quotes when you said safe, so I’ll assume you already know this 🙂
GUI tools are great to augment an existing skill set. However, constant GUI seems to result in a loss of familiarity with SQL*PLUS. Most people don’t have the discipline to drop back to SQL*PLUS occasionally to keep skills fresh if the GUI has an “easier” alternative.
Too many people start using GUI tools before they have the develop the skill set the tool is meant to augment.
DBAs also seem to use “I Only Use SQL*PLus” as a way to differentiate themselves from the ever rising number of EM DBAs. “I mainly use SQL*PLUS” doesn’t seem to have the seem impact 😉
I rarely need to actually use sqlplus anymore. I just use it because it’s basic and straightforward. I wouldn’t feel that bad if I quit using it completely, but I doubt that will ever happen.
My beef with SQL*Plus was the screen size. Any result set of more than about 150 characters is a pain to deal with. First time working with Oracle I munged up an interface from VAX’s TPU editor so I could scroll sideways.
Possibly the only piece of shareware I actually paid for was something called SQL*Golden from Benthic software, a windows based query tool for Oracle.
There’s nothing wrong with using a GUI. There is something wrong if you can only do your job if you have that specific GUI tool.
For $10, not a bad deal with Golden 🙂