~ubuntu-branches/ubuntu/natty/kubuntu-docs/natty

« back to all changes in this revision

Viewing changes to docs/development/C/development.xml

  • Committer: Bazaar Package Importer
  • Author(s): Richard A. Johnson
  • Date: 2011-04-16 20:20:52 UTC
  • Revision ID: james.westby@ubuntu.com-20110416202052-z2eaqwjve2hz25lm
Tags: 11.04.1
* 11.04.1 initial package
* debian/control:
  - Bumped standards to 3.9.1
  - Removed kdelibs-data dependency
  - Added kdoctools dependency
  - Cleaned up a little

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<?xml version="1.0" encoding="UTF-8"?>
2
 
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3
 
    "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
4
 
<!ENTITY % globalent SYSTEM "../../../libs/global.ent">
 
2
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.3//EN"  
 
3
      "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
 
4
[
 
5
<!ENTITY % globalent SYSTEM "../../../libs/global.ent"> 
5
6
%globalent;
6
 
<!ENTITY % kde-menus-C SYSTEM "../../../libs/kde-menus-C.ent">
 
7
<!ENTITY % kde-menus-C SYSTEM "../../../libs/kde-menus-C.ent"> 
7
8
%kde-menus-C;
8
9
<!ENTITY language "en">
9
10
]>
10
 
<article id="development">
 
11
<article id="software-development-applications">
11
12
<articleinfo>
12
 
<title>Development Tools</title>
 
13
<title>Software Development Tools residing in the Kubuntu Repository</title>
13
14
&legalnotice;
14
15
<abstract>
15
16
<para>
16
 
This document provides a brief introduction to the various types of development
17
 
available in &kubuntu;. It covers topics such as languages, packaging and tools.
 
17
This documentation lists alphabetically the software development applications available in the Kubuntu repository and gives a brief description of each, written at the beginner's level.
 
18
</para>
 
19
<para>
 
20
Since the line between text editors (TE), Integrated Development Environments (IDE) and Graphical User Interface Rapid Application Development (GUI RAD) tools have blurred with the inclusion of plugin technologies in nearly all of the tools, those dichotomies have become less significant.   Therefore, the tools will be presented in alphabetical order.
18
21
</para>
19
22
</abstract>
 
23
 
20
24
</articleinfo>
21
25
 
22
 
<sect1 id="introduction">
23
 
<title>Introduction</title>
24
 
<para>
25
 
In the Linux world, the term "development" means several different things. In
26
 
this documentation article, the term "development" covers topics such as
27
 
application development including languages and graphical user interface
28
 
toolkits, a brief overview of the applications available for web development,
29
 
and a brief overview of packaging applications for Kubuntu.
30
 
</para>
31
 
</sect1>
32
 
 
33
 
<!-- APPLICATION DEVELOPMENT -->
34
 
<sect1 id="app">
35
 
<title>Application Development</title>
36
 
<!-- Languages -->
37
 
<sect2 id="app-cpp">
38
 
<title>C++</title>
39
 
<para>
40
 
Compiling C++ programs requires extra packages that are not installed by
41
 
default.
42
 
</para>
43
 
<itemizedlist>
44
 
<listitem>
45
 
<para>
46
 
<ulink url="apt:build-essential">Install the <emphasis
47
 
role="strong">build-essential</emphasis> package</ulink>
48
 
</para>
49
 
</listitem>
50
 
</itemizedlist>
51
 
<para>
52
 
There are many tools available for C++ developers. People interested in
53
 
developing graphical applications will find that graphical toolkits or platforms
54
 
make development more convenient. The two most popular development platforms for
55
 
&ubuntu; and &kubuntu; are <quote><acronym>GTK</acronym>/GNOME</quote> and
56
 
<quote>Qt/KDE</quote>, each of which has its own set of tools and documentation.
57
 
</para>
58
 
<para>
59
 
The following is a list of the tools available in &kubuntu; that can be
60
 
used to develop C++ applications:
61
 
</para>
62
 
<variablelist><title>Tools</title>
63
 
<varlistentry><term><application>KDevelop</application></term>
64
 
<listitem>
65
 
<para>
66
 
An easy-to-use integrated development environment (<acronym>IDE</acronym>)
67
 
for KDE. It supports a wide range of programming languages and features project
68
 
management, an advanced editor, a class browser and an integrated debugger.
69
 
</para>
70
 
<itemizedlist>
71
 
<listitem>
72
 
<para>
73
 
<ulink url="apt:kdevelop">install the
74
 
<emphasis role="strong">kdevelop</emphasis> package</ulink>
75
 
</para>
76
 
</listitem>
77
 
</itemizedlist>
78
 
</listitem>
79
 
</varlistentry>
80
 
<varlistentry><term><application>Qt Creator</application></term>
81
 
<listitem>
82
 
<para>
83
 
A new, lightweight, cross-platform integrated development environment 
84
 
(<acronym>IDE</acronym>) designed to make development with the Qt application
85
 
framework fast and easy.
86
 
</para>
87
 
<itemizedlist>
88
 
<listitem>
89
 
<para>
90
 
<ulink url="apt:qtcreator">install the <emphasis
91
 
role="strong">qtcreator</emphasis> package</ulink>
92
 
</para>
93
 
</listitem>
94
 
</itemizedlist>
95
 
</listitem>
96
 
</varlistentry>
97
 
<varlistentry><term><application>Eclipse</application></term>
98
 
<listitem>
99
 
<para>
100
 
An open and extensible platform for anything, yet nothing exclusively. It
101
 
provides a foundation for constructing and running integrated
102
 
software-development tools. The Eclipse Platform allows tool builders to develop
103
 
tools independently that integrate with other tools so seamlessly that
104
 
it is hard to tell where one tool ends and another starts.
105
 
</para>
106
 
<itemizedlist>
107
 
<listitem>
108
 
<para>
109
 
<ulink url="apt:eclipse">install the <emphasis role="strong">eclipse</emphasis>
110
 
package</ulink>
111
 
</para>
112
 
</listitem>
113
 
</itemizedlist>
114
 
</listitem>
115
 
</varlistentry>
116
 
<varlistentry><term>Text editors</term>
117
 
<listitem>
118
 
<para>
119
 
Text editors in the Linux world are abundant, including:
120
 
<application>Emacs</application>, <application>Vim</application>,
121
 
<application>Kate</application>, and more. Most experienced software developers
122
 
use a text editor instead of an integrated development environment, because they
123
 
believe that it doesn't get in their way.
124
 
</para>
125
 
</listitem>
126
 
</varlistentry>
127
 
</variablelist>
128
 
<para>
129
 
The following is a list of tutorials regarding C++ development (search the
130
 
Internet for more tutorials):
131
 
</para>
132
 
<itemizedlist><title>Tutorials</title>
133
 
<listitem>
134
 
<para>
135
 
<ulink url="http://www.yolinux.com/TUTORIALS/LinuxTutorialC++.html"/> -
136
 
YoLinux.com C++ Software Development tutorials
137
 
</para>
138
 
</listitem>
139
 
<listitem>
140
 
<para>
141
 
<ulink url="http://www.howtoforge.com/beginners_guide_to_cplusplus"/> -
142
 
HowtoForge Beginner's Guide to C++
143
 
</para>
144
 
</listitem>
145
 
<listitem>
146
 
<para>
147
 
<ulink url="http://www.cplusplus.com/"/> - cplusplus.com, The C++ Resource
148
 
Network
149
 
</para>
150
 
</listitem>
151
 
<listitem>
152
 
<para>
153
 
<ulink url="http://showmedo.com/"/> - ShowMeDo, learn with the open source
154
 
community (an amazing set of tutorials for just about everything!)
155
 
</para>
156
 
</listitem>
157
 
</itemizedlist>
158
 
</sect2>
159
 
<sect2 id="app-python">
160
 
<title>Python</title>
161
 
<para>
162
 
Just about everything needed to get started developing a Python application is
163
 
available in &kubuntu;.
164
 
</para>
165
 
<para>
166
 
The following available tools in &kubuntu; are helpful for developing Python
167
 
applications:
168
 
</para>
169
 
<variablelist><title>Tools</title>
170
 
<varlistentry><term><application>Eric</application></term>
171
 
<listitem>
172
 
<para>
173
 
A full-featured Python IDE written in PyQt using the QScintilla editor widget.
174
 
</para>
175
 
