TAHIR HASHMI'S WEBSITE
  COMPS [ Under OPL ]  
Home

Common Linux Applications

MYSELF

COMPS
Linux
Wireless LANs
Sawfish on RH8
Emacs
Why C++

PEOPLE

AUTOS

IMAGES

PLACES

Yahoo! Search

Search This Site
Search WWW

Hold mouse over words above for more information.

Made with Emacs

Get Firefox!

[ Up ] [ Introduction ] [ The Structure of Linux ] [ Common Linux Applications ] [ References ]

  1. Core Programming Components
  2. GUI Based IDEs and RAD Tools
  3. Information Systems Tools
  4. Desktop Utilities

1. Core Programming Components

A Standard Distribution of Linux includes the core programming components that are needed to build applications for Linux. These include a collection of compilers, a powerful debugger, languages and libraries. Let's check what we have got:

GCC (GNU Compiler Collection): GCC started it's life as a C Compiler (earlier GCC stood for GNU C Compiler) but now it supports C, Objective C, C++, Fortran-77 and Java. GCC has a powerful built-in optimizer that is one of the best across the platforms and may be used to optimize production code too. G++, the GCC C++ compiler has a high level of Standards Compliance (higher than that of VC++). It also includes jikes, a Java to byte-code compiler. The error-reporting of GCC is also very polished. GCC is decently fast and if your system has a large amount of RAM, it can be asked not to create temporary files on the disk to boost performance. Otherwise it creates temporary files on the disk and cleans them up instead of dumping them like VC++ does in the "Debug" folder.

Debuggers: The flagship debugger for Linux is GDB (GNU Debugger) that is a powerful source-level debugger for C, C++ and Fortran. It includes the capability to analyze post-crash stack dumps (core), attach to an already running process, display the contents and data-type of various memory-locations, breakpoints and watch-points etc. There are GUI front-ends available for GDB, like Emacs debug facility, Kdbg, DDD etc. There are also tools like lsof that can list all the files that are open, ltrace traces the runtime calls to dynamically linked libraries, memprof is there to profile the memory usage and detect memory leaks etc, strace traces the system calls made by a running process, time is a tool that measures the time taken by a process to execute.

Libraries: There are numerous libraries in Linux for the development of practically everything that a Linux system comprises of. The main libraries in Linux are glibc, the GNU C library which is the heart and soul of a Linux system, TCL (Tool Command Language) is an embeddable scripting language with Tk toolkit to allow for GUI development at the X Server level. There are GUI libraries like GTK+ for GNOME and Qt for KDE that create GUI for their respective environments but require lesser development time. There are libraries that I really didn't want to miss out but they are simply too many to list!

Tools: Linux has an excellent set of tools available for the aid of a programmer. One of the most impressive set of tools is Auto-tools. These tools allow you to write a program on one OS and generate installation scripts for most common platforms, including Solaris and MS Windows. This saves a lot of effort in doing cross-platform native application development in C and C++. Other prominent tools are GNU Make, an automated build process manager that knows what actions are to be taken to keep the executable(s) in a project up-to-date as changes are made in the source, CVS a concurrent version control system to help in the evolution of a project, flex, a fast lexical analyzer generator, Bison, a general-purpose parser generator that converts a grammar description for an LALR context-free grammar into a C program to parse that grammar. There are more but I'll stop here.

Languages: Linux distributions come packed with many languages by default. Chief among them are Python, an interpreted language with features for OOP at a higher level of abstraction and native embedding of C/C++ code. There is Perl, the Big Daddy of all the scripting languages for quick development of standalone programs meant to be run under the perl interpreter. PHP (PHP Hypertext Preprocessor) is an HTML embeddable scripting language that achieves the functionality of ASP or JSP, to give an idea. It has controls to access databases from within an HTML page, communicate with the web-server and do small computations like JavaScript. Performance wise PHP has been shown to merrily beat ASP and JSP. There are utilities available to generate charts, graphics and PDF documents dynamically through PHP.

2. GUI based IDEs and RAD Tools

Borland Kylix RAD Environment

http://www.borland.com/kylix  

Borland Inc. has developed Kylix, a RAD Tool for Linux that offers swift application development to develpers of Delphi, Visual Basic, Oracle / DB2, Apache and Native Linux Applications. Let's explore the functionality of Kylix briefly.

  1. Kylix for Delphi Developers: This component provides Delphi developers identical environment and components in Linux.
  2. Kylix for Visual Basic Developers: The Kylix programming model is identical to Visual Basic's event-driven visual programming model, so Visual Basic programmers will instantly become productive on Linux. Kylix applications run instantly with its blazingly fast native code compiler, compiling at over 4,000,000 lines per minute.
  3. Kylix for Linux Developers: This is an aid to Linux Developers as it provides a powerful optimizing compiler, a feature packed debugger and readymade components for quick and efficient application development.
  4. Kylix for Oracle/DB2 Developers: This includes the Data-ware GUI components and also allows you to optimize the performance and responsiveness of your database applications with the SQL Monitor SQL testing and debugging component and increase server responsiveness with Cached Updates
  5. Kylix for Apache Developers: Kylix's NetCLX? combines browser, server and database development technologies to quickly deliver scalable web applications that support large numbers of users and large volumes of data.

