Skip to content

SQLiteStudio

Paweł Salawa edited this page May 3, 2020 · 3 revisions

The project started in early 2007. I was looking for some SQLite manager, which is easy to use. I just wanted to create table quickly and put some data into it. At that time I could not find anything that would satisfy me (or I was really bad at looking it up). Anyway, that's how the SQLiteStudio got its birth.

As I was very enthusiastic for Tcl at the time, that was the programming language of choice.

Version 1.0.0

SQLiteStudio 1.0.0 After few hours of work I had a very basic GUI with a grid to enter data (that's what I liked Tcl for). That was actually all I needed. Then I showed the results to some friends and it was quite appreciated, which motivated me to keep working on it. In the middle of 2007 I've released few beta versions of 1.0.0 and in the middle of 2008 the final version 1.0.0 was released. It used Tcl/Tk 8.4, which didn't support font anti-aliasing and it didn't support SQLite 2.

Version 1.1.0

SQLiteStudio 1.1.0 Just couple of months later SQLiteStudio 1.1.0 was released (Christmas 2008). It introduced SQLite 2 support, Tcl/Tk 8.5 (with antialiasing), but also many, many other features. It was a big step ahead.

Version 2.0.0

SQLiteStudio 2.0.0 Two years later (November 2010) version 2.0.0 was released. It had smarter syntax completion, syntax error highlighting, SQL code pretty printer (formatter), Drag&Drop support and lots of other stuff. Internally it was the first version to use real code parser. It was also the first one to run on Mac OS X.

There were 28 bugfix releases! Project grown up so big, that maintaining it started to be a problem. The source code also wasn't the prettiest one (in regards of maintaining).

Version 2.1.0

SQLiteStudio 2.1.0 After long period of 2.0.0 stabilizing, the 2.1.0 came out (Dec 2012, New Year's Eve). There were no "huge" features. Instead it extended lots of minor features that were already in 2.0.0. Lots of things changed internally, in the source code. I've refactored big part of the code, so it was easier to maintain. I wanted to focus on stabilizing 2.x.x line as much as I can, so it becomes reliable software.

Version 3.0.0

After 2.1.0 release I started realizing how hard it is to fix bugs and that I need to do something about it. While I fixed most of the bugs caused by mistakes in code, there were some issues casued by Tcl/Tk and I wasn't able to address them.

The application was repeatedly crashing under Mac OS X, the overall performance was too low for big databases and... well, the application didn't look nice, even after "Tk lifting" from Tcl/Tk 8.5 and 8.6.

I made a decision to move to C++ and Qt library. There's a post on forum (link is no longer valid) which describes this subject in more details.

After release of 2.1.2 I started working on version 3.0.0 in C++ and Qt. This was March 2013. I estimated that rewriting everything in C++ and Qt would take me a year of hard work. I must admit it was a pretty optimistic estimation, but I really wanted to put lots of effort to make it real and I didn't mean to rewrite absolutely everything - just a set of "must have" features.

SQLiteStudio 3.0.0 In the end it turned out to be almost 2 years (1 year and 10 months), but the results were satisfying. The new version gained a lot of speed and a feeling of lighteness. It was also much better designed, so it was easier to maintain and extend. MacOS X port became much more stable and started to look natively.