SQLGrinder News

SQLGrinder and Mac database news

Thursday, April 29, 2010

SQLGrinder "EOL" with the Release of Snow Leopard?

Well, Apple deprecated the Java-Cocoa bridge in 2005, and with the release of Snow Leopard they've finally delivered on that promise: Mac OS X 10.6 no longer has any of the Java-Cocoa support needed to allow SQLGrinder to do what it did: connect to databases using JDBC instead of using native frameworks, which weren't always available for the Mac.

This means that the infrastructure that the product required to run is no longer there, so the current version of SQLGrinder will only work with the latest versions of Leopard, not beyond that. The new version of Mac OS X just doesn't include any of the necessary support.

SQLGrinder got started in the days of Apple's developer previews of OS X. The year was 2001 (if you can believe THAT!). I was working at a dot.com that was winding down and going out of business. We happened to have some copies of the developer previews of OS X kicking around, so I was kind of playing around with it on my new Titanium laptop. At the start up I was working at, Abuzz, I was tasked with optimizing database queries and making performance of the site tolerable. I had this shiny new laptop, but I didn't really have a database client to run on it, so I was still chained to my desktop PC at work. I had been wanting something to inspire me to learn Cocoa, Apple's development framework, so I hit upon the idea of doing a database client to make my own life easier.

At the time, there were, if I recall correctly, zero database clients for OS X. As I started looking into how to develop my database application, I hit upon the idea of using Apple's Java-Cocoa bridge. I had been working with Java for many, many years, so I considered myself somewhat of an expert. Looking at Objective-C, and it's "weird" syntax, it seemed like a good idea to maybe use the bridge to write this first OS X application of mine.

I started working incrementally, one thing at a time, as I knew nothing of the framework. Knowing Unix, the basis of OS X, wasn't really much of a help here at all. Before too long though, I had something working and the beginnings of a JDBC database client with a Cocoa user interface.

Consequently, Abuzz closed down and I was officially out of a job. I had the workings of a new Mac application in hand, so I decided to spend some time and work on my product and see if I couldn't make a go of it. I pretty much gave myself 6 months to produce and release something while I took time off from working for "the Man" and decompressed after working many, many 60+ hour weeks for the startup. It would be nice to have something smaller of my own to focus on for a while. I released it and it sold, well, "fair" at best. At the time the Mac market was a lot smaller, and the market for Mac developers doing SQL database development, even smaller, so I was forced to go back to work for someone else.

At some point, I learned Cocoa and Objective-C rather well, and and was doing less and less Java work, so it became clear that it was time to redo SQLGrinder in Objective-C, with a thin layer between the native code and the JDBC layer. This was SQLGrinder 2, which was released in June of 2006. It was more or less a complete rewrite of the original product.

Even though JDBC was supposed to be a standard, there proved to be many variations from that standard in the many available JDBC drivers. Work to support all of these these differences tended to pile up and take a lot of time with testing, server setup, coding etc. There were also many, many "moving pieces" as well: the SQL editor, the schema browser, the statement library, all of the JDBC drivers, the Java layer, etc... Development time is expensive and every feature in SQLGrinder tended to take a lot of time, which wasn't helped by just the age of some of the code: some of it was more or less written in 2001 before Mac OS X was even out (though most was later ported to Objective-C, it was still more or less the same code).

Even with the redesign, sales didn't increase. I tried various things to make it work, a lower price point, a higher price point etc., but nothing I did really seemed to change sales much... and so, the product stagnated. I'd always intended to continue development, but there just never seemed to be enough hours in the day.

SQLGrinder proved to be a minor success but it never really "earned its keep," so to speak. To be honest, even at it's peak, sales in most months wouldn't have even paid my rent, let alone provided enough income to live on. Because of that, I had to start another product and right now, that's what pays the bills. It also takes all of the development time I have. I fully appreciate that people still use SQLGrinder, but I just have no way to dedicate the necessary time to it right now, not in lieu of earning a living working on other products that pay my bills every month. That's the reality unfortunately.

So will SQLGrinder rise again? It's hard to say. I don't have the time needed to make it work with native frameworks like those for MySQL and PostgreSQL. I had started to put a plug-in framework into the product, but it's not finished. (If anyone is interested in trying to add support for native drivers, let me know, it might be possible to collaborate on something when time permits). There's a 3rd party Java-Cocoa bridge available, but after taking a look at it, it won't be a trivial task to changeover to using that instead of Apple's built-in framework, it's just too different in too many ways, and the current framework is optimized for, and geared specifically to, what Apple was providing in their framework.

There are also a few more possibilities: I could potentially open source the product, but even getting the code cleaned up for that is a time sink, and honestly, I don't think much new development would take place if I did it (if existing open source Mac clients in the past are any indication). Honestly, I'd rather retain the product, I do still use it (though, only on my Leopard PPC Macs of course, which ironically, have also been "deprecated" by Apple), so at some point there's a chance I'll have time to do some work on it. But right now, I can't say when that will be.

(If you're a recent purchaser and unhappy with the current state of development, provided the purchase wasn't made too long ago, I can process a return for your order, just send me email.)

For help or comments: sqlgrinder [at] advenio.com.