FreeTDS and jTDS
Back in late 1999 I was doing a little work at First Chicago NBD (BankOne) on linux as the development platform of the future. I had made a position as the Head of the Technical Architecture Group in Capital Markets that Java/CORBA/Sybase with a bean server like Jaguar CTS would be the way to create apps in the future. In order to prove my point, I got a nicely powerful box (at the time) and started doing some work for a project in the commercial card services division. What I found was that there were a few things that needed to be done in order for the linux desktop to fit into the Bank's infrastructure easily.
Most things worked pretty well right away. Email, at the time, was SMTP/POP3 so that wasn't a problem... the only biggies were source code repository and database access. We were using Microsoft Visual SourceSafe, and there turned out to be SourceOffSite that runs on linux and accesses the Visual SourceSafe repository just fine. The final step was access to Sybase at the C library level.
FreeTDS was a great open-source project that did most of the TDS spec for Sybase and SQL Server. It wasn't 100%, but it was all that was necessary to get the job done, and that meant that I could get access to the Sybase databases from my linux box. I used it and didn't have to look back. With it, I was able to build SQSH, and the access from apps was pretty simple.
Fast-forward to this morning and I was talking to a friend about something completly unrelated and another guy stopped by asking about the JDBC URL for jTDS.
"jTDS?" I asked.
"Yeah, it's a JDBC driver based on the TDS protocol for Sybase - by the guys that wrote FreeTDS"
Wow! I talked to him about my previous experience and we laughed about how things come around again (and again). Turns out, in his tests, and he's not alone, jTDS outperformed Sybase jConnect by a factor of better than 2! That's impressive. So, after I was done with the updates we were talking about, I went back to my cube and got jTDS and tried it. There were a few little changes to my code - mostly because the URL is different and I wanted to make it optional to use jConnect or jTDS. But in about 15 mins. I had something working and the tests looked great. Amazing.
Highly recommended.