Bluefish Review

very good
key review info
application features
  • A What You See Is What You Need interface
  • (3 more, see all...)

As a web designer in Linux, you won't have as many programs to choose from as in Windows. Moreover, if you've chosen Linux, it's likely you won't even want to hear about proprietary software so that will leave you with even fewer applications to choose from. Of course, don't think that 'a few' means one or two applications; there are a whole bunch of them but I'll mention only the tree most important. First of all, it's Quanta Plus, which is shipped with the KDE environment and then there's Screem and Bluefish, both developed using the GTK2 toolkit (this means they run really well on Gnome). For now, let's stick to the third.

Bluefish is a powerful editor for experienced web designers and programmers. It's well suited for developing websites but it also works well as a general purpose editor and IDE (Integrated Software Development Environment). It provides support for a number of programming languages such as HTML, JSP, Java, JavaScript, SQL, XML, Perl, PHP and Python. However, on one hand, Bluefish isn't a WYSIWYG text editor. The code generated by this type of editors isn't often clean so a simple editor will provide full control to the programmer. On the other hand, the editing process is facilitated by a number of features provided by the application. For instance, toolbars, dialogs and user-customized menus provide easy insertion of markup and code, while syntax highlighting, advanced search and replace functionality, scalability and language function references truly define Bluefish as a powerful tool for development.

Under Fedora, Ubuntu, Gentoo (and other popular distros), Bluefish installation is a snap. Simply use your distribution's package manager to search and install the 'bluefish' package. However, for those exotic, strange or new distributions, where there are no repositories or package managers, there's only one way to install Bluefish (and other applications as well): by installing from source. Keep in mind, however, that if you choose this installation method, you better have all the required libraries installed on your system or you'll end-up with a crashing and burning compilation process. Speaking for me, I'm using Fedora and thus, doing a yum install bluefish made the installation a real pleasure.

Once it was installed, I found its shortcut nicely put under Development / Web Development in KDE main menu. Running it for the first time will shortly display a nice splash screen, followed by a dialog entitled "Bluefish Tip", similar to 'Tip of the day' dialogs. I'm not such a tips fan as I like to discover new features on my own, so I immediately checked the "Don't show it again" check box and closed the dialog. This uncovered the Bluefish interface which is pretty amazing at first sight. After looking around the toolbars and menus, I've noticed that all the main options and features were visible and obvious. Another interface-related thing I found really impressive was the existence of only two toolbars: the main toolbar with functions found in any application and the HTML toobar, which had tabs: a tabbed toolbar! Remember those applications (MS Word) that had 6-7 toolbars that almost reached the bottom, leaving only about an inch for you to work on? Those times are so over if all applications will follow this tabbed toolbar trend. The HTML toolbar basically changes its buttons based on the chosen tab. There are tabs for fonts, tables, frames, forms, list and CSS but there's also a tab that opens the standard bar with basic HTML functions and a quick bar which could provide the most important buttons chosen by the user from other tabs.

Underneath the toolbars, there's a custom menu which provides basic functions for various programming languages. For instance, the HTML menu provides the META refresh tag which pops-up a dialog asking a refresh time in seconds and the destination URL. To the left, you'll notice a side panel that consists of a file browser, a function reference browser and a bookmark browser, accessible by clicking the corresponding sidebar notebook tab. The location of the sidebar can be customized from the Preferences dialog if, for instance, you want the sidebar to be on the right side. The file browser provides quick access to files and directories on the local file system, while the second browser references CSS2, HTML, PHP and Python functions with their syntax. Moreover, some of them will provide dialogs to help you insert them. The last browser provides access to previously bookmarked position in a file. The status bar at the bottom shows messages, the current line and column number, the current mode (insert or overwrite) and the type and character encoding. The most important part of the interface is the editor area. You can open several editor areas via tabs, located by default on the bottom. The editor area will color your code depending on the document type (accessible from the Document menu) and will display line numbers along the document.

Besides the clean and pretty nice interface, Bluefish provides powerful and easy to use features. For instance, it offers wizards for start-up, tables, frames and others. Dialogs are also provided for image insertion and various HTML tags, as well as their attributes. Thumbnails are automatically created and linked to the original image, while multi-thumbnail generation allows easy creation of photo albums or screen shot web pages. Bluefish also allows the user to specify his own tags or sets of code and define his own dialogs in a custom menu. Moreover, it provides a powerful support for search and replace from the custom menu, which also allows POSIX and Perl-compatible regular expressions and sub-pattern replacing. Spell checking is also available, as well as translations in as many as twenty languages. Many, many other small functions and features are available through the numerous menus, suitable for both advanced and beginner users.

Bluefish Preferences dialog is available from the Edit menu and allows customizing various options such as start-up behavior, editor font, undo history, encoding and more. In my opinion, the most important preference is found under the External programs tab which enables defining and customizing external programs. Here you can customize the browsers you will want to use for previewing the web code, as well as the utility and filter tools. While other applications have certain browsers defined by the author, Bluefish allows you to add a large (probably infinite) number of browsers, along with their binary path. This is very useful for web designers as it allows them to define whichever browsers they want, including Internet Explorer to test their compatibility with their products.

The Good

Bluefish is a powerful and mature editor for various programming languages but focuses on editing HTML code for dynamic and interactive websites. Its simple editor provides the programmer with full control over his code, compared to WYSIWYG editors which don't usually generate clean code. However, the editing process is facilitated by a large number of features such as customizable syntax highlighting or advanced searching and replacing functionality, as well as various features for inserting markup and code such as wizards and dialogs for numerous functions.

The Bad

This application has everything (or most of) you need for editing and creating websites. However, it should be nice if there were an 'Upload to FTP site' button that would update the website files.

The Truth

Bluefish is defined as a complex and powerful editor for experienced web designers and programmers. But this doesn't mean that inexperienced users shouldn't at least try it; they could really be impressed with it. I know I was and my experience as a web designer is close to nonexistent.

Check out some screenshots below:

Review image

Review image

Review image

Review image

Review image

Review image

Review image

Review image

user interface 4
features 5
ease of use 3
pricing / value 5

final rating 4
Editor's review
very good