There are a few ways to develop applications under/for Linux. You can write cross platform applications using MonoDevelop, Real Basic and QT (not pronounced Cute, but Q.T. – yes, sort of like E.T….). Or you can use any other language and use IDEs like Komodo, Eclipse and so on.
Coming from the Windows side of things and being used to Visual Basic (I probably have the 1.0 floppy somewhere if I start looking!!!), Delphi and now lately Visual Studio (It might seem weird that I’ve just recently been introduced to VS, but I have mostly coded in PHP and classic ASP for the last 8-10 years, and then you sort of don’t need VS), I have been accustomed to drag’n drop + double click to add code to the application. I have yet to write an application for Linux, but I have made a few attempts. My first attempt included being introduced to the Glade application which is/was used to create the layout of the application – aka GUI. Then you write the code in another IDE.
This was (hm) a while back – not writing year here, but I can write years if you like…
The Good
With the introduction of MonoDevelop, Real Basic and QT we don’t have to open one application to create the GUI and a second one to attach code. It is all being done (and taken care of) in one development tool. This is, and I’d like to emphasize on this, the best way to write applications (my humble opinion – hey my blog!). The tool and GUI-designer is implemented and things can and should work smoothly. Also: You don’t have to learn two applications and probably also two “languages” – although I am all for having knowledge in as many programming languages as you can. I can now code in C#, VB.Net, Delphi/Pascal (although somewhat very rusty), Perl (briefly, by no means an expert and more or less a novice and PHP (if that is considered a programming language).
I have tested QT, MonoDevelop and Real Basic. As I am no C++ developer (but I wish I was!), QT would be my choice of development tool to use when learning that language. Real Basic has only been tested a few times after listening to Bryan Lunduke (Linux Action Show / Computer Action Show) speaking highly of it. MonoDevelop is as of now the tool I use when I’m now doing some C# stuff on Linux and trying to get the grips of GTK-development.
I do want to check out Python as a programming language as I have heard so much positive things regarding the language. But writing an application where you use Glade + editor of choice is not something I want to do. Not in 2009/2010. I think I’ve read somewhere that it can be possible to write applications in Python using QT, but I haven’t spent to much time getting this to work – as I don’t know that much Python – yet…
One thing though: By using Glade and similar applications you separate logic with presentation which can/is a good thing. But there are also drawbacks to this way of designing and developing applications. More below.
The “Bad”
I have also tried Android development in Eclipse, and it seems promising. But again: If the only way to create a GUI is to write XML-code, then no thanks. To the developers of development tools out there: Look at the calendar. It is – as of writing – saying December 19 in 2009, start creating drag’n drop applications.
This also goes for creating Web applications (as this is the new term for web pages). DreamWeaver alternatives for Linux? Not even close. Visual Studio + PHP under Linux. Nope.
Two years ago I attended a class to get a jumpstart on C#-development. And I was shown how to create a zebra-striped/styled datalist in VS. The teacher showed me how to do this in three ways: the first one without using any code, the second way with some code and placing the “plugin” and the last way by creating the object and so on.
So let’s say you have never programmed anything in your entire life. Which one would you start using to get going and to be inspired to code more? First one, most likely – until you understand that it gives you some restrictions and/or problems down the line. But at least you get inspired. You get the application out there to impress friends/boss/yourself quickly.
There are of course drawbacks to this type of applications. No one can argue that DW and such applications creates optimized code. And I am my self a user of Notepad-like applications to generate PHP-code – that is – I have moved from Bluefish to Aptana/Eclipse. Sometimes I do wish it was a faster way to create forms than the way I do it now – even though it doesn’t take that much time.
I have checked out Zend Studio – which is now an Eclipse plugin, and I was hoping that ZS would be the way to do the same thing for PHP under Linux/Windows. Nope – not as I have found out – yet. It saddens me. Especially because they market this as “Zend Studio 7.1 is the next generation of our professional-grade PHP application development environment. It has been designed to maximize developer productivity by enabling you to develop and maintain code faster, solve application problems quickly and improve team collaboration.”
I don’t think they are close to be a next generation professional-grade PHP application development environment. This is 2009 (soon 2010) and 7.1 should’ve had drag’n drop datalists, form creation in place. I hope, how ever, that ZS will in the end turn out to become a drag’n drop Rapid Web Application development (RWAD – Coined by Trond Husø on December 19, 2009!!!) tool for PHP.
My Dream!
Maybe, in 2010(not likely) we could have a universal Rapid Application Development tool to be used to develop Linux applications that supports Python, Java, Perl, C, C++, PHP (if you want to!), C# and any other programming languages you can think of. And most importantly: The RAD tool should work out of the box. No spending much time on plugins and so on.
Some links:
There are some RAD applications out there and here are some links:
Python
Dabo
Visual Basic
Pascal
(more links to come – obviously… – please do suggest some!)
Another discussion regarding development under Linux:
Putting the Squeeze on Python Application Development
(more links to come)

