Application sculpture

A good way to gain experience with anything, is to get your hands dirty.  In my case that would be to start implementing a system to gain experience with Java Spring programming framework.

While I code the first draft of this system, I get some insights which I better jot down here before I loose my train of thought.  I have been thinking about rapid application development ideas for over a year, and think "how can a development such as this be made significantly faster and easier while keeping the expression power of contemporary programming platforms?", and "how would a development environment of the distant future look like?".

The short version; To use a future programming environment today; search out and use a modelling tool like Poseidon for UML.

The longer version; Implement a new development language. One that gives a totally new development environment, a new platform and new everything. One that dramatically shortens the time from modelling to testing.

What do I see?

I see a minimalistic development environment with access to tailoring options. A simple well-designed UI helps the programmer (application designer) through data modelling, by asking names and simple stuff like grouping into a data model hierarchy. Detailed optimization choices, like type choices and like picking the right size of integer, are postponed until the installation stage, except for common types like Date.

I see from this modelling stage towards testing phase, a lot is automated, but not all. Some business logic have to be written for the specific application at hand, that's what makes it your application. Expect your model to change a lot during the early development phases. Especially when adding new interfaces the model needs more details.  However, if your model is small and manageable, you will be much more able to shape it to fit your current needs. So, automate as much as possible, but not everything.

I see an interactive deploying system. The data model can be drag-and-dropped into a specialized container who processes it to ask for more info before starting your application. Depending on the container, your app will open as a service, as a desktop program, as a mobile phone application, as a web service, and much more not yet discovered.

I see other applications want to interact with your data model and they can easily access the public areas and compose their dialogs with your application.  There is some sense of semantic web and what looks like magic here.

Populære innlegg fra denne bloggen

5 generations of computer languages

Stupidly simple API code