College Time Table | ©graeme foster |
Home | Work Done | Documentation | User Manual | Source | Screens |
This section will provide a brief history of this program, if historical banter is not you thing then feel free to jump ahead to the next section which about the man window.
Still here, wonderful. The first version of this program was written using closed source software, which was frustrating when people asked me for a copy of the program. The original development platform was Jade an Object Oriented Database Management System, with a multi-user development environment. What this meant was that it was really easy to build a multi-user system. However it was not Open Source and so I was restricted on how I could distribute the time-table system.
I then left my job and had some spare time, between applying for other jobs I started development on the system. This time I was using software that was released under an open source licence. The primary language is C++ utilising the Qt libraries from Trolltech. The database is PostgreSQL, although a MySQL version is being considered.
Why C++? Mainly because I'm more comfortable with C++, but I did want it to be an application that could be compiled to native machine code because that will make it easier to install on a variety of machines, the idea being that the number of dependencies will be less if it is natively compiled against an interpreted language. I wanted to avoid the interpreter version hell, where a user has a version of (for example) the Java Runtime Machine, but alas it is the wrong version and so the program crumples up in a fit of pique only occasionally and certainly when the user, because of deadlines, is most stressed.
Why PostgreSQL, again because I liked it, it gave be support for procedures which allowed me to protect the data at the database level. I felt that this was important because the program was also to be ported to the Web, or at least certain part were. This meant different languages, different programs accessing the data. I didn't want to have to duplicate the data validation, hence access to the data via functions. It also allows me to use view which simplifies some SQL statements.
Why didn't you use library X or tool Y? Mainly because I wanted to contain myself to as small a set of tools and libraries as I felt was practical. It could also because I didn't know about that particular tool... But I did want to keep it as clean as possible. Again using many different libraries can lead to awkward integration bugs, which only raise their head at the most inconvenient time.
back to the topThis project is supported by |