Saturday, October 17, 2009

Concept Application Server

While looking at alternatives to Jetty and Geronimo with Jetty, I chanced upon the Concept Application Server.  I will make an effort not to take the wrong tone.

A few tips: they offer the server and the client.  Take the server. It comes with the client and you want them co-installed or no end of test scripts break (expect paths to be hard-coded and they will be the physical paths.)

The web site is in English but is in need of work.  If you find the help CHM file, you will find that it even more in need of help.

The server and client are said to be RC (release candidates) but their own simplest examples crash the client on my XP desktop.  Those examples were a mix of broken English and garish odd dialogs with senseless layout or radiobuttons which are not etc. etc.  They say their current focus of effort is on their IDE, which I have not seen (it will not run.)

The choice of the name 'Concept' is so regrettable.  It is the name of their alternative programming language. The architecture is something like client server for the web: applications reside on the server but execute in a client.  So how to see this in action?

The server bin has options to install as an NT service.  Once that is done, you can try
     concept://localhost/Samples/test.con
in your browser.

You may do better than I did in Opera and IE 8 on XP if you are running Vista or Seven.

What was sad to see was the immense install: the server arrives with an immense pile of DLL's.  The download was very slow in my case (they may be serving the file themselves) and I had already waited for the Client (my mistake, I guess.)

It remains unclear why anyone would adopt the Concept programming language unless they believe that programmers are what is needed: this looks like life without the web designers.  But they also appear to be without UI designers.  Perhaps they have an alternative to HTTP, but I cannot see it after a few hours.

Their blog has seen no addition in the past year (last entry Oct 2008) but it is tell-tale, quote
The Linux distribution is now up-to-date (or almost up-to-date).

The worst is the commendation from a Romanian academic: the author of Concept is working to write the demo chat program in less that 1 minute - indeed, he will soon be able to write those few lines of code in less than 30 sec's.  This feat may impress some CIO somewhere.  And the team is brilliant and the team is dedicated.  But a former president's wife was an all-but illiterate peasant who was awarded a PhD and headed chemical research.  This is Romania.  Not Montenegro, but still, caveat emptor.  I follow a promising project in Sofia, Bulgaria.  But things are not always what they seem in countries where for years saying made it so.  Even in academic life.

If this server and client are 'release candidates' then I might also be the pope.

And if the documentation were not a big enough concern, I cannot find a test framework.  A search in the CHM reveals an assert but no hint of Test, UnitTest, Builder, Factory.

The one large coding effort, GyroGears, is included in compiled form as is the PDFViewer.  And this is open-source of some sort.  The SOAP code that I looked at had no header for copyright or copy-left.  A submarine patent nightmare, I assume.

The author's one PDF tells us that Concept is faster than Python.  Which Python?  Faster than PHP.  Bare-bones open-source PHP?  And why with Scala available, would we choose this form of DLL-hell on a Windows platform?  And if so much like PHP in practice, why not opt for haXe?

Concept most often means "abstraction", an important CS notion.  But today that means such things as the use of interfaces in the implementation of inversion of control.  Patterns.  Web containers.  Geronimo.  But what I find here is very unclear:  the two documents offered are unencumbered by references.

At first I thought that Concept was like client-side Curl (http://www.curl.com/ and not haxx.se cURL) but shifted to the server-side with a focus on the delegate pattern.  There is talk of an interface builder, but I see no sign of it yet in the code.  I may dig a bit more, but the game appears not to be worth the candle.

For developers most at home with GTk, this may be of interest for a project in Romania with funding for 'made in Romania' systems.  Perhaps someone at LtU would take a look at the merits of Concept as a programming language and the use of delegates in the CAS framework.  Maybe someone can see more clearly which architectural challenges are being addressed and how to judge how effectively.  Maybe this is a place for a cyclic dependency metric to be applied.  Perhaps there is some research published in Romania or some tangible data on the one HR system which has been implemented (gone into production?) in CAS or using their GyroGears.

Someone may be unkind enough to notice the file extension; perhaps another unfortuate choice.  What I suspect, is that CAS is a project solving a non-problem or another problem: the focus is on keeping the software on the server to prevent piracy and preclude updates while being performant to reduce server load.  But the trips to the database are the usual issue, and I see nothing to address that in what I can tease out of the code and the limited docs.

1 comment:

Anonymous said...

If you think me unkind, these are the top two lines of a typical source file.

// the standard project forms definition. If no glade is used, comment the next line.

include project_forms.glade.con