<itemizedlist>
176
 
<listitem>
177
 
<para>
178
 
<ulink url="apt:eric">install the <emphasis role="strong">eric</emphasis>
179
 
package</ulink>
180
 
</para>
181
 
</listitem>
182
 
</itemizedlist>
183
 
</listitem>
184
 
</varlistentry>
185
 
<varlistentry><term><application>Idle</application></term>
186
 
<listitem>
187
 
<para>
188
 
An Integrated Development Environment for Python. IDLE is written using Tkinter,
189
 
so it is highly platform-independent.
190
 
</para>
191
 
<itemizedlist>
192
 
<listitem>
193
 
<para>
194
 
<ulink url="apt:idle">install the <emphasis role="strong">idle</emphasis>
195
 
package</ulink>
196
 
</para>
197
 
</listitem>
198
 
</itemizedlist>
199
 
</listitem>
200
 
</varlistentry>
201
 
<varlistentry><term>Text editors</term>
202
 
<listitem>
203
 
<para>
204
 
Text editors in the Linux world are abundant, including:
205
 
<application>Emacs</application>, <application>Vim</application>,
206
 
<application>Kate</application>, and more. Most experienced software developers
207
 
use a text editor instead of an integrated development environment, because they
208
 
believe that it doesn't get in their way.
209
 
</para>
210
 
</listitem>
211
 
</varlistentry>
212
 
</variablelist>
213
 
<para>
214
 
The following is a small list of tutorials regarding Python development (search
215
 
the Internet for more tutorials):
216
 
</para>
217
 
<itemizedlist><title>Tutorials</title>
218
 
<listitem>
219
 
<para>
220
 
<ulink url="http://diveintopython.org/toc/index.html"/> - Dive Into Python
221
 
(<ulink url="apt:diveintopython">install the <emphasis
222
 
role="strong">diveintopython</emphasis> package</ulink>)
223
 
</para>
224
 
</listitem>
225
 
<listitem>
226
 
<para>
227
 
<ulink url="http://www.awaretek.com/tutorials.html"/> - Python Learning
228
 
Foundation's Python Tutorials
229
 
</para>
230
 
</listitem>
231
 
<listitem>
232
 
<para>
233
 
<ulink url="http://showmedo.com/"/> - ShowMeDo, learn with the open source
234
 
community (an amazing set of tutorials for just about everything!)
235
 
</para>
236
 
</listitem>
237
 
</itemizedlist>
238
 
</sect2>
239
 
<!-- GUI Toolkit -->
240
 
<sect2 id="app-gui">
241
 
<title>Graphical User Interface Toolkits</title>
242
 
<para>
243
 
A graphical user interface toolkit is a set of widgets used in the creation of
244
 
applications which use a graphical user interface. Notable toolkits in the Linux
245
 
world include:
246
 
</para>
247
 
<itemizedlist>
248
 
<listitem>
249
 
<para>
250
 
<emphasis role="strong">Qt</emphasis> - pronounced <quote>cute</quote>, is a
251
 
cross-platform application development framework used mainly for the
252
 
development of <acronym>GUI</acronym> applications. It is produced by Nokia and
253
 
is one of the foundations of &kde; development.
254
 
</para>
255
 
</listitem>
256
 
<listitem>
257
 
<para>
258
 
<emphasis role="strong"><acronym>GTK</acronym></emphasis> - the GIMP Toolkit is
259
 
a highly usable, feature-rich toolkit for creating graphical user interfaces
260
 
which boasts cross-platform compatibility. It is one of the foundations of
261
 
GNOME development.
262
 
</para>
263
 
</listitem>
264
 
</itemizedlist>
265
 
<para>
266
 
Both of these toolkits include bindings to languages such as C/C++, Python,
267
 
Ruby, C#, and more.
268
 
</para>
269
 
<sect3 id="app-gui-qt">
270
 
<title>Qt</title>
271
 
<para>
272
 
According to the <ulink url="http://qt.nokia.com/">Qt web site</ulink>, Qt is
273
 
everything needed to create web-enabled desktop, mobile and embedded
274
 
applications, and has the motto, <quote>Code less. Create more. Deploy
275
 
everywhere.</quote> One of the notable aspects of Qt is that it is used as
276
 
the foundation of &kde; applications.
277
 
</para>
278
 
<para>
279
 
Qt is largely a C++ class library, although there are bindings for Java and
280
 
Python as well. Besides the libraries, Qt also has a complete set of tools for
281
 
Qt development, an amazing set of <acronym>API</acronym> documentation, as well
282
 
as many tutorials.
283
 
</para>
284
 
<variablelist><title>Tools</title>
285
 
<varlistentry><term><application>Qt Creator</application></term>
286
 
<listitem>
287
 
<para>
288
 
Mentioned above.
289
 
</para>
290
 
<itemizedlist>
291
 
<listitem>
292
 
<para>
293
 
<ulink url="apt:qtcreator">install the <emphasis
294
 
role="strong">qtcreator</emphasis> package</ulink>
295
 
</para>
296
 
</listitem>
297
 
</itemizedlist>
298
 
</listitem>
299
 
</varlistentry>
300
 
<varlistentry><term><application>Qt Designer</application></term>
301
 
<listitem>
302
 
<para>
303
 
An application that provides classes that allow for the creation of custom
304
 
widget plugins for Qt Designer, and classes that enable access to Qt Designer's
305
 
components.
306
 
</para>
307
 
<itemizedlist>
308
 
<listitem>
309
 
<para>
310
 
<ulink url="apt:libqt4-designer">install the <emphasis
311
 
role="strong">libqt4-designer</emphasis> package</ulink>
312
 
</para>
313
 
</listitem>
314
 
</itemizedlist>
315
 
</listitem>
316
 
</varlistentry>
317
 
<varlistentry><term><application>Qt Assistant</application></term>
318
 
<listitem>
319
 
<para>
320
 
An application which provides online help for everything Qt.
321
 
</para>
322
 
<itemizedlist>
323
 
<listitem>
324
 
<para>
325
 
<ulink url="apt:libqt4-assistant">install the <emphasis
326
 
role="strong">libqt4-assistant</emphasis> package</ulink>
327
 
</para>
328
 
</listitem>
329
 
</itemizedlist>
330
 
</listitem>
331
 
</varlistentry>
332
 
<varlistentry><term><application>Qt Developer Tools</application></term>
333
 
<listitem>
334
 
<para>
335
 
Tools used to assist in Qt 4 development, including the Qt Assistant,
336
 
Linguist, D-Bus Viewer and Pixel Tool applications.
337
 
</para>
338
 
<itemizedlist>
339
 
<listitem>
340
 
<para>
341
 
<ulink url="apt:qt4-dev-tools">install the <emphasis
342
 
role="strong">qt4-dev-tools</emphasis> package</ulink>
343
 
</para>
344
 
</listitem>
345
 
</itemizedlist>
346
 
</listitem>
347
 
</varlistentry>
348
 
</variablelist>
349
 
</sect3>
350
 
</sect2>
351
 
</sect1>
352
 
 
353
 
<!-- WEB DEVELOPMENT -->
354
 
<sect1 id="web">
355
 
<title>Web Development</title>
356
 
<para>
357
 
Web development encompasses so many markup languages and scripting languages
358
 
that it would not be possible to give a brief overview. Most people who do web
359
 
development concentrate on markup languages such as <acronym>HTML</acronym>,
360
 
<acronym>XML</acronym>, and others, as well as scripting languages such as
361
 
JavaScript, <acronym>PHP</acronym>, Ruby, Python, and others.
362
 
</para>
363
 
<para>
364
 
The following is a small set of tools that are available for the &kubuntu;
365
 
system:
366
 
</para>
367
 
<variablelist><title>Tools</title>
368
 
<varlistentry><term><application>Quanta Plus</application></term>
369
 
<listitem>
370
 
<para>
371
 
A web development environment for working with HTML and associated languages.
372
 
It strives to be neutral and transparent to all markup languages, while
373
 
supporting popular web-based scripting languages, CSS and other emerging W3C
374
 
recommendations.
375
 
</para>
376
 
<itemizedlist>
377
 
<listitem>
378
 
<para>
379
 
<ulink url="apt:quanta">install the <emphasis
380
 
role="strong">quanta</emphasis> package</ulink>
381
 
</para>
382
 
</listitem>
383
 
</itemizedlist>
384
 
