September 2, 2003

Linux Web development tools

- by Robert Smith -
Linux's ability to mix both server and desktop applications on one computer can aid greatly in the production of Web site infrastructures. Yet Web developers operating on a Linux platform often have trouble finding the correct mix of desktop applications for the project at hand and the style of work. Here's a survey of available tools for Web development and testing.

The process of producing a Web site for a customer or client can be thought of as roughly occurring in three main steps:

The graphical and page layout design stage includes the development or integration of pictures, photos, diagrams, and logos into a site design, as well as producing a template page upon which other dynamically produced (or static) pages can be placed. A Web site can have many templates and hundreds of pages, so a site template has to be flexible and fast, and allow easy integration with the back end. HTML, XHTML, CSS, and JavaScript can all be used to produce great-looking Web sites. Tools to program the front end range from WYSIWYG (what you see is what you get) tools to simple text editors for the programmer who wants total control and maximum optimization.

Back-end coding and infrastructure design requires different tools from those used on the front end. Instead of designing the look of pages, these tools supply page content for the Web site based on information stored in a repository such as a database. For sites built using Web languages like ColdFusion, integrated development environments (IDE) are the best solution for developing a back end. Some programmers still like to use text editors like vim, but these tools require more effort to produce equivalent code.

Transfer and testing of the Web site is a process that many site designers do poorly. Making sure that your site not only works but looks the same in all browsers is important. For this process lots of different Web browsers, and settings within these browsers, should be used to account for every scenario possible. Being able to test multiple popular browsers quickly and easily in one place can increase your efficiency greatly. You can easily use an online service such as NetMechanic's Browser Photo to test your Web site on a variety of hardware/browser combinations, but this service can be pricey for smaller sites. Transferring the site to its end location is also as important a task as testing and may require the use of a server located away from the design environment.

The majority of Linux applications, as well as the main distributions, are free, and those that are not can generally be tested for free for a short period of time.

HTML coding tools

The tools reviewed below are used in the first two stages of the Web design progress. There are three main types of programs and applications used for these stages:

  • WYSIWYG packages (e.g. Dreamweaver)
  • IDE applications (e.g. Zend Studio)
  • Text editing packages (e.g. vim or Emacs)

Unfortunately there is not one application that provides enough useful features for Linux to be used as a WYSIWYG Web design environment. Many Web designers won't find this a problem, as they like to code their Web sites by hand, to have ultimate control and produce standard-compliant Web pages. For people starting out in the business and for graphic designers producing templates, however, this can still be a problem. A good WYSIWYG package would make all the difference in using Linux as a Web design platform.

OpenOffice HTML Editor

OpenOffice HTML Editor is one of the few open source WYSIWYG programs available for Linux. The package is able to produce basic page layouts using tables and contains all the design tools needed for such limited pages. Forms, colors, and tables are easy to use and what you see on screen looks pretty much the same in a browser. The HTML code OpenOffice HTML Editor produces is reasonably simple and easy to follow. Unfortunately the package is very limited. It produces only basic HTML, with no support for CSS, JavaScript, or dynamic HTML. For professional designers it offers no real advantages over coding a Web site by hand.

Amaya

Amaya is a WYSIWYG Web page production environment and browser created by the World Wide Web Consortium to demonstrate new Web technologies. The program produces standards-compliant Web pages, and its built-in browser lets you check your own Web pages for compatibility with Web standards. Although this is a WYSIWYG package, it actually takes a long time to produce Web pages using this program due to the tight control it exerts on the document structure. The GUI is badly designed; although the basic options are available on tool bars, finding the more complicated options takes a long time. Avaya is a useful tool for checking pages for compatibility, but difficult to use for design.

Bluefish

One of the better, more refined, stable, and faster packages available for Linux, Bluefish is a great programming tool. It boasts tabbed multi-document option, syntax highlighting, HTML tool bars and wizards, a CSS creation wizard, and basic PHP coding options. It integrates well with external browsers for previewing files and comes with HTML validation options. Bluefish is great as a basic programming environment, but it lacks features like CVS and FTP integration, which are useful when you're dealing with a project not based on your local machine.

