views:

461

answers:

5

Hi,

I have read some comments in some forums saying that Linux programmers usually do not use any IDE. They prefer to use Vim and Emacs to do their programming.

If I'm not mistaken, Vim and Emacs are just text editors, similar to notepad, but with syntax highlighting.

I just want to know how Linux programmers create complicated GUI application without using any IDE.

Thanks.

+11  A: 

You are making a big assumption - that most Linux developers are developing GUI applications.

Many developers that follow the unix philosophy create text based applications (for example, see the git, the source control management system).

When creating a GUI for Linux, some developers will use text files and some will used designers to help with it.

One way or another, the GUI is also defined in text files. These are either generated by a designer or written by a programmer. It makes little difference to the compiler.

Oded
+12  A: 

You can create gui just from source code (for example: http://library.gnome.org/devel/gtk-tutorial/2.17/c39.html#SEC-HELLOWORLD). Alternatively, you can use stand-alone GUI designers (for example, Glade for GTK+ and Qt Designer for Qt) to design GUIs and use them from application written in Vim or Emacs (or anything else).

el.pescado
+2  A: 

If you really want to understand how this works, read the tutorials for any of the GUI tool kits. You write code that uses a library to build a GUI. For a great example install python and the wxPython and its demo. The demo provides runnable sample programs for every GUI widget in a great format - one tab shows the UI and the other shows the code. The GUI is created from the code, unlike some environment where you drag controls and the code is created for you.

There are of course NxM ways to do this, where N is the number of toolkits and M is the number of languages. I just pointed out that the wxPython combination has great examples. I've also done a little GTK with Pyhon and the online docs are good too. Examples can be found in other languages of course.

phkahler
+1  A: 

Through sheer force of will.

Christoffer
A: 

Emacs and Vim are IDEs--integrated development environments, which means they assemble a variety of programs related to writing programs into one place. The part you are conflating with an IDE is a component of some IDEs called a form/gui layout designer. I am not sure what Visual studio calls it. These designers programs, often integrated into an IDE like Visual Studio, allow you to visually arrange GUI elements.

However, designers help you design GUIs only for specific frameworks. In Windows, Visual Studio allows you to arrange Windows Forms in .NET. GTK, another GUI framework popular on Linux, has its own stand alone designer. Qt also has a (very nice) designer. Netbeans has a Java Swing form designer.

The key point is: all that these designers ultimately do is automatically generate some code that you could otherwise write by hand in a text editor.

Fletcher Moore