</listitem>
385
 
</varlistentry>
386
 
<varlistentry><term><application>KompoZer</application></term>
387
 
<listitem>
388
 
<para>
389
 
A complete Web Authoring System that combines web file management and
390
 
easy-to-use WYSIWYG (What You See Is What You Get) web page editing.
391
 
</para>
392
 
<itemizedlist>
393
 
<listitem>
394
 
<para>
395
 
<ulink url="apt:kompozer">install the <emphasis
396
 
role="strong">kompozer</emphasis> package</ulink>
397
 
</para>
398
 
</listitem>
399
 
</itemizedlist>
400
 
</listitem>
401
 
</varlistentry>
402
 
<varlistentry><term>Text editors</term>
403
 
<listitem>
404
 
<para>
405
 
Text editors in the Linux world are abundant, including:
406
 
<application>Emacs</application>, <application>Vim</application>,
407
 
<application>Kate</application>, and more. Most experienced software developers
408
 
use a text editor instead of an integrated development environment, because they
409
 
believe that it doesn't get in their way.
410
 
</para>
411
 
</listitem>
412
 
</varlistentry>
413
 
</variablelist>
414
 
</sect1>
415
 
 
416
 
<!-- PACKAGING -->
417
 
<sect1 id="packaging">
418
 
<title>Kubuntu Packaging</title>
419
 
<para>
420
 
In Linux days of old, installing applications meant that users had to issue
421
 
commands such as configure, make, and make install using  
422
 
source software packages. Debian (upon which Kubuntu depends heavily) has
423
 
made it easy for users to install applications without having to mess around
424
 
with dependencies, command line configuring, special command sequences,
425
 
lengthy waits and other nuisances.
426
 
</para>
427
 
<para>
428
 
Since packaging applications is a broad topic that can seem more complex than
429
 
it actually is, the following links provide a starting point for
430
 
Kubuntu packaging:
431
 
</para>
432
 
<note>
433
 
<para>
434
 
The Debian manuals are a good place to start before moving on to the Ubuntu (and
435
 
Kubuntu) Packaging Guide.
436
 
</para>
437
 
</note>
438
 
<itemizedlist>
439
 
<listitem>
440
 
<para>
441
 
<ulink url="http://www.debian.org/doc/debian-policy"/> - The Debian
442
 
Policy Manual
443
 
</para>
444
 
</listitem>
445
 
<listitem>
446
 
<para>
447
 
<ulink url="http://www.debian.org/doc/developers-reference/"/> - The Debian
448
 
Developer's Reference
449
 
</para>
450
 
</listitem>
451
 
<listitem>
452
 
<para>
453
 
<ulink url="http://www.debian.org/doc/maint-guide/"/> - The Debian New
454
 
Maintainer's Guide
455
 
</para>
456
 
</listitem>
457
 
<listitem>
458
 
<para>
459
 
<ulink url="https://wiki.ubuntu.com/PackagingGuide"/> - The Ubuntu Packaging
460
 
Guide
461
 
</para>
462
 
</listitem>
463
 
</itemizedlist>
464
 
</sect1>
465
 
 
 
26
<sect1 id="bluefish-editor">
 
27
<title>Bluefish Editor - Web Development Editor</title>
 
28
<para>Home page:  
 
29
<ulink url="http://bluefish.openoffice.nl"> http://bluefish.openoffice.nl </ulink>
 
30
</para>
 
31
<para>
 
32
<application>Bluefish</application> is a powerful editor targeted towards programmers and web designers, with many options to write websites, scripts and programming code. Bluefish supports many programming and markup languages, and it focuses on editing dynamic and interactive websites.   Bluefish is an open source development project, released under the GNU GPL license.  Bluefish runs on most (maybe all?) POSIX compatible operating systems including Linux, FreeBSD, MacOS-X, OpenBSD and Windows.    Bluefish supports 16 of the most commonly used languages and scripting tools and is one of the more fully featured IDE's available.  It specializes in being very fast and with a huge multi-document capability.  Some tools do web development and some are simple coding IDE's.  Bluefish can do both at once on multiple projects and keep them separate.
 
33
</para>
 
34
</sect1>
 
35
 
 
36
<sect1 id="boa-constructor">
 
37
<title>Boa Constructor - IDE for Python and wxWindows</title>
 
38
<para>Home Page: 
 
39
<ulink url="http://boa-constructor.sourceforge.net/"> http://boa-constructor.sourceforge.net </ulink>
 
40
</para>
 
41
<para>
 
42
<application>Boa Constructor</application> is a cross platform Python IDE (Integrated Development Environment) and wxPython GUI (Graphical User Interface) Builder.   It offers visual frame creation and manipulation, an object inspector, many views on the source like object browsers, inheritance hierarchies, doc string generated html documentation, an advanced debugger and integrated help.  It includes Zope support: Object creation and editing, cut, copy, paste, import and export. Property creation and editing in the Inspector and Python Script debugging.   Boa Constructor is written in Python, uses Python as its language,  and uses the wxPython library which wraps wxWindows.
 
43
</para>
 
44
<para>
 
45
Boa-Constructor is under slow development at version 0.6.1, having taken five years to rise from 0.4.3.   At that rate it will take another 10 years for version 1.0 to be released.   Part of the slow development problem is that Boa-Constructor is a mix of several different projects (Python, wxPython, etc...), each having their own development schedules.  Python itself has undergone a radical version change to 3.0.     Co-ordination of these projects can be problematic or show stopping.   There are no usable apps built with Boa-Constructor in the repository and none can be found on the Internet.
 
46
</para>
 
47
</sect1>
 
48
 
 
49
<sect1 id="cameleon">
 
50
<title>Cameleon - IDE for Ocaml Applications</title>
 
51
<para>
 
52
<ulink url="http://home.gna.org/cameleon"> http://home.gna.org/cameleon </ulink>
 
53
</para>
 
54
<para>
 
