Klorofil

Posted by Justin on December 19, 2005
Reviews

Nope, I didn’t misspell it… Klorofil is a new PHP GUI, similar to PHP-GTK.

I was pointed to Klorofil by one of my site viewers. I decided to look into both PHP-GTK and Klorofil, put them in a side by side comparison then decide if either had what it takes for a Business Class, possibly Enterprise, application.

Klorofil

First, Versions & History
Klorofil is, to say the least, very new. In fact, its the bleeding edge thats still dripping from cutting you. The current version is .1.

It was started by Saltanera Teknologi out of Jakarta Indonesia. This company specializes in IT Technology, Outsourcing and Consulting - according to their website. The only reason I can think of that they might start Klorofil is the same reason I coded applications when I was a poor web designer - to bring business in. This is a cheap way of saying “Look what I can do!”. There may be other reasons, but from what I can tell, thats it.

Unfortunately, at this time, there is no history, no documentation, no code samples, etc on their website. They do have a road map of features, both current and future, that you can read over. You have to download and install the software to see anything. But, from what I see, I’ll need to wait until v.04 before it comes close to supporting what I need.

What bugs me about this project is the push to get people to go to the website, download the applications and such. The visitor to my site seems like someone that just wondered onto my blog, but after Googling around, I think not. Currently, Google shows a campaign (read: Almost spamming) of message board and mailing list posts about Klorofil. Its very odd that people are going around promoting the project like this. I don’t do it and most other projects don’t. Again, this seems like a week attempt to get traffic to their company.

In fact, I saw a post on the PHP-GTK side of things where the Klorofil developers have asked some of the PHP-GTK programmers to jump ship.

What The Klorofil Installer Installs
I went ahead and downloaded and installed Klorofil for grins.

It installs a very small version of PHP5 in its application directory. It also throws in a few DLLs for DB connections and the like, although current applications wouldn’t be able to cough on a DB at the moment.

All the pretty graphics are bitmaps. There are more bitmaps than a normal application since Klorofil does not use Windows to draw its “Windows”, instead it uses BMPs to piece together the application as you see it.

It also installs a heck of a lot of Classes, which you can’t view. They are PHB files that are compiled. Odd, considering its being delivered as “open source”:

“[Klorofil]…was made available for the community under Common Public License version 1.0 (”CPL”). CPL, designed by IBM, is an open source license approved by Open Source Initiative. “ Klorofil.org

PHB files are of the following:
PhotoBase (ArcSoft)
ClustaW Tree File (DNA Sequencing Stuff)
NewLeaf PhraseBook (I think not)
PhoneB Phonebook File (nope…)
TreeView File (Makes Tree Diagrams)

With trusty old NotePad, I found out its actually a PECL bcompiler file type (who would’a thunk?). It takes PHP and transfers it into phpbytecode enabling “you” to protect your source code. Oddly enough, the first “why you would want to do this” situations is “to create a exe file of a PHP-GTK application (in conjunction with other software)”… The few other reasons mention a lot of closed source stuff.

Now, going back to the licensing, unfortunately, it states: OpenSource.org


3. REQUIREMENTS

A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:

a) it complies with the terms and conditions of this Agreement; and

b) its license agreement:

i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;

ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;

iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and

iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.

When the Program is made available in source code form:

a) it must be made available under this Agreement; and

b) a copy of this Agreement must be included with each copy of the Program.

Contributors may not remove or alter any copyright notices contained within the Program.

…So, its “Open Source”, but we don’t have to show you whats in the files. This bugs me because others cannot help tweak the files a little. It also bugs me because I can’t see exactly whats it doing behind the scenes. Now, you have to read their Road Map page for the reasons: Klorofil.org

In this initial release (version 0.1), we do not include the source code of the Klorofil Platform because of the incomplete source code documentation and some other things. We hope we can publish the source code in the next release version.

What the heck? You can use it but can’t look at it because its messy? Grrr baby, grrrr… My house is messy, but that doesn’t mean I’m going to tell you to close your eyes when you come over. I’m curious what “some other things” actually is. I have an open source project and I’m going to let the world see the first version so they can see what kind of a nitwit I am and help me fix some of my coding issues… (please note, I am NOT calling the Klorofil developers nitwits…) This just bugs me.