Kylix is available in 3 flavors. Kylix Open Edition is free of cost, but doesn't include web and database development components. Kylix Desktop Developer includes tools for database application development at the client side but offers nothing for the Oracle and DB2 servers and Apache. Finally, Kylix Server Developer includes tools for quick application development for the Apache Web Server and Server side components for Oracle and DB2. 

There is a major price difference in the three packages, though. While the Open Edition is available for $0.00, the Desktop Developer sells for $199.00 and the Server Developer for $1,999.00 There is also a difference in Licensing. While the latter two can be used to develop packages that would be deployed as proprietary, the Open Edition can be used only for free software.

Anjuta

http://anjuta.sourceforge.net 

Anjuta is a versatile Integrated Development Environment (IDE) for C and C++ on GNU/Linux. It has been written for GTK/GNOME and features a number of advanced programming facilities. These include project management, application wizards, an on-board interactive debugger, and a powerful source editor with source browsing and syntax highlighting. Anjuta is an effort to marry the flexibility and power of text-based command-line tools with the ease-of-use of the GNOME graphical user interface. That is why it has been made as user-friendly as possible.

Emacs

http://www.gnu.org/software/emacs/emacs.html 

Most developers, including me, favor some type of Emacs (GNU Emacs, XEmacs, Emacs-nox etc.) as the IDE of choice. The power of Emacs may be gauged by the fact that it is known as The Text Editor with Everything and the Kitchen Sink. It includes a built-in file manager, web browser, news and email client, calendar and spell-checker to begin with. But that's not all. It has major modes for word processing in LaTeX, source code editing in Lisp, C, C++, SGML (HTML and family), Fortran, Java etc. Inside a major mode, the best facilities are syntax highlighting, auto-formatting (really helpful and very good), macro-expansion, region-wise comment/uncomment, context-based lookup in the man-pages, class-browser (C++), command shell, debugger attachments with gdb and compilation through GNU Make. It beats the VC++ IDE!

KDE Studio Gold

http://www.thekompany.com/products/ksg/ 

KDE Studio Gold is a full-featured application development suite that makes programming in C, C++ a pleasant experience. The GUI can be configured to look like VC++ or Borland Builder. It includes an integrated compiler and debugger, templates for applications in various environments like GNOME, X11, console etc, besides KDE. There are also the usual fancy items like a project manager, class-browser, code completion, context sensitive help etc. Though it is not free, it's very cheap at $24.95 for standard edition and $44.95 for professional.

Glade

http://glade.gnome.org 

Glade is a GUI development environment for GNOME apps in C, C++ or Python using GTK+. What it basically does is that it generates GTK+ code according to the design that a user chooses and also sets the event handler functions. If a user wants to write custom functions, an empty function body is generated, which the user fills with his/her code. This makes GUI development extremely fast and since the source is in C / C++, the performance is not compromised. Glade can handle all the widgets available in GTK+ like MDIs, Text-boxes, Spin buttons etc.

3. Information Systems Tools

Information System Tools would include web, mail and file servers, e-commerce management tools, development systems and data management systems. In the beginning of this discourse I had pointed out that Linux is being used heavily in the enterprise so there should be little doubt that it is well furbished with the kind of software that is needed in such a demanding environment. Let's examine the things we have in detail.

Web, Mail and FTP Servers

The the world's best Web Server recommends Linux as the platform on which to run it! Apache Web Server is the world's most used Web Server. At present there are over 60% public websites being hosted by Apache. It is also the world's most secure Web Server with no major security issues having cropped up since 1998. Apache is scalable enough to support the largest of the websites and it's quite fast despite it's small memory foot-print.

Sendmail is the world's most widely used email server and also one of the most secure and fast servers. Lately, Sendmail Inc. presented the world's largest email server for Linux on IBM eServer z900. Sendmail Inc. also makes GPLed versions of it's product that is in no way inadequate except for large enterprise houses.

WU-FTPD is the default FTP server shipped with many Linux distributions. This server is capable of handling all the basic demands of a heavily loaded anonymous FTP site along with appropriate security.

Database Management Systems

Oracle 8/9i and DB2, the world's number one and number two DBMSes are very much available for Linux along with all the required support services. Red Hat Inc. has a special edition of it's Linux Distribution specially optimized to run Oracle 8i. Besides that , there is DB2 Universal Database Version 7.1 - the world's first multimedia ready RDBMS that is also extremely flexible and scalable.