Quanta Gold and Quanta Plus

Quanta is a Web development IDE produced commercially in two versions. Quanta Gold is a open source project based on the Qt toolkit; it costs $40. Quanta Plus is the free version of the program, but it lacks some of the advanced features in Quanta Gold, such as improved documentation, a more polished interface, and an integrated CSS editor. Quanta includes features such as integrated FTP, project management, templates, document structure management, plug-in support, DTD support, DTD-specific tool bars, and a built-in debugger and browser (based on Konqueror). It includes syntax highlighting for lots of languages and a spell checker.

Quanta is feature full, stable, and easy to learn to use. One of its major drawbacks is its performance, as it tends to work slowly when faced with high numbers of large documents. If you are looking for a package that allows you to code your sites and back ends by hand, but provides some options for easy production of Web site content, then this is your application.

vim and Emacs

Both packages are primarily text editors, and not designed as Web site production environments. Still, both packages have syntax highlighting, and Emacs has countless plug-ins such as file managers, integrated Web browsers, and dictionaries. Even with lots of add-ons, however, vim and Emacs may not provide all that a modern Web designer requires.

Eclipse

Perhaps the most useful of tools available under the Linux platform, Eclipse is a framework for producing IDEs for whatever language or feature set is required. Written primarily by IBM in Java, Eclipse is a great tool for producing an IDE which does exactly what you need it to do. A plug-in is used to convert Eclipse into the required IDE, and plug-ins to match almost every task can be found easily on the Web. Eclipse is open source software running under the CPL licence.

Among the PHP and Python adaptations for the Eclipse framework are Xored TruStudio and PHPEclipse, open source projects which convert Eclipse into a powerful IDE for rapid production of Web site back ends.

PHPEd and Zend Studio

Two good commercial IDEs are NuSphere's PHPEd and Zend Technologies' Zend Studio. Both programs speed up the rate that you can program PHP, especially when you are not too sure of the functions available for a task. The programs boast a large number of functions, including integrated debuggers, function reference, CVS and FTP access, and project management. Neither program is open source, however, and they can be expensive when used with the other programs that each company produces, such as code optimizers and servers.

Graphic design programs

The use of graphics on a Web site is an important way of branding a generic site to a specific company. Linux graphics development packages are advanced enough to cope with the majority of tasks. However, Linux lacks programs for Flash file production and design, which for a lot of graphic designers rules it out as a usable platform.

The GIMP

The GIMP currently exists as two main branches, the stable 1.2 branch and the unstable 1.3 branch. Both packages are capable programs for producing logos and graphics. The stable branch has a wide selection of tools and filters, and the Script-Fu extensions, which can be used to automate tasks within the GIMP. GIMP 1.2 feels roughly the same as Photoshop 4.0 on the Mac, sans some of the more advanced print based options, but has a few extra tricks. However, it is beginning to show its age, and the unstable branch has become stable enough to cope with heavy graphics work. The unstable branch looks and feels more professional than 1.2. It has a new interface which feels more like the current versions of Photoshop and boasts a wide selection of new tools.

Image Magick

Image Magick is a set of command-line tools that allow you to quickly and easily edit, resize, reformat, and render bitmap images without the need for an X-based interface. The tools are especially useful when transforming large numbers of images into a certain format or changing their size to create thumbnail prints. Command-line scripts can automate a task on a directory of images. When installed on a server Image Magick can be used on dynamic Web sites to reformat content on the fly.

Photoshop plus CrossOver Office

The most popular application for bitmap graphic production is Adobe Photoshop, which runs natively under both Windows and Mac OS. Photoshop can be used under Linux by running it with CodeWeavers' CrossOver Office.

FTP clients

Getting the Web pages to their end destinations is an important path in any Web site development cycle. You have to transfer the files, set the file permissions, and check that all the files were copied successfully. Most developers transfer Web pages via FTP to their end destination, though security-conscious Web developers use the Secure Copy program (SCP). There are also command line FTP tools that are generally faster than but not as easy to use as their graphical counterparts.

