Take the 2-minute tour ×

Being a web developer (php, symfony, doctrine) for 2 years now, I was recently asked by a friend to come up with a desktop solution. So I developed a project, installed a LAMP on his machine and he is mostly happy using it now. But I'm not. It just doesn't seem right to wait for a server response from a localhost. Obviously php isn't suited for desktop development. So, my question is: what language \ framework would you advice a php programmer if he was going to develop a desktop application (something that you can install, that has it's own gui, but utilizes the similar concepts of web apps: css, javascript, orm).

I would like to bring up Python as a possible answer to my question. Does anyone have an experience of developing a desktop app with Python, utilizing an ORM and(or) HTML-based GUI?

share|improve this question
An app with HTML based UI is a web app, ain't it? Take a look at PyGtk, PyQt, wxpython, and even the built-in Tk. –  9000 Jan 2 '11 at 22:55
Take a look at CEF Python that provides python bindings for embedding Chrome browser, this allows you to create desktop apps with HTML5 GUI. A similar solution for PHP is PHP Desktop, but currently it only supports Internet Explorer engine. –  Czarek Tomczak Jan 13 '13 at 19:36
add comment

5 Answers

up vote 2 down vote accepted

You should definitely use Python. It's great and really easy to get up and running and extremely powerful.

utilizing an ORM and(or) HTML-based GUI

Please don't do this. HTML has its purposes, and it's not in desktop apps. Please don't force your experience into new technologies.

You should look at the various python GUI frameworks. Tkinter, PyQt ( my preference), or GTK

share|improve this answer
HTML is a markup language. Why not use it for desktop apps? Why not embed browser to interpret javascript? It doesn't seem to be a good idea for a web developer to abandon the use of jQuery and his favourite plugins. –  Dziamid Jan 2 '11 at 23:45
Because apps that do that are by far the worst I've ever used. It's just a different paradigm. You interact with desktop apps differently than web apps. HTML is like 20 years old now. –  Falmarri Jan 3 '11 at 1:22
add comment


Exactly! Did you profile your app, both on server side and in browser? There's no reason for a local web app to be slow, except if it is designed or implemented suboptimally. Same applies to a desktop app, which is generally harder to create.

So, fire up your Firebug, do explain plan to every database query your app issues, add whatever profiling your PHP settings allow, and see where the problem lies. Most probably, it's not in the choice of language.

share|improve this answer
Fair point, but execution time is not an issue. The issue is a limitations enforced by a web browser. A real desktop app should have it's own gui, have better access to system's resources. –  Dziamid Jan 2 '11 at 23:50
Fair point, but it's not the UI limitations, its speed that the original poster is concerned with. Or so I understood it. –  9000 Jan 2 '11 at 23:54
add comment

Maybe Adobe AIR is something to take a look at? Check out their sample applications. If you don't like using a "proprietary" technology, check out HTML5 technologies like Web Storage and Web SQL (not in the HTML5) spec.) These technologies are completely client side (but can be extended to work over a network), so no need to wait for a server.

I've no clue how capable/easy to work with the Web SQL route is, but there are some decent AIR applications out there.

share|improve this answer
Does Adobe AIR have a database abstaction layer? Does it work with sqlite? –  Dziamid Jan 2 '11 at 16:14
AIR makes use of Adobe's FlexORM, but there are several alternatives out there. (see stackoverflow.com/questions/3299889/best-orm-for-adobe-air-flex). It is indeed SQLite. –  joelcox Jan 3 '11 at 7:44
add comment

I've recently come across a project called Titanium. It's a platform for developing native desktop (and mobile) applications using web technology (html/css, javascript and server-side languages like python, ruby and PHP! That's exactly what I was looking for. However, I haven't found no decent documentation or examples, community is small, so it seems to be underdeveloped right now. It mostly aims at mobile development rather that desktop. Apart from Titanium, I currently don't see a better way for a web developer to go.

share|improve this answer
add comment

Is the target platform windows? If so, consider C# with WPF. The UI is constructed using XAML which is very similar to HTML/CSS. C# uses the .NET framework, so while it is a much different programming language than PHP, the transition should not be too difficult.

share|improve this answer
add comment

Your Answer