Red Hat Database is the Open Source solution for the RDBMS requirements of mid-sized organizations and enterprise workgroups and departments. It is built on the robust and highly scalable PostgreSQL O-RDBMS that also has support for Objects and BLOBs. PostgreSQL is available without the Red Hat decorations too.

BRU-Pro is the next generation of BRU, the #1 award winning Linux backup product, providing professional network storage management with reliability, scalability, ease of use and rock-solid functionality at realistic pricing.

Development Tools

WebSphere Application Server by IBM is a comprehensive Java-based Web application platform. The server combines the control and portability of server-side business applications with the performance and manageability of Java technologies. It includes almost all the J2EE components like EJB, JSP and Servlets and the IBM HTTP Server based on Apache.

Omnis Studio is a visual high-performance, Rapid Application Development (RAD) tool for Linux that allows development for quick designing of cross-platform (Linux, Windows, MacOS) Client/Server and Web based applications without any recompilation required to deploy cross-platform. It has native access to leading databases like Oracle, DB2, Informix and Sybase and can access all databases that support ODBC, like MS SQL Server.

E-Commerce

Red Hat CCVS CCVS (Credit Card Verification System) is software designed to process financial transactions. Because it's integrated with modern operating systems, programming languages and the Internet, you can modify CCVS to automate e-commerce and batch processing.

Red Hat E-Commerce Suite closes a significant gap among current e-commerce packages, which are either too limited in functionality, or too complex and costly. The Suite offers a comprehensive solution for companies who need to replace their current e-commerce system, or who are just getting started in e-commerce. It includes the whole of Red Hat Linux 7.1 plus Apache Web Server with SSL and other goodies.

OnlineBiz is a total and powerful out-of-the-box application that quickly deploys an entire e-business solution at an affordable price. OnlineBiz comes inclusive with front and remotely accessible back-end features. OnlineBiz, highly scalable and secured.

4. Desktop Utilities

The GIMP: The GIMP stands for The GNU Image Manipulation Program. For an application that started with a couple of Computer Science Students' failed attempts at building a compiler, The GIMP has come really far. This is one of the flagship products of GNU. The GIMP is what it's name says but it does it's job damn well. It has support for almost every image format on earth. Reviewers have commented as the capabilities of this program being beyond those of the Industry leading Adobe PhotoShop. It has facilities for format conversion, color manipulation through curves, levels, HSV and BC controls, including automatic color correction. Besides that, there is a huge array of extremely high quality image transformation filters that leave the user smitten by their capability. It also includes the capability to create GIF animations and layered images, navigation maps and web widgets through scripts.

LaTeX: LaTeX is the text based front-end to the Tex typesetting language created by the world renowned Programmer and Algorithms expert Donald Knuth. LaTeX provides templates for various document types like Articles, Reports, Books etc. The immediate advantage of LaTeX is that unlike in WYSIWIG editors like MS-Word, the user doesn't have to worry about the appearance of the work. It is guaranteed to come out good looking! Of course, you have controls for the appearance but the LaTeX manual explicitly states that if you deviate from the default appearance, the result will, most probably, come out worse. That's because the guys behind LaTeX have done quite a lot of research behind the subject. Another advantage of LaTeX (TeX, rather) is that whatever you write in your LaTeX document can be easily converted into a host of formats including, but not limited to, DVI, PDF, HTML and PS.

OpenOffice.org, KOffice and GNOME Utilities: For those of you who shudder at the thought of word-processing without GUI, Linux has major utilities like OpenOffice.org from Sun, KOffice from KDE and various GNOME utilities.

OpenOffice.org includes all the major components included in the MS-Office Suite and the appearance is a hybrid of MS-Office and WordPerfect. Many companies have shown interest in OpenOffice.org because it is Open Source whereas the Licensing of MS-Office has become very painful. It has amazing capability of working over the MS-Office File formats without loss of formatting information. On the other hand, the file-formats of OpenOffice.org are based on XML, an open standard, so anyone can write a utility to operate on OpenOffice.org files easily.

KOffice and GNOME utilities are also similar in functionality but their capabilities are more or less eclipsed by those of OpenOffice.org, barring AbiWord a part of the Gnome project that is a light and highly functional stand-alone Word Processor.


[ Up ] [ Introduction ] [ The Structure of Linux ] [ Common Linux Applications ] [ References ]



© 2002 - 2004 Tahir Hashmi. Unauthorized copying, alteration and redistribution in any media is prohibited, except where explicitly stated as being distributed under the OpenContent License (OPL). Last updated: 21 February, 2021. Update Log. Personal Email: tahir AT tahir.ws [PGP Key: ASCII, Binary]; code_martial AT softhome.net [PGP Key: ASCII, Binary] IM: Yahoo! Messenger [tn_hashmi]