In the last post I have commented about the KOW Framework status, but I haven't actually given any more details on what I am really doing... we are getting into alpha stages, with some documentation being written and some bugs being fixed and I think it's time to give you all a brief description of what is going on.
We (I am working alone now.. have been for the past 10 months but I have received some really appreciated help) have create quite a few packages with some interesting features focused on helping the creation of multi platform web applications with a database backend. There are a few of those frameworks, but this one brings something new to the table: it is written in a 100% compiled language called Ada (the 2005 version of the language, to be more precise). This language have several advantages over other ones (you should google for it and find it out by yourself) as it has been designed from ground up to be really safe and powerful.
Here is a small list of features we have implemented:
- file system abstraction (some things are implemented in a way it can work both on windows and linux without problem at all)
- configuration files abstraction (you care about the meaning of the data, not about the syntax or where it is stored)
- database integration (actually, all we have done is a little clean up and reorganization of the APQ code with the original author's bless)
- database abstraction using OOP (you can deal with Ada types and the framework deals with the SQL for you)
- web framework based on services (pretty much like java servlets), modules (small web page elements) and components (singleton factories for services and modules)
- authentication, authorization and, at some level, accounting
We also have worked on other features, but those implementation are somewhat incomplete and.. well.. shouldn't be used right now (except for kowplug, which is a quite simple API for helping the developer to create a plugin enabled application in both windows and linux using Ada.. but this is not being used by ourselves, hence I can't guarantee it's going to work at all in production).
As you can see, we have put a lot of effort in this project. Thousand of hours have been spent on designing and coding; we have redesigned some of the packages; I actually have some redesigns in mind just waiting for more time for doing it... but I haven't done a decent public release yet.
Why is that? Well, first off the framework is still in early stages. It is a quite big project and some of the code was done in a hurry (mainly the kowview page module/servide and the kowview-entities package), we have learned a lot (yeas, a LOT) while coding and we thought we whould go a determined direction but things changed and moved us otherwise.. well, some things were simply adapted... others just went into a halt stage and need to be completed now (such as kowplug).
Secondly, there is no introduction material (it's quite easy to use the framework once you have learned the basics using only the specification files) and working with your projects (specially managing the application user accounts, entities and default/user data files) used to be a pain!
Use to be because there are lots of repetitive tasks.. and kowview needed a redesign on how to reach for the component's data.... well, long story short I've developed a simple Command Line Tool called kvdriver.
This tool will help you out in
- initializing your project environment, creating all the build scripts needed
- automatically generating some of your source code based on what applications you want to use
- the more tedious entity code is now managed automatically
- useradd and groupadd methods for your project
I also plan to implement dependency management and a complete web application distribution system.. it's gonna be pretty much a multi platform packaging system such as Gentoo's portage.. but idk when and not even if I am going to implement it.
I am now writing some documentation, and improving the kvdriver tool. There is a long way to go before I can say "alright, go ahead and use our code" but it is already available at http://framework.kow.com.br ... it is open source, you can clone our git repositories and try it out...
I am really glad how fast I am evolving right now. I am really focused and the result as it is right now is.. well... let's say now I can create a blog system in Ada in 12 minutes :D