The Software
Well, if you’re a decent follower, you know I don’t like to upgrade often (maybe I should do a post about that one of these days), so I fired up my 98 laptop (about to be Linux/FreeBSD) and installed it.

It…crashed. Kernel32.dll - go figure. My laptop doesn’t like it at all. I’m going to assume its the gambArt software they created for this. I have several copies of PHP running on it at the moment and all are fine.

My desktop handled the software, but its slow. The software has a lag between the mouse and where it recognizes the mouse. Probably my computer again, but with todays business environments running Terminal Services or Thin Clients (which I honestly recommend), I can see this having the same issue.

Now, getting into what the software actually does - it opens a file by command line with PHP… More specifically, it throws out:

writeln("usage : php launch.php [.php file]“);
sleep(5);

At this point, “Things that make you go Hmm…” is going off in my head.

Internet Access?
The gambArt software likes to open port 10,000 on your computer. I’m guessing this is so it can act as a server for PHP. Without much documentation on gambArt, which I would like, there isn’t much more I can comment on it.

Documentation & Code Samples Arg - always stick to the code…
There isn’t any. Plain and Simple. There are sample files you can view, but theres a lot of code to dig through. I compared 2 programs and was very surprised. 1 program (Klorofil) was a simple text box with button. The other (PHP-GTK) was a scrolling list of about 12 names with a button. The Klorofil app was almost twice as long…

The larger files on the Klorofil size appear to be normal. Click here for a sample of a Klorofil Application.

PHP-GTK
Now, I know this will be like comparing Oranges and Tangerines, but I need to compare the two.

Versions & History
PHP-GTK is up to v. 1.0.2 and has a larger user base since its been around for longer.

The PHP-GTK software is technically a PHP project. It is still new, in terms of what it supports, but obviously is more well off than Klorofil at the given moment

The large user base has submitted a few applications you can look at. Some are simple (yet, technically challenging), others are dull and still others have that wow factor (imagine a PHP based Wireless Access Point Sniffer…)

What The PHP-GTK Installer Installs
Well, one main thing: PHP4. (I now have 4 copies of PHP installed due to my own install, Mambo, Klorofil & PHP-GTK).

The PHP4 it installs, is again, a toned down version that is in CGI mode. All PHP-GTK applications are opened via command line by calling PHP to look at a specific file.

Other than that, it installs a few basic files (php and xpm) and thats really it. Its by far, a smaller footprint than Klorofil.

The Software
PHP-GTK uses its own “thing” to generate windows, therefor, it doesn’t need all the bitmaps that Klorofil uses. In turn, its not as pretty in the basic sense of the application windows.

PHP-GTK is much faster than Klorofil. There is no lag between mouse hovers, clicks, etc. The applications also run on my ancient 98 laptop without any problems.

Documentation & Code Samples
Due to the age of the project, there is a large user base. In turn, there are a lot of sample applications on the website as well as sample applications installed.

The community also has a lot of documentation and a Wiki up on its website.

Overall
Between the two PHP GUI options, I would have to go with PHP-GTK. At the current time, I don’t see Klorofil being a valid option due to how slow it is. If a simple application such as a calculator can slow down to where I can notice a decent amount of lag, it needs a heck of a lot of tweaking before I would be able to use it in a large application.

The other downside to Klorofil is that it won’t run on my older laptop. Again, this may not seem like something big, but with Terminal Services and Thin Clients, when you put a lot of reps on the network running an application like Klorofil, I can see problems occurring. I honestly think this is due to the amount of bitmaps the application uses.

One Last Thing
Unfortunately, due to a few things, I do need to add this.

In, my opinion, things smell just a tad fishy. We have closed source, PHP-GTK references from software used to compile the source, and the attempted recruitment of PHP-GTK folks.

If you’re not following my thought process, Klorofil is starting to look like a repackaged PHP-GTK that uses PHP5 and bitmaps for the windows it draws. Again, I can’t tell since I cannot view the source.

To go against what I just said (I’m really trying to be fair), the PHP sample files only slightly look the same, but that is the nature of PHP when like projects attempt the same thing. PHP-GTK makes everything run through a loop, but Klorofil does not. This could be something to prove me wrong, but it also could mean the Klorofil applications are just included from a main file, basically making Klorofil look like a wrapper. The world may never know.

(Note:I’ve revisted Klorifil and PHP-GTK in Sept 2006)