A lot of the IDE tools available under Linux, such as Quanta and Zend Studio, come with an integrated FTP client. These often have limitations that are accounted for in more specialized FTP clients, but may offer advantages like CVS support. Running two applications when one will do the job is often counterproductive. On the other hand, there is no point in using an application you are not happy with.

Although they're not as polished as some of the commercial programs available on other operating systems, Linux does have a wide range of FTP clients. The following packages are options available to Web developers on Linux.

gFTP

gFTP is one of the better FTP packages available under Linux. It has a simple interface, with local and remote file system panes, an upload status information section, and a quick connect interface. The program has options for all the standard features, such as chmod to edit file permissions. Using the configuration interface you can choose programs to edit local and remote files for quick and simple changes. gFTP supports SSH for secure file transfer. The FTP client can also be used for transferring files via HTTP.

gFTP is powerful, fast, and stable. The interface is a bit unusual in comparison to other programs as there is no window for account management of FTP servers. Instead, a browser-style bookmarks section allows you to store all your FTP sites, allowing you to separate hundreds of sites easily and effectively, including public download servers.

AxY FTP

AxY FTP is an extremely lightweight (64KB) package that comes with a choice of either a GTK or LessTif interface, both of which are fast and simple to use. It features a common interface with local and remote file browser panes, a connection manager, and buttons to do basic tasks on files. Unfortunately the program does not include options like SSH or even chmod ability, though this can be emulated using the exec command and manually typing in the command. Still, for basic file transfers this program is fast, stable, and easy to use.

Konqueror

Konqueror is the all-in-one file manager, Web browser, and FTP client for the KDE desktop. The FTP client supports most of the main FTP features. It looks and feels as if you are browsing on a local file system, except of course for the speed difference. The access method is also slightly different, as instead of accessing the server by specifying the server name, user, and password at the same time, you access it in the same way that you access a Web page with .htaccess protection. It is probably the easiest to use of all the FTP clients, as you don't have to learn a new package if you are already familiar with Konqueror.

Browsers

Making your page look the same and work correctly in all browsers is an important task. There are countless browsers out there, but the overwhelming majority of site visitors use Microsoft Internet Explorer. Gecko-based browsers, including Netscape, Mozilla, and Galeon, account for less than 15% of site traffic, while Opera is less than 2%.

Internet Explorer

All Web pages must be designed to work with IE, as it is currently the de facto industry standard. IE's rendering engine is reasonably standards-compliant, but some workarounds may be necessary to get your pages working correctly. IE can be run on Linux either by using Wine or the aforementioned CrossOver Office. Despite its flaws IE has to be supported, so installing a copy on a Linux box for testing purposes is a must, unless you have a Windows test box available. The advantage of running the software under Linux is that you can install more than one version (4.x, 5.x, 6.x), which means you can check complete compatibility.

Gecko-based browsers

Probably the best rendering engine around, Gecko is almost completely standards-compliant and adds extra non-standard features. In theory all Gecko-based browsers should render pages the same way, but as Netscape patches the rendering engine to produce its product it may be useful to have a copy of Galeon or Mozilla along with the Netscape version.

Opera and others

Users of the Opera browser have been blessed with an excellent browser, with good standards compliance and one of the fastest rendering engines available. There are hundreds of low percentage browsers, from the KDE's Konqueror to the excellent text-based browser Links. Having these applications and testing them with your Web site is not extremely important, but if you have enough time it is worth doing, as there is no point in cheesing off even a few potential site visitors. Testing a page with a text-based browser is a good way of quickly checking how it will look without images and style sheets. If it looks good, then you have done a good job designing the Web site.

Conclusions

In the final analysis, it's clear that although Linux lacks certain tools some Web developers need, it provides a useful platform for Web development, replete with a variety of applications for page development, infrastructure design, and transfer and testing.

Robert Smith is a freelance computer developer based in England who has been using Linux for three years. He produces customised Web site frameworks and programs under Linux and customised PCs.

Click Here!