55
<application>Cameleon</application> is an Integrated development environment (IDE), created by Maxence Guesdon, Pierre-Yves Strub and Jean-Baptiste Rouquier. Cameleon is aimed at becoming an IDE for Objective Caml as well as other programming languages.   Its main features are :  graphical user interface,  configuration management based on CVS,  easy access to and browsing of documentation, various editors, according to customizable file types, use of plug-ins to define new features, highly customizable interface (menus,  toolbar and keyboard shortcuts.    Its latest version is Cameleon2 and it is now a proprietary IDE for the Windows platform.
 
56
</para>
 
57
</sect1>
 
58
 
 
59
<sect1 id="code-blocks">
 
60
<title>Code:Blocks IDE</title>
 
61
<para>Home Page: 
 
62
<ulink url="http://www.codeblocks.org/"> http://www.codeblocks.org </ulink>
 
63
</para>
 
64
<para>
 
65
<application>Code::Blocks</application> is the open-source, cross-platform Integrated Development Environment (IDE).  Built around a plugin framework, Code::Blocks can be extended with plugins. Any kind of functionality can be added by installing/coding a plugin.  It is based on a self-developed plugin framework allowing unlimited extensibility.   Most of its functionality is already provided by pre-installed plugins included in the base package:
 
66
<itemizedlist>
 
67
    <listitem><para>Compiler frontend to many free compilers</para></listitem>
 
68
    <listitem><para>Debugger frontend for GDB (and CDB for windows platforms)</para></listitem>
 
69
    <listitem><para>Source formatter (based on AStyle)</para></listitem>
 
70
    <listitem><para>Wizard to create new C++ classes</para></listitem>
 
71
    <listitem><para>Code-completion / symbols-browser (work in progress)</para></listitem>
 
72
    <listitem><para>Default MIME handler</para></listitem>
 
73
    <listitem><para>Wizard to create new Code::Blocks plugins</para></listitem>
 
74
    <listitem><para>To-do list</para></listitem>
 
75
    <listitem><para>Extensible wizard based on scripts (for creating new projects/targets/etc)</para></listitem>
 
76
    <listitem><para>Autosave (saves your work in the unfortunate case of a crash)</para></listitem>
 
77
</itemizedlist>
 
78
</para>
 
79
<para>
 
80
Addtional plugins for Code:Blocks can be obtained at their wiki website:
 
81
<ulink url="http://wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins"> http://wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins </ulink>
 
82
</para>
 
83
</sect1>
 
84
 
 
85
<sect1 id="coqide-proof-assistant">
 
86
<title>CoqIDE Proof Assistant</title>
 
87
<para>Home Page: 
 
88
<ulink url="http://coq.inria.fr"> http://coq.inria.fr </ulink>
 
89
</para>
 
90
<para>
 
91
<application>Coq</application> is a formal proof management system.  It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an IDE for semi-interactive development of machine-checked proofs.    It is developed using Objective Caml and Camlp5.   A complete reference manual, standard library and other documents are found on it the Coq website.   This is specialized software requiring a significant knowledge of formal mathematical theory even if your intent is to develop or test software algorithms.
 
92
</para>
 
93
</sect1>
 
94
 
 
95
<sect1 id="eclipse">
 
96
<title>Eclipse IDE</title>
 
97
<para>Home Page:
 
98
<ulink url="http://www.eclipse.org/"> http://www.eclipse.org </ulink>
 
99
</para>
 
100
<para>
 
101
<application>Eclipse</application> began life as a $40 million dollars woth of code contributed by IBM to the FOSS community,  whose projects are focused on building an extensible development platform, runtimes and application frameworks for building, deploying and managing software across the entire software lifecycle.   Many people know Eclipse as a Java IDE but it is much more than that.    The Eclipse open source community has over 60 open source projects.
 
102
</para>
 
103
<para>
 
104
These projects can be conceptually organized into seven different "pillars" or categories:
 
105
<itemizedlist>
 
106
    <listitem><para>Enterprise Development</para></listitem>
 
107
    <listitem><para>Embedded and Device Development</para></listitem>
 
108
    <listitem><para>Rich Client Platform</para></listitem>
 
109
    <listitem><para>Rich Internet Applications</para></listitem>
 
110
    <listitem><para>Application Frameworks</para></listitem>
 
111
    <listitem><para>Application Lifecycle Management (ALM)</para></listitem>
 
112
    <listitem><para>Service Oriented Architecture (SOA)</para></listitem>
 
113
</itemizedlist>
 
114
</para>
 
115
<note>
 
116
<para>
 
117
Eclipse is licensed under the EPL 1.0, which  is not compatible (http://en.wikipedia.org/wiki/Eclipse_Public_License) with the GPL, and a work created by combining a work licensed under the GPL with a work licensed under the EPL cannot be lawfully distributed.    The GPL requires that "[any distributed work] that ... contains or is derived from the [GPL-licensed] Program ... be licensed as a whole ... under the terms of [the GPL].",  and that the distributor not "impose any further restrictions on the recipients' exercise of the rights granted".    The EPL, however, requires that anyone distributing the work grant every recipient a license to any patents that they might hold that cover the modifications they have made. Because this is a "further restriction" on the recipients, distribution of such a combined work does not satisfy the GPL.     The EPL, in addition, contains a patent retaliation clause, which is incompatible with the GPL for the same reasons.
 
118
</para>
 
119
</note>
 
120
<para>
 
121
The Eclipse community is also supported by a large and vibrant ecosystem of major IT solution providers, innovative start-ups, universities and research institutions and individuals that extend, support and complement the Eclipse Platform.
 
122
</para>
 
123
</sect1>
 
124
 
 
125
<sect1 id="eric-python-ide">
 
126
<title>Eric Python IDE</title>
 
127
<para>Home Page: 
 
128
<ulink url="http://eric-ide.python-projects.org"> http://eric-ide.python-projects.org </ulink>
 
129
</para>
 
130
<para>
 
131
<application>Eric</application> is a full featured Python and Ruby editor and IDE, written in python.    It is based on the cross platform Qt GUI toolkit, integrating the highly flexible Scintilla editor control.   It is designed to be usable as an every day quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder.       Eric4 includes a plugin system, which allows easy extension of the IDE functionality with plugins downloadable from the net.   Current stable versions are Eric4 based on Qt4 and Python 2,  and Eric5 based on Python 3 and Qt4.
 
132
</para>
 
133
<para>
 
134
Python bindings to Qt are available through PyQt, enabling Eric to use Qt to create graphical interfaces for the user. <ulink url="http://www.riverbankcomputing.co.uk/software/pyqt/intro">PyQt</ulink> is a set of Python bindings for Nokia's Qt application framework and runs on all platforms supported by Qt including Windows, MacOS/X and Linux.    PyQt v4 supports Qt v4.  The bindings are implemented as a set of Python modules and contain over 300 classes and over 6,000 functions and methods.
 
135
</para>
 
136
</sect1>
 
137
 
 
138
<sect1 id="fluid">
 
139
<title>FLUID - FLTK GUI Designer</title>
 
140
<para>Home Page: 
 
141
<ulink url="http://www.fltk.org/"> http://www.fltk.org/ </ulink>
 
142
</para>
 
143
<para>
 
144
<application>FLTK</application> (pronounced "fulltick") is a GPL licensed cross-platform (Unix, Linux, Windows)  C++ GUI toolkit.  FLTK provides GUI functionality without the bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation.   FLTK was designed to be statically linked. This was done by splitting it into many small objects and designing it so that functions that are not used do not have pointers to them in the parts that are used, and thus do not get linked in. This allows you to make an easy-to-install program, or to modify FLTK to the exact requirements of your application, without worrying about bloat. FLTK works fine as a shared library, though, and has started being included on Linux distributions.   FLTK software can be written using the "Fast Light User Interface Designer", or FLUID, a graphical editor that is used to produce FLTK source code.   The GUI widget set, however, is sparse quantity and spartan in methods and properties,  limiting FLTK to use on light projects.
 
145
</para>
 
146
</sect1>
 
147
 
 
148
<sect1 id="frama-c">
 
149
<title>Frame-C - Framework for source code analysis of software</title>
 
150
<para>Home Page:
 
151
<ulink url="http://frama-c.com/index.html"> http://frama-c.com/index.html </ulink>
 
152
</para>
 
153
<para>
 
154
Available under the LGPL, <application>Frama-C</application> is a suite of tools dedicated to the analysis of the source code of software written in C.   As such it would be well suited for applications written in GTK+ for Gnome.   Frama-C gathers several static analysis techniques in a single collaborative framework.   The collaborative approach of Frama-C allows static analyzers to build upon the results already computed by other analyzers in the framework. Thanks to this approach, Frama-C provides sophisticated tools, such as a slicer and dependency analysis.  There are nine plugins identified on their web site as being available for Frama-C.
 
155
</para>
 
156
</sect1>
 
157
 
 
158
<sect1 id="gazpacho">
 
159
<title>Gazpacho Interface Designer</title>
 
160
<para>Home Page: 
 
161
<ulink url="http://gazpacho.sicem.biz"> dead link </ulink>
 
162
</para>
 
163
<para>
 
164
<application>Gazpacho</application> is a GTK+ UI Designer for building applications.   The code is based on the development version of Glade. It is compatible with libglade, writing XML files that specify the interface to be created in run-time.  
 
165
<note>
 
166
<para>This project is no longer under development and there are no registered releases for the gazpacho trunk.
 
167
</para>
 
168
</note>
 
169
</para>
 
170
</sect1>
 
171
 
 
172
<sect1 id="geany">
 
173
<title>Geany - A Fast and Lightweight IDE using GTK2</title>
 
174
<para>Home Page: 
 
175
<ulink url="http://www.geany.org"> http://www.geany.org </ulink>
 
176
</para>
 
177
<para>
 
178
Geany is a text editor using the GTK2 toolkit with basic features of an integrated development environment.   It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. It supports many file types and has some nice features.    It is at version level 0.2 and licensed under the GPL.   The documentation is rather short and to the point, but it is a fast, simple editor for simple needs.
 
179
</para>
 
180
</sect1>
 
181
 
 
182
<sect1 id="glade">
 
183
<title>Glade Interface Designer for GTK+</title>
 
184
<para>Home Page: 
 
185
<ulink url="http://glade.gnome.org"> http://glade.gnome.org </ulink>
 
186
</para>
 
187
<para>
 
188
<application>Glade</application>is a GPL IDE tool to enable quick and easy development of user interfaces for the GTK+ toolkit and the GNOME desktop environment. The user interfaces designed in Glade are saved as XML, and by using the GtkBuilder GTK+ object these can be loaded by applications dynamically as needed.  By using GtkBuilder, Glade XML files can be used in numerous programming languages including C, C++, Java, Perl, Python, and others.   The version marked "current" on their website is 3.6.7, which was released in June of 2009.  That page lists the current development at version 3.9.2,  leading to a 3.10 release.  It can be obtained from their ftp server: 
 
189
<ulink url="http://ftp.gnome.org/pub/GNOME/sources/glade/3.9/"> http://ftp.gnome.org/pub/GNOME/sources/glade/3.9 </ulink>
 
190
</para>
 
191
<para>
 
192
Their API reference manual is for version 3.6.6, which lists a total of 553 objects,  counting their core, classes, widgets and utilities, and including the functions and properties of each.  For a comparison, Qt 4.7 has over 800 classes alone, not counting the methods (functions) and properties of each class.  This puts Glade well above FLTK but well below Qt in breadth and depth of the widget set.   However, Glade is used to write GTK+ GUI applications for Gnome, so it fits in well with Gnome's goal of a simplified Linux desktop.
 
193
</para>
 
194
</sect1>
 
195
 
 
196
<sect1 id="gphpedit">
 
197
<title>gPHPEdit - Edit PHP source files</title>
 
198
<para>Home Page: 
 
199
<ulink url="http://www.gphpedit.org"> http://www.gphpedit.org </ulink>
 
200
</para>
 
201
<para>
 
202
<application>gPHPEdit</application>is a PHP/HTML/CSS Development Environment for GNOME.  On top of being lightweight and fast it comes with the following features that include:  Syntax Highlighting, Highlights CSS, Highlights SQL (BETA), Coding Assistance, Dropdown Function Lists, Function Parameter Popups, Class/Function Browser, Syntax Checking/Navigating Code, Lint Checking, Incremental Search, Go To Line, Integrated PHP Help, Context Sensitive, Hyperlinked and Fast Startup.
 
203
</para>
 
204
</sect1>
 
205
 
 
206
<sect1 id="gorm">
 
207
<title>Gorm - Visual Interface Designer for GNUstep</title>
 
208
<para>Home Page: 
 
209
<ulink url="http://www.gnustep.org/experience/Gorm.html"> http://www.gnustep.org/experience/Gorm.html </ulink>
 
210
</para>
 
211
<para>
 
212
<application>Gorm</application> stands for "Graphical Object Relationship Modeler" and is GNUstep's easy-to-use interface designer.
 
213
</para>
 
214
<para>
 
215
<application>ProjectCenter</application> is GNUstep's graphical integrated development environment (IDE). It helps one to create all different kinds of projects like Applications, Tools, Libraries and Bundles.   ProjectCenter is integrated with Gorm, easing the development of gui applications.   Custom palettes can be dynamically loaded to add additional elements or functionality.  After creating the interface, objects can be linked using mouse operations. Also Gorm features interactive testing of interfaces.    The Gorm homepage links to its Applications wiki where about 100 applications are listed.  However, many of those application links point to wiki stubs where no application, code or any activity has been recorded.  That page itself shows "last modified" timestamp of April 2, 2007.  So no Gorm activity has been recorded in almost five years, but GNUstep itself is undergoing active development.   The Gorm widget set has and gives the look of a console based graphical application. i.e., flat, gray blocks with triangular indentations acting as buttons but if you are developing for GNUstep then Gorm may  be your UI designer tool.
 
216
</para>
 
217
</sect1>
 
218
 
 
219
<sect1 id="kdevelop4">
 
220
<title>KDevelop 4 - IDE for KDE</title>
 
221
<para>Home Page: 
 
222
<ulink url="http://www.kdevelop.org/mediawiki/index.php/Main_Page"> http://www.kdevelop.org/mediawiki/index.php/Main_Page </ulink>
 
223
</para>
 
224
<para>
 
225
<application>KDevelop 4</application> is a free, open source IDE for MS Windows, Mac OS X, Linux, Solaris and FreeBSD. It is a feature-full, plugin extensible IDE for C/C++ and other programming languages. It is based on KDE and Qt libraries and is under development since 1998.   The 4.0 version has not yet included many of the features found in the 3.x version.  The differences are listed at this website: <ulink url="http://www.kdevelop.org/mediawiki/index.php/KDevelop_4/KDev3_KDev4_comparison_table"> KDev3 and KDev4 comparison table</ulink>.
 
226
</para>
 
227
<para>
 
228
The Qt Assistant has been integrated into KDevelop 4 but the Qt Designer has not been, yet,  and an available integration plugin to do that is not yet stable. The KDevelop 3.x IDE, integrated to the Qt3 API is no longer being supported but the IDE for Qt4 is not yet ready.
 
229
</para>
 
230
<para>
 
231
KDevelop has the qualities of Eclipse in that it tries to be a platform for several languages and tools, mainly via plugins, but its heart and soul is Qt.  The appearance of QtCreator has diverted many users away from KDevelop, especially since QtCreator, devoted only to Qt/C++,  has a better foundation for cross-platform application building.
 
232
</para>
 
233
</sect1>
 
234
 
 
235
<sect1 id="kimagemapeditor">
 
236
<title>KimageMapEditor - HTML Image Map Editor for KDE</title>
 
237
<para>Home Page: 
 
238
<ulink url="http://www.nongnu.org/kimagemap/index.html"> http://www.nongnu.org/kimagemap/index.html </ulink>
 
239
</para>
 
240
<para>
 
241
The home pages states that <quote><application>KImageMapEditor</application> is a tool for Linux/KDE that allows you to edit image maps of HTML files.  It can be fully integrated with Quanta since it is based on KPart technology.</quote>  Initially written for KDE 2.0, it is probably the oldest unsupported editor project in the repository.  The last update was November 18,  2003, when version 1.0.1 was released.   It requires Qt 3.0.3 or greater, but obviously won't work with the Qt4 library or on the KDE4 desktop if the Qt3 libraries are not installed.
 
242
</para>
 
243
</sect1>
 
244
 
 
245
<sect1 id="klinkstatus">
 
246
<title>KLinkStatus - Web Link Validity Checker for KDE</title>
 
247
<para>Home Page: 
 
248
<ulink url="http://kde-apps.org/content/show.php?content=12318"> http://kde-apps.org/content/show.php?content=12318 </ulink>
 
249
</para>
 
250
<para>
 
251
<application>KLinkStatus</application> is mainly a link checker.    It allows you to search internal and external links throughout your web site and view them in a hierarchical format or site tree. Simply point it to a single page and choose the depth to search.    You can also check local files, or files over ftp:, sftp:, fish: or any other KIO protocols. For performance, links can be checked simultaneously.  This application is part of KDE, as a component of the KDE web development module.
 
252
</para>
 
253
</sect1>
 
254
 
 
255
<sect1 id="kompozer">
 
256
<title>KompoZer - Create Web Pages</title>
 
257
<para>Home Page: 
 
258
<ulink url="http://kompozer.net"> http://kompozer.net </ulink>
 
259
</para>
 
260
<para>
 
261
<application>KompoZer</application> is a complete Web Authoring System that combines web file management and easy-to-use WYSIWYG web page editing capabilities found in Microsoft FrontPage, Adobe DreamWeaver and other high end programs.    KompoZer is designed to be extremely easy to use, making it ideal for non-technical computer users who want to create an attractive professional-looking web site without needing to know HTML or web coding.   KompoZer is a stand-alone tool; hence its small size and fast speed.    The website states that <quote>Those who are familiar with the DreamWeaver interface will feel right at home with KompoZer.  [It is] The easiest-to-use, most powerful Web Authoring System available for Desktop Linux, Microsoft Windows and Apple Macintosh users.</quote>
 
262
</para>
 
263
</sect1>
 
264
 
 
265
<sect1 id="lazarus">
 
266
<title>Lazarus - Delphi like IDE for Free Pascal</title>
 
267
<para>Home Page: 
 
268
<ulink url="http://www.lazarus.freepascal.org"> http://www.lazarus.freepascal.org </ulink>
 
269
</para>
 
270
<para>
 
271
<application>Lazarus</application> is the class libraries for Free Pascal that emulate Delphi. Free Pascal is a GPL compiler that runs on Linux, Win32 and other platforms. Free Pascal is designed to be able to understand and compile Delphi syntax, which is OOP.   Lazarus will allow you to develop Delphi like programs on all of the supported platforms.  Once you write your code you just link it against the API widget set of your choice.  The project is named Lazarus because it was started/raised from the death of the Megido project.  Pascal was invented as a language to teach programming to beginners so it is very structured and type safe to keep them from making mistakes that can plague newcomers learning less restrictive languages like C or C++.  The GUI widgets include double-gradient skins on buttons and other controls. 
 
272
</para>
 
273
<para>
 
274
However, before you choose Lazarus for your project check with the <ulink url="http://wiki.lazarus.freepascal.org/Lazarus_known_issues_%28things_that_will_never_be_fixed%29"><quote>Things that will never be fixed</quote></ulink> website too see if you can work within those limitations.
 
275
</para>
 
276
</sect1>
 
277
 
 
278
<sect1 id="scheme">
 
279
<title>MIT/GNU Scheme - Scheme development environment</title>
 
280
<para>Home Page: 
 
281
<ulink url="http://www.gnu.org/software/mit-scheme/"> http://www.gnu.org/software/mit-scheme/ </ulink>
 
282
</para>
 
283
<para>
 
284
<application>MIT/GNU Scheme</application> is an implementation of the Scheme programming language, providing an interpreter, compiler, source-code debugger, integrated Emacs-like editor, and a large run-time library.   It is best suited to programming large applications with a rapid development cycle.   It is at version 9.10 and is under the GPL license.
 
285
</para>
 
286
<para>
 
287
The MIT home page of the Scheme language is <ulink url="http://groups.csail.mit.edu/mac/projects/scheme"> here</ulink>.   Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman.   It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme.
 
288
</para>
 
289
<note><para>
 
290
Scheme was one of the first programming languages to incorporate first class procedures as in the lambda calculus, thereby proving the usefulness of static scope rules and block structure in a dynamically typed language.  Scheme was the first major dialect of Lisp to distinguish procedures from lambda expressions and symbols, to use a single lexical environment for all variables, and to evaluate the operator position of a procedure call in the same way as an operand position.  By relying entirely on procedure calls to express iteration, Scheme emphasized the fact that tail-recursive procedure calls are essentially goto's that pass arguments.  Scheme was the first widely used programming language to embrace first class escape procedures, from which all previously known sequential control structures can be synthesized. More recently, building upon the design of generic arithmetic in Common Lisp, Scheme introduced the concept of exact and inexact numbers. Scheme is also the first programming language to support hygienic macros, which permit the syntax of a block-structured language to be extended reliably. 
 
291
</para></note>
 
292
</sect1>
 
293
 
 
294
<sect1 id="monkeystudio">
 
295
<title>Monkey Studio IDE</title>
 
296
<para>Home Page: 
 
297
<ulink url="http://monkeystudio.org"> http://monkeystudio.org </ulink>
 
298
</para>
 
299
<para>
 
300
<application>Monkey Studio (MkS)</application> is a cross platform IDE written in C++/Qt 4.  Its primary goal was to be a Qt 4 only IDE,  but it evolved beyond only Qt development.   The current version is the v2 branch which succeeded the v1 branch and is dependent on Qt 4.4.0 or greater.  It supports Qt 4 projects management and embeds Designer and Assistant to form a complete, fast and power full Qt 4 IDE.  
 
301
</para>
 
302
<para>
 
303
<acronym>MkS</acronym> is based upon a powerful and flexible plugin system that allows it to be extended in infinite ways.  Currentlyu there are a lot of  plugins, including PHP-Qt (Qt4 bindings for PHP) and PyQt (Qt4 bindings for Python).
 
304
</para>
 
305
<para>
 
306
Monkey Studio is released under the GPL. Its based on Qt 4.4.x and higher, and is working on Linux, Windows and Mac.   
 
307
</para>
 
308
</sect1>
 
309
 
 
310
 
 
311
<sect1 id="monodevelop">
 
312
<title>MonoDevelop - Develop .NET Applications in an IDE</title>
 
313
<para>Home Page: 
 
314
<ulink url="http://monodevelop.com"> http://monodevelop.com </ulink>
 
315
</para>
 
316
<para>
 
317
<application>MonoDevelop</application> is an IDE primarily designed for C# and other .NET languages. MonoDevelop enables developers to quickly write desktop and ASP.NET Web applications on Linux, Windows and Mac OSX. MonoDevelop makes it easy for developers to port .NET applications created with Visual Studio to Linux and to maintain a single code base for all platforms.   It brings a clone of Microsoft's .NET API to the Linux desktop.    It is at version 2.4.  The MonoDevelop Core is licensed under the LGPLv2, though much of the code and addins are licensed under the MIT/X11 license. 
 
318
</para>
 
319
<para>
 
320
MonoDevelop does not contain a visual designer, so C# bindings to the GUI designer components of GTK+ were created to allow for the creation of graphical user interfaces.  These bindings are collectively called "GTK#", or GTK Sharp.   The parts of .NET which are legally allowed in Mono are defined in the <ulink url="http://www.ecma-international.org/publications/standards/Ecma-334.htm">EMCA 334</ulink>, which covers the C# specifications,  and the <ulink url="http://www.ecma-international.org/publications/standards/Ecma-335.htm">EMCA 335</ulink> standard,  which covers the CLI specifications.   A license must be obtained from Microsoft to use the tools described in these two standards to create a <ulink url="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma PATENT/ECMA-334&#32;&amp;&#32;335/ECMA-335&#32;4th&#32;Edition&#32;patent&#32; statements.pdf">commercial application</ulink>.   Microsoft expanded on its EMCA offerings with a <ulink url="http://www.microsoft.com/interop/cp/default.mspx"> <quote>Community Promise</quote></ulink>(CP), which adds several technologies to those listed in ECMA 334 and 335.  Some specifications include special terms, which are are noted. The CP applies to anyone who is building software and-or hardware to implement one or more of those specifications. The CP does not apply to any work that you do beyond the scope of the covered specifications.   
 
321
</para>
 
322
<para>
 
323
Also, in specified cases (such as where the specifications have uses that exceed those needed to achieve the interoperability needs for which the release under the CP is being made), the CP may have special terms concerning what kinds of implementations are covered.   <emphasis>Microsoft is the sole adjudicator</emphasis> in determining if an application conforms to the EMCA and CP, or not, and commercial applications built using Mono may require a license from Microsoft.    It would be prudent to consult an attorney specializing in Intellectual Property Rights and contact Microsoft for specific information before beginning development.
 
324
</para>
 
325
</sect1>
 
326
 
 
327
<sect1 id="netbeans">
 
328
<title>NetBeans IDE 6.9</title>
 
329
<para>Home Page: 
 
330
<ulink url="http://netbeans.org"> http://netbeans.org </ulink>
 
331
</para>
 
332
<para>
 
333
<application>NetBeans IDE 6.9</application> is an award-winning integrated development environment available for Windows, Mac and Linux. The NetBeans project consists of a free open-source IDE and an application platform that enable developers to rapidly create web, enterprise, desktop, and mobile applications using the Java platform, as well as JavaFX, PHP, JavaScript and Ajax, Ruby and Ruby on Rails, Groovy and Grails, and C/C++.   NetBeans IDE 6.9 introduces the JavaFX Composer, support for JavaFX SDK 1.3, OSGi interoperability, support for the PHP Zend framework and Ruby on Rails 3.0, and more.   Like most modern IDE's it extends its capabilities by using the plugin paradigm and because of its long period of development and large number of users who contributed to its development, there are hundreds of plugins available.   The majority of the NetBeans IDE code is available under a dual license consisting of the Common Development and Distribution License (CDDL) v1.0 and the GNU General Public License (GPL) v2.  No license fee is required to use NetBeans and any commercial application you write does not have to be distributed with the source.   Sun no longer exists, having been purchased by Oracle, which now controls Java.   
 
334
</para>
 
335
<para>
 
336
Java was the original <quote>write once, run anywhere</quote> language tool.  However, despite its <quote>superior security model</quote> it has become a favorite target for malware and many security experts are recommending uninstalling Java all together.   These security concerns and the lawsuit have taken the shine off of Java development for many coders and corporations.
 
337
</para>
 
338
</sect1>
 
339
 
 
340
 
 
341
 
 
342
<sect1 id="padre">
 
343
<title>Padre - Perl Application Development and Refactoring Environment</title>
 
344
<para>Home Page: 
 
345
<ulink url="http://padre.perlide.org"> http://padre.perlide.org </ulink>
 
346
</para>
 
347
<para>
 
348
<application>Padre</application> is a text editor that is simple to use for new Perl programmers but also supports large multi-lingual and multi-technology projects. Its primary focus is to create a peerless environment for learning Perl and creating Perl scripts, modules and distributions, with an extensible plug-in system to support the addition of related functionality and languages and to support advanced developers taking the editor anywhere they want it to go.   It runs on Microsoft Windows, Linux, FreeBSD, Mac OS X and NetBSD and is under the GPL and the Artistic licenses.    Perl is often used as a binder between disparate components in an application or project and is noted for being easy to write but difficult to read.  Padre has all the features one would expect in a well supported IDE.   It was written using Perl5.
 
349
</para>
 
350
</sect1>
 
351
 
 
352
<sect1 id="pida">
 
353
<title>PIDA - Python Integrated Development Application</title>
 
354
<para>Home Page: 
 
355
<ulink url="http://pida.co.uk"> http://pida.co.uk </ulink>
 
356
</para>
 
357
<para>
 
358
The website says that <application>PIDA</application> is different from other IDEs in that it will use the tools already available on the user's system rather than attempting to reinvent each one.  PIDA is written in Python with the PyGTK toolkit, and although is designed to be used to program in any language, PIDA has fancy Python IDE features.   Development and support for PIDA has been suspended because some developers have been hired by Google,  some have college work to complete and other need to find jobs.
 
359
</para>
 
360
</sect1>
 
361
 
 
362
<sect1 id="project-manager-ide">
 
363
<title>Project Manager IDE - IDE for GNUstep</title>
 
364
<para>Home Page: 
 
365
<ulink url="http://home.gna.org/pmanager"> http://home.gna.org/pmanager </ulink>
 
366
</para>
 
367
<para>
 
368
This is a project supported by a single developer who hasn't posted any code updates since posting version 0.2 in  July of 2006.   It is, therefore, a dead project.
 
369
</para>
 
370
</sect1>
 
371
 
 
372
<sect1 id="project-center">
 
373
<title>Project Center - The Official GNUstep IDE</title>
 
374
<para>Home Page: 
 
375
<ulink url="http://www.gnu.org/software/gnustep/experience/ProjectCenter.html"> http://www.gnu.org/software/gnustep/experience/ProjectCenter.html </ulink>
 
376
</para>
 
377
<para>
 
378
<application>ProjectCenter</application> is GNUstep's integrated development environment (IDE) and allows a rapid development and easy managment of ProjectCenter running on GNUstepapplications, tools and frameworks.   It is at version 0.6, is under the GPL and is being actively developed.
 
379
</para>
 
380
</sect1>
 
381
 
 
382
<sect1 id="psychopy">
 
383
<title>PsychoPy - Environment for Creating Psychology Stimuli in Psychology</title>
 
384
<para>Home Page: 
 
385
<ulink url="http://www.psychopy.org"> http://www.psychopy.org </ulink>
 
386
</para>
 
387
<para>
 
388
<application>PsychoPy</application> is an cross platform open-source package for running experiments using Python.  Contrary to the website's claim, Python is NOT an alternative to MatLab.   PsychoPy combines the graphical strengths of OpenGL with the easy Python syntax to give scientists a free and simple stimulus presentation and control package.   It is used by many labs worldwide for psychophysics, cognitive neuroscience and experimental psychology.
 
389
</para>
 
390
</sect1>
 
391
 
 
392
<sect1 id="pyraqua">
 
393
<title>Pyraqua - A Fast and Lightweight IDE for Python using wxPython</title>
 
394
<para>
 
395
<ulink url="http://code.google.com/p/pyragua/"> http://code.google.com/p/pyragua </ulink>
 
396
</para>
 
397
<para>
 
398
Part of Google's "Summer of Code", Pyraqua's home page shows activity last occurred on December 29, 2009 with the posting of version 0.2.5.  There has been no activity since then and the project is effectively dead.
 
399
</para>
 
400
</sect1>
 
401
 
 
402
<sect1 id="qt-toolkit">
 
403
<title>The Qt Toolkit</title>
 
404
<para>
 
405
<ulink url="http://qt.nokia.com"> http://qt.nokia.com </ulink>
 
406
</para>
 
407
<para>
 
408
Qt's latest version is 4.7 but it is usually referred to as "Qt4" to avoid confusion with the previous major release, Qt3.  The KDE 3.5.x desktop was built using Qt3 and the KDE 4.x desktop was built using Qt4.  The two versions are not compatible, and a tool is provided to migrate  applications built with Qt3 to Qt4.  However, some classes, methods and properties in Qt3 were not carried forward into Qt4 and those will have to be replaced using existing Qt4 objects.
 
409
</para>
 
410
<para>
 
411
The <application>Qt</application> (pronounced <quote>cute</quote>) toolkit includes three major components, plus the QtCreator IDE and and the Qt-SDK.   They are produced by Nokia, which purchased Qt from the original developer, Trolltech so that they could use Qt to develop their mobile phone OS, Symbian.  They also use Qt to support   MeeGo,  an open source Linux project which brings together the Moblin project, headed up by Intel, and Maemo, by Nokia, into a single open source activity. Nokia states that <quote>MeeGo integrates the experience and skills of two significant development ecosystems, versed in communications and computing technologies. The MeeGo project believes these two pillars form the technical foundations for next generation platforms and usages in the mobile and device platforms space.  MeeGo currently targets platforms such as netbooks/entry-level desktops, hand held computing and communications devices, in-vehicle infotainment devices, connected TVs, and media phones.</quote> 
 
412
</para>
 
413
<note><para>
 
414
On February 11, 2011, Nokia announced a <quote>partnership</quote> with Microsoft in which Nokia will replace Symbian with Windows Phone 7 in wealthy American and European markets, but continue to use Symbian in India and other poorer regions.   Because of a huge outcry by Qt and open source supporters who contributed to Symbian, Meego and Maemo, Nokia released a <ulink url="http://blog.qt.nokia.com/2011/02/12/nokia-new-strategic-direction-what-is-the-future-for-qt">blog message</ulink> the next day.    It seems they need Qt in order to continue to support Symbian on the 200 million Nokia phones that run it, and MeeGo and Maemo for a <quote>disruptive</quote> presence in the markets for which they are being offered.  But, the partnership puts the commercial version of Qt in a questionable light due to the influence of Microsoft and the history of its partnership with Novell, and others which no longer exist.
 
415
</para></note>
 
416
<para>
 
417
Qt's the three major components are the Designer, the Linguist and the Application Programming Interface (API).   The Qt toolkit allows you to write source code for advanced applications with graphical user interfaces on either Linux, Windows or Mac and compile them on all three platforms  and embedded operating systems with little or no rewriting of the source code,  saving time and development cost.
 
418
</para>
 
419
<para>
 
420
Since the Qt Toolkit is under the GPL/LGPL it is not threatened by this partnership, and Canonical announced that they are going to use Qt instead of Gnome to develop their Unity 2D desktop.    So, considering that, and the fact that Qt is under the GPL/LGPL license, Qt remains as viable a development tool as it was before the announcement.  Because Kubuntu uses the KDE desktop and KDE was built with Qt, and Qt is the most powerful GUI RAD tool available on Linux, and some would say Windows as well,  the following is information is about how to install Qt.
 
421
</para>
 
422
<sect2>
 
423
<title>Installation of Qt</title>
 
424
<para>
 
425
The entire Qt toolkit is in the repository as qt-sdk or as part of the Qt SDK available from the  <ulink url="http://qt.nokia.com/downloads"> http://qt.nokia.com/downloads </ulink> website under either the LGPL or a commercial license.    The latest version the Qt-SDK-1.1 zip file available from Nokia in either the <ulink url="http://qt.nokia.com/downloads/sdk-linux-x11-64bit-cpp">32 bit</ulink> or <ulink url="http://qt.nokia.com/downloads/sdk-linux-x11-32bit-cpp">64 bit</ulink> version.  Either includes the QtCreator, the Designer, the Assistant (API), the Linguist and all the necessary libraries and utilities.    The Qt SDK can be installed in the user's home account and used to create applications regardless of which version of Qt libraries the KDE desktop requires because the SDK startup scripts sets the shell environment to point to the SDK libraries.
 
426
</para>
 
427
<para>
 
428
To use the QtCreator without installing the SDK one must first install the Qt components from the repository so that the Qt libraries, qmake, moc, debugger and other utilities are available to be automatically located by QtCreator when it is installed.   Installing the following necessary packages in the order given will establish a proper QtCreator development environment:
 
429
<orderedlist>
 
430
    <listitem><para>qt4-dev-tools</para></listitem>
 
431
    <listitem><para>qt4-doc  (installs the API locally, to save HD space use the online version)</para></listitem>
 
432
    <listitem><para>qt4-designer</para></listitem>
 
433
    <listitem><para>qt4-make</para></listitem>
 
434
    <listitem><para>qt4-qtconfig</para></listitem>
 
435
    <listitem><para>libqt4-sqlite</para></listitem>
 
436
    <listitem><para>qtcreator</para></listitem>
 
437
</orderedlist>
 
438
</para>
 
439
<para>
 
440
Several other packages might be necessary, depending on your needs.  For example, if you want to create database applications then libqt4-sql-psql, libqt4-sql-mysql and libqt4-sql-sqlite  will allow you to connect to a PostgreSQL, MySQL or SQLite3 database, respectively.  Also consider  qt4-demos,  libqt4-dbg, libqt4-network, libqt4-script, libqt4-xml, python-qt4 (Python bindings) and libqt4-webkit.
 
441
</para>
 
442
<para>
 
443
One can also create Qt applications using just Qt-Designer, the Assistant, and the Linguist by installing all of the 6 necessary packages listed above except qtcreator, which can be replaced using Kate or your favorite text editor.  In this case one runs the Qt-Designer to create the graphical user interfaces independent of the text editor used.
 
444
</para>
 
445
</sect2>
 
446
<sect2>
 
447
<title>Qt Designer</title>
 
448
<para>
 
449
The Designer is the graphical user interface (GUI) designing tool for graphical applications written using the Qt toolkit.    Qt provides the building blocks — a broad set of customizable widgets, graphics canvas, style engine and more that you need to build modern user interfaces. You can incorporate 3D graphics, multimedia audio or video, visual effects, and animations into your projects.  Qts integration with the WebKit web rendering engine means that one can quickly incorporate content and services from the Web into their native application, and can use the web environment to deliver their services and functionality.
 
450
</para>
 
451
</sect2>
 
452
<sect2>
 
453
<title>Qt Linguist</title>
 
454
<para>
 
455
The Linguist is Qt's i18n tool.  (The word "internationalization" has 18 letters between its first and last letter).  It allows for easy creation of translation files which are used with the translate (tr()) function to allow the text displayed by an application to localized to the language of the user.
 
456
</para>
 
457
</sect2>
 
458
<sect2>
 
459
<title>Qt Assistant</title>
 
460
<para>
 
461
The Assistant is Qt's Application Programming Interface (API), a world class documentation for Qt.   It deals with more than just Qt's tools and classes.  The API for any release of Qt, its tools and addons can be found <ulink url="http://doc.qt.nokia.com"> here</ulink>.    It includes the following: Class index, Function index, Modules, Namespaces, Global Declarations, and the elements of the new declarative tool QML.
 
462
</para>
 
463
<para>
 
464
Other Qt API Topics are: Programming with Qt, Device UI's and Qt Quick, UI Design with Qt, Cross-platform and Platform-specific info, Qt and Key Technologies, and How-To's and Best Practices.  Several dozen examples are documented.  The Assistant also includes tutorials, demos and QML Examples.
 
465
</para>
 
466
</sect2>
 
467
<sect2>
 
468
<title>QtCreator</title>
 
469
<para>
 
470
<application>QtCreator</application> is Qt's graphical IDE, linking a powerful text editor, the Designer and debugger in a GUI environment.  The LGPL version includes connectivity to PostgreSQL and other open source databases.  The commercial license allows connectivity to those open source databases and to proprietary databases like Oracle.   QtCreator is similar in power to Microsoft's Visual Studio C++.  Simple applications can sometimes be created without having to write a single line of code.  The internet and YouTube is full of tutorials and videos describing all levels of Qt development, like this one documenting the results of a <ulink url="http://sector.ynet.sk/qt4-tutorial">first time user</ulink>. 
 
471
</para>
 
472
</sect2>
 
473
</sect1>
 
474
 
 
475
<sect1 id="quanta-plus">
 
476
<title>Quanta Plus - Web Development GUI</title>
 
477
<para>Home Page: 
 
478
<ulink url="http://quanta.kdewebdev.org"> is a dead link</ulink>.
 
479
</para>
 
480
<para>
 
481
The Quanta Plus <ulink url="http://sourceforge.net/projects/quanta/files/quanta/Quanta%203.5.8/">sourceforge website</ulink> shows that version 3.5.7, released on November 9, 2007 was the last update posted.   Quanta Plus can be considered a dead project.  The only changes in the Kubuntu repository package appear to be to the desktop file, made by the Kubuntu dev team.   KompoZer is considered its replacement.
 
482
</para>
 
483
</sect1>
 
484
 
 
485
<sect1 id="seamonkey">
 
486
<title>Seamonkey - Internet Navigator and  Composer</title>
 
487
<para>Home Page: 
 
488
<ulink url="http://www.seamonkey-project.org"> http://www.seamonkey-project.org </ulink>
 
489
</para>
 
490
<para>
 
491
The <application>SeaMonkey</application> project is a community effort to develop the SeaMonkey all-in-one internet application suite.  Such a software suite was previously made popular by Netscape and Mozilla, and the SeaMonkey project continues to develop and deliver high-quality updates to this concept. It includes  an Internet browser, email &amp; newsgroup client with an included web feed reader, HTML editor, IRC chat and web development tools.  On February 14, 2011 version 2.1 Beta 2  was released.
 
492
</para>
 
493
<para>
 
494
Powered by Mozilla Under the hood, SeaMonkey uses much of the same Mozilla source code which powers such successful siblings as Firefox, Thunderbird, Camino, Sunbird and Miro.   Legal backing is provided by the Mozilla Foundation.    The code is licensed under a MPL/GPL/LGPL tri-licsense, allowing it to be easily reused in different environments.   If your Internet activity consists of just browsing, emailing, using the IRC, reading web feeds and doing some light HTML editing then this application fills all your needs.
 
495
</para>
 
496
</sect1>
 
497
 
 
498
<sect1 id="spe">
 
499
<title>SPE - Stani's Python IDE</title>
 
500
<para>Home Page:
 
501
<ulink url="http://pythonide.stani.be/"> http://pythonide.stani.be </ulink>
 
502
</para>
 
503
<para>
 
504
<application>SPE</application> is a python IDE with auto indentation and completion, call tips, syntax coloring &amp; highlighting, uml viewer, class explorer, source index, todo list, pycrust shell, file browsers, drag and drop, Blender support.  SPE ships with wxGlade,PyChecker and Kiki.  SPE is a mature project but development seems to have stopped around 2008.
 
505
</para>
 
506
</sect1>
 
507
 
 
508
<sect1 id="wxformbuilder">
 
509
<title>wxFormBuilder - wxWidgets GUI Designer</title>
 
510
<para>Home Page:
 
511
<ulink url="http://sourceforge.net/apps/wordpress/wxformbuilder"> http://sourceforge.net/apps/wordpress/wxformbuilder </ulink>
 
512
</para>
 
513
<para>
 
514
<application>wxFormBuilder</application> is an open-source, cross-platform RAD tool for wxWidgets.   It aims to be an application that as well as enabling visual development and generating the corresponding code, allows the inclusion of non-graphical components, as well as providing facilities for extending the set of widgets easily via plugins.  One should not edit the code generated by wxFormbuilder, so the correct way to implement a GUI generated by wxFormBuilder is by using inheritance. The generated classes which create the GUI are intended to be used as base classes for the user-entered classes which implement the GUI.  See the <ulink url="http://wiki.wxformbuilder.org/Tutorials/WhyCantIEditTheGeneratedCode">  Why Can't I Edit the Generated Code</ulink> web page.
 
515
</para>
 
516
</sect1>
466
517
</article>
467
 
<!--
468
 
Local Variables:
469
 
mode: xml
470
 
sgml-minimize-attributes:nil
471
 
sgml-general-insert-case:lower
472
 
sgml-indent-step:0
473
 
sgml-indent-data:nil
474
 
End:
475
 
 
476
 
vim: tabstop=2:shiftwidth=2:expandtab:indentexpr=:tw=80:
477
 
kate: space-indent on; indent-width 2; tab-width 2; indent-mode none;
478
 
-->