Let’s face it: PHP rocks when simplicity is in mind. One major ex-barrier for PHP Software development, though, was the inability to use any graphical client except the browser. Unlike Java and .NET, PHP programs were only accessible through web browsers (Mozilla Firefox, Safari, Internet Explorer, etc.) with support for XHTML. We all know that GUI production using XHTML is harder than normal drag-n-drop GUI editors like .NET and JAVA.
Nowadays, PHP-GTK is very promising to deliver GUI software applications using PHP. PHP-GTK is platform independent and uses an architecture “somehow” similar to that of the JAVA engine architecture. You write your program using PHP and the PHP-GTK plugin (installed separately for the Operating System) takes care of executing the program for you.
In this article, I will discuss some of the points that PHP must take into serious consideration before being considered eligible for the competition. I will also discuss the points of strength and current points of weakness in this domain.
What is GTK+?
GTK+ is a highly usable, feature rich toolkit for creating graphical user interfaces which boasts cross platform compatibility and an easy to use API. GTK+ it is written in C, but has bindings to many other popular programming languages such as C++, Python and C# among others. GTK+ is licensed under the GNU LGPL 2.1 allowing development of both free and proprietary software with GTK+ without any license fees or royalties. In other words, GTK+ is a windowing tookit with support for various GUI objects such as buttons, text fields, scroll bards, etc. that allow users to design GUI objects that are platform independent. GTK+ applications can work on any operating system that GTK+ has been ported to. At the current time, this includes almost all flavors of Unix/Linux, Windows and Mac OS.
What is PHP GTK?
PHP-GTK is an extension for the PHP programming language that implements language bindings for GTK+. It provides an object-oriented interface to GTK+ classes and functions and greatly simplifies writing client-side cross-platform GUI applications. PHP GTK, in other words, allows your PHP scripts to communicate with the GTK+ windowing tookit and, thus, allows PHP scripts to be executing within window objects.
Based on the above introduction, I will list below the advantages that PHP-GTK has over the competition, namely JAVA and .NET.
- Large User Base: PHP is the most widely used language for web development by computer scientists worldwide due to its simplicity, portability, performance and reliability. PHP-GTK can take advantage of this characteristic by becoming the #1 choice for desktop applications.
- GTK+ is Platform Independent: This characteristic allows PHP to outbeat the .NET platform. Any desktop application written in PHP-GTK can be used on any platform (Unix, Linux, Windows and MAC). JAVA is still a competitor in this sense since it is platform independent as well.
- Community Support: GTK+, PHP and PHP-GTK are supported by three independent communities. This boosts the maturity level among the three technologies. In other words, working on a newer version of GTK+ will not affect the progress of a newer version of PHP or PHP-GTK. Moreover, the debate between the three communities helps achieve common standards for desktop applications through PHP-GTK and, thus, will help (on the long run) make PHP-GTK a standard tool for desktop application GUIs.
- Free (as in Freedom):
PHP comes with freedom at its core license. Any developer, researcher
or commercial programmer can freely tweak the source code behind PHP,
GTK+ or PHP-GTK to producer better results in terms of functionality,
features, security, etc. This feature is partially available in JAVA
(the JAVA plugin is, to the best of my knowledge, not open-source) while
.NET is completely closed source.
- Commercial Support: While PHP, PHP-GTK and GTK+ enjoy the support from a large open-source community, commercial support is also available from Zend. While this is a minor advantage when compared to other technologies, it is also crucial to keep PHP progress within the competitive path.
- PHP Windows Support:
Zend announced a while ago that Microsoft will be integrating PHP
support into newer versions of Microsoft Windows Server editions. This
will help PHP reach a wider audience. Previous installations of PHP over
Windows Server were possible but required manual configuration and
setup, configuration varied from one version of IIS to another, and
workaround solutions were completely ad-hoc in nature.
In the list below, I will discuss some possible disadvantages that PHP-GTK must overcom to achieve a higher competitive edge along with Java and .NET.
- Drag-n-Drop Editors: Microsoft Visual Studio and Java Netbeans are both very easy to use and program with. Programmers drag and drop GUI elements, modify GUI properties and attach code to events in a very easy manner. PHP and PHP-GTK on the other hand, lack an easy-to-use editor that provides similar functionality. Although newer versions of Zend Studio have an integrated Drag-n-Drop editor, the editor itself is still far from being user friendly when compared to other editors.
- Automatic Updates: Programmers using PHP-GTK must manually upgrade to newer releases unlike JAVA and .NET that have automatic update monitors. Keeping the core technology up-to-date is crucial for obtaining a secure and reliable environment especially when critical fixes are released.
- Artistic Edge: While a lot has been done in terms of the art behind GUI objects in GTK+, more work needs to be completed to achieve a neater, smoother and better looking GUI. Java has already taken this step with the Swing library and Microsoft already leads this path. PHP-GTK, on the other hand, is heavily based on advances in GTK+ and, thus, a push towards this path is still to occur.
- Commercial Acceptance: The PHP GTK community must encourage and push commercial desktop application providers to start embracing and using PHP-GTK as the language of their choice. This will naturally occur on the long run but some attention towards this matter will help get PHP-GTK into the competition earlier.
In this article, I have discussed my personal point of view about PHP GTK and the promising future it has. Despite the many advantages that PHP-GTK can make use of to enter (and probably outbeat) the competition, lots of preliminary and basic work still needs to be done before commercial acceptance for PHP GTK starts occurring.