Bluefish (software)

Last updated
Bluefish
Developer(s) Olivier Sessink
Initial release1999;25 years ago (1999)
Stable release
2.2.16 [1]   OOjs UI icon edit-ltr-progressive.svg / 22 September 2024 (22 September 2024)
Repository
Written in C
Operating system Cross-platform (POSIX)
Type Text editor
License GPL-3.0-or-later
Website bluefish.openoffice.nl   OOjs UI icon edit-ltr-progressive.svg

Bluefish is a free and open-source software advanced source code editor with a variety of tools for programming and website development. It supports editing source code such as C, JavaScript, [2] Java, PHP, [3] [4] Python, [5] [6] as well as markup languages such as HTML, [7] YAML and XML. [8] [9] It is available for many platforms, including Linux, [10] macOS, [11] and Windows, [12] [13] and can be used via integration with GNOME or run as a stand-alone application. Designed as a compromise between plain text editors and full programming IDEs, [14] [15] Bluefish is lightweight, fast and easy to learn, while providing many IDE features. [16] [17] Bluefish was one of the first source code editors on the Linux desktop. It has been translated into 17 languages. The source code is available under the GNU General Public License.

Contents

Features

Bluefish is not a complete IDE, but more than an advanced text editor. [18] Compared to an IDE Bluefish lacks functionality like an integrated debugger. [19] It is better described as an advanced code editor [20] with many web specific features. [21] [15] Some call this a web IDE, [22] but it does not feature a WYSIWYG web design component. [23] [21]

Bluefish's features include syntax highlighting [24] and auto-completion for 47 different markup and code languages (including Mediawiki syntax [25] ), customizable via a XML language definition format. [26] It furthermore features code folding, auto-recovery, [16] upload/download functionality (on systems where GVfs is available), a code-aware spell-checker, [22] [16] a Unicode character browser, project support, [27] code navigation and bookmarks. [28] It has some advanced search and replace functionality [21] with regular expression support, and multi-file search and replace support. It has a multiple document interface [29] that can quickly load large (hundreds of files) codebases or websites, [20] [27] and features full screen editing. [19]

For web development it has many a toolbar with specific dialogs and wizards to automatically insert the correct HTML tags. [24] Furthermore autocompletion for all tags and their attributes [21] together with Zencoding/emmet [30] helps for quick web development. [23]

Bluefish is extensible via plugins and external tools and scripts. [27] [16] [31] Many scripts come preconfigured, including statical code analysis, and syntax and markup checks for different markup and programming languages such as lint or weblint. [32] Also a simple marco-like feature called "custom menu" helps to speed up repeating actions. [18] [33] A large set of macro's for PHP and HTML come preconfigured. [34]

History of Bluefish in the early years of the Linux desktop

Bluefish was started by Chris Mazuc and Olivier Sessink in 1998 to facilitate web development professionals on Linux desktop platforms. [35] In 1998 the K Desktop Environment 1.0 was released, and in 1999 the Gnome desktop environment 1.0 was released, so this was in the early days of the Linux desktop. [36] Bluefish was at the time one of the only web development focused editors on the Linux. [37] [38] Linux, due to the LAMP stack (first introduced in 1998 [39] ), was becoming the most popular web hosting platform. [40] Bluefish was quickly part of the major Linux distributions, such as Debian Potato (released in 2000), [41] Knoppix 2.1 [42] [43] (at the time the most important Linux Live distribution) and the first Fedora release. [44] On the early Linux desktop Bluefish was the most important web editor. [45] Various books about web development on Linux therefore cover the use of Bluefish. For example Practical PHP and MySQL by Ubuntu community manager Jono Bacon which even included a customized Ubuntu live CD with Bluefish as primary editor. [3] [46]

The development of Bluefish was initially inspired by two other editors: the configurable syntax scanning and highlighting was inspired by the NEdit, but the user interface was inspired by Homesite which was only available on windows. The work title for the application development in the very early stages was Thtml editor, but this was considered too cryptic by the small development community; for a short time Prosite was used, but this was abandoned to avoid clashes with web-development companies already using that name. [47] Finally the name Bluefish was chosen after a logo (a child's drawing of a blue fish) was proposed on its mailing list. [35]

The 1.0.x branch was released in 2005, and included a new logo. The 1.0 release was featured on Slashdot, [48] causing the slashdot effect on the Bluefish website. In 2005 a Bluefish fork of 1.3 was made to create Winefish, a LaTeX editor. [49] The 2.0.x branch [50] was a big rewrite, changing to the GTK-2 GtkTextView widget and a new syntax scanning engine based on a deterministic finite automaton. [51] The 2.2.x branch, [52] which is the current stable branch, supports both GTK-2 and GTK-3.

Although Bluefish is not an official part of the Gnome desktop environment, it is often considered so because it uses the GTK toolkit and integrates well in GNOME. [45] [53]

Source code and development

The open source codebase of Bluefish is available on SourceForge. After a short period in which the Bluefish developers communicated code patches over email, [54] Bluefish joined as one of the early projects on Sourceforge. The community joined in the first few months after launch, mainly promoted by Robin Miller who was a heavy Bluefish user [18] and worked for Geeknet that owned Sourceforge. Initially CVS was used for code version control, later the code was moved to SVN.

Bluefish has a well-established code-base mostly written in C [55] and uses the cross-platform GTK library for its GUI widgets. [56] Markup and programming language support is defined in XML files that are loaded with Libxml2. The optional plugins require libenchant, python and libgucharmap. [57] Building a binary is done with Automake and Autoconf to configure and set up its build environment. Both llvm and GCC can be used to compile Bluefish. On Windows, MinGW is used to build the binaries. On OSX there are ports on Fink [58] and Macports, [59] but the offficial binary is built using the Gtk-OSX-Integration [60]

Bluefish has a plugin API in C, but it has been used mainly to separate non-maintained parts (such as the infobrowser-plugin) from maintained parts. A few Python plugins exist as well, but they need a C plugin to interact with the main program. Bluefish also supports very loosely coupled plugins: external scripts that read standard input and return their results via standard output can be configured by the user in the preferences panel. [27] Various scripts for javascript, json, CSS, and HTML formatting are included in the Bluefish distribution.

See also

Related Research Articles

<span class="mw-page-title-main">Xfce</span> Desktop environment

Xfce or XFCE is a free and open-source desktop environment for Linux and other Unix-like operating systems.

<span class="mw-page-title-main">KDevelop</span> Integrated development environment

KDevelop is a free and open-source integrated development environment (IDE) for Unix-like computer operating systems and Windows. It provides editing, navigation and debugging features for several programming languages, and integration with build automation and version-control systems, using a plugin-based architecture.

gedit Linux text editor

gedit is a text editor designed for the GNOME desktop environment. It was GNOME's default text editor and part of the GNOME Core Applications until GNOME version 42 in March 2022, which changed the default text editor to GNOME Text Editor. Designed as a general-purpose text editor, gedit emphasizes simplicity and ease of use, with a clean and simple GUI, according to the philosophy of the GNOME project. It includes tools for editing source code and structured text such as markup languages.

Oracle APEX is an enterprise low-code application development platform from Oracle Corporation. APEX is used for developing and deploying cloud, mobile and desktop applications. The platform is a web-based integrated development environment (IDE) including features such as wizards, drag-and-drop layout and property editors to try to simplify the process of building applications and pages.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

<span class="mw-page-title-main">Komodo Edit</span> Text editor for dynamic programming languages

Komodo Edit is a free and open source text editor for dynamic programming languages. It was introduced in January 2007 to complement ActiveState's commercial Komodo IDE. As of version 4.3, Komodo Edit is built atop the Open Komodo project. Komodo IDE is no longer supported and maintained by developers for Python.

A personal wiki is wiki software that allows individual users to organize information on their desktop or mobile computing devices in a manner similar to community wikis, but without collaborative software or multiple users.

<span class="mw-page-title-main">LXDE</span> Lightweight desktop environment for Linux and BSD

LXDE is a free desktop environment with comparatively low resource requirements. This makes it especially suitable for use on older or resource-constrained personal computers such as netbooks or system on a chip computers.

<span class="mw-page-title-main">Komodo IDE</span>

Komodo IDE is an integrated development environment (IDE) for dynamic programming languages. It was introduced in May 2000. Many of Komodo's features are derived from an embedded Python interpreter.

<span class="mw-page-title-main">JavaFX</span> Java software platform for GUI

JavaFX is a software platform for creating and delivering desktop applications, as well as rich web applications that can run across a wide variety of devices. JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linux, and macOS, as well as mobile devices running iOS and Android, through Gluon Mobile.

<span class="mw-page-title-main">Geany</span> Integrated Development Environment

Geany is a free and open-source lightweight GUI text editor using Scintilla and GTK, including basic IDE features. It is designed to have short load times, with limited dependency on separate packages or external libraries on Linux. It has been ported to a wide range of operating systems, such as BSD, Linux, macOS, Solaris and Windows. The Windows port lacks an embedded terminal window; also missing from the Windows version are the external development tools present under Unix, unless installed separately by the user. Among the supported programming languages and markup languages are C, C++, C#, Java, JavaScript, PHP, HTML, LaTeX, CSS, Python, Perl, Ruby, Pascal, Haskell, Erlang, Vala and many others.

<span class="mw-page-title-main">GTK</span> Free and open-source cross-platform widget toolkit for creating graphical user interfaces

GTK is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the Wayland and X11 windowing systems.

<span class="mw-page-title-main">CSS HTML Validator</span> HTML editor and CSS editor for Windows

CSS HTML Validator is an HTML editor and CSS editor for Windows that helps web developers create syntactically correct and accessible HTML/HTML5, XHTML, and CSS documents by locating errors, potential problems like browser compatibility issues, and common mistakes. It is also able to check links, check spelling, suggest improvements, alert developers to deprecated, obsolete, or proprietary tags, attributes, and CSS properties, and find issues that can affect search engine optimization.

OggConvert is a free and open-source transcoder for digital audio and video files of various types into the free Ogg Vorbis audio format, and the Theora, VP8 and Dirac video formats. It supports Ogg, Matroska and WebM containers for output. It is developed by a single author, primarily for Linux. A number of community translations exist for the software.

<span class="mw-page-title-main">Sencha Touch</span> JavaScript framework

Sencha Touch is a user interface (UI) JavaScript library, or web framework, specifically built for the Mobile Web. It can be used by Web developers to develop user interfaces for mobile web applications that look and feel like native applications on supported mobile devices. It is based on web standards such as HTML5, CSS3 and JavaScript. The goal of Sencha Touch is to facilitate quick and easy development of HTML5 based mobile apps which run on Android, iOS, Windows, Tizen and BlackBerry devices, simultaneously allowing a native look and feel to the apps.

<span class="mw-page-title-main">Leafpad</span> Lightweight text editor

Leafpad is a free and open-source graphical text editor for Linux, Berkeley Software Distribution (BSD), and Maemo that is similar to the Microsoft Windows program Notepad. Created with the focus of being a lightweight text editor with minimal dependencies, it is designed to be simple-to-use and easy-to-compile.

<span class="mw-page-title-main">Zim (software)</span> Personal wiki software written in Python

Zim is a graphical text editor designed to maintain a collection of locally stored wiki-pages, a personal wiki. It works as a personal knowledge base and note-taking software application that operates on text files using markdown. Each wiki-page can contain things like text with simple formatting, links to other pages, attachments, and images. Additional plugins, such as an equation editor and spell-checker, are also available. The wiki-pages are stored in a folder structure in plain text files with wiki formatting. Zim can be used with the Getting Things Done method.

<span class="mw-page-title-main">Pluma (text editor)</span> Default text editor for the MATE desktop environment

Pluma is a fork of gedit 2 and the default text editor of the MATE desktop environment used in Linux distributions. It extends the basic functionality with other features and plugins.

<span class="mw-page-title-main">GNOME Builder</span> General purpose integrated development environment (IDE) for the GNOME platform

GNOME Builder is a general purpose integrated development environment (IDE) for the GNOME platform, primarily designed to aid in writing GNOME-based applications. It was initially released on March 24, 2015, replacing Anjuta. The application's tagline is "A toolsmith for GNOME-based applications".

References

  1. https://bluefish.openoffice.nl/download.html.{{cite web}}: Missing or empty |title= (help)
  2. Michael Morrison (2007). Ajax Construction Kit: Building Plug-and-Play Ajax Applications. Prentice Hall. ISBN   9780132350082.
  3. 1 2 Bacon, Jono (2007). Practical PHP and MySQL : building eight dynamic web applications. Prentice Hall. ISBN   9780132239974.
  4. Easy Oracle PHP. Rampant Tech Press. 2006. ISBN   9780976157304.
  5. H. Bhasin (2019). Python for Beginners. New Age International (P) Ltd. ISBN   978-93-86649-49-2.
  6. Tim Hall and J-P Stacey (2009). Python 3 for Absolute Beginners. Apress Berkeley, CA. ISBN   978-1-4302-1632-2.
  7. Tiffany B. Brown (2013). Jump Start HTML5 Basics. SitePoint Pty. Ltd. ISBN   978-0-9922794-9-3.
  8. Leslie F. Sikos (2011). Web Standards - Mastering HTML5, CSS3, and XML. Apress Berkeley, CA. ISBN   978-1-4302-4041-9.
  9. "FOSS v proprietary software: Website creation". ZDNet. 2 July 2012.
  10. Benjamin Mako Hill, Matthew Helmke, Corey Burger (2009). The Official Ubuntu Book. Prentice Hall. ISBN   978-0137021208.{{cite book}}: CS1 maint: multiple names: authors list (link)
  11. "Download Bluefish for Mac - Macupdate". Macupdate. 23 January 2017.
  12. Joe 'Zonker' Brockmeier (10 March 2010). "Bluefish 2.0: Slim but powerful". Linux Weekly News.
  13. "Using Linux on Windows with Cygwin". Linux Magazine. July 2014.
  14. "One Fish, Two Fish, Red Fish, Bluefish". Computerworld. 20 December 2001.
  15. 1 2 Nitin Agarwal (November 29, 2011). "Bluefish: A cross-platform HTML Editor – Review".
  16. 1 2 3 4 "New to programming? My 5 favorite Linux tools will get you up to speed faster". ZDNet. May 20, 2024.
  17. Scott Nesbitt (14 October 2020). "Editing HTML (and More) with Bluefish".
  18. 1 2 3 Robin (Roblimo) Miller (10 September 2002). "Bluefish: My favorite Linux HTML editor". Linux.com. Retrieved 3 May 2024.
  19. 1 2 "6 Best Free Linux GUI Code Editors for Programming". Linuxiac. 1 November 2023.
  20. 1 2 Curtiss (22 April 2012). "Bluefish Editor, HtmlCenter blog". HTMLCenter.
  21. 1 2 3 4 Mihai Marinof (18 April 2007). "Bluefish Review". Softpedia. Retrieved 7 December 2016.
  22. 1 2 "Popular Open Source IDEs for Web Development". Open Source for You. 9 May 2015.
  23. 1 2 Steve Litt (2013). "Bluefish: Quality and Speed". Linux Productivity Magazine.
  24. 1 2 William Rothwell (2017). Linux for Developers: Jumpstart Your Linux Programming Skills. Addison-Wesley. ISBN   9780134657288.
  25. Wikipedia:Text editor support § Bluefish
  26. "Writing language definition files". 5 January 2023.
  27. 1 2 3 4 Mark Harris (2 November 2016). "Using Bluefish as Your Web Editor" . Retrieved 2 May 2024.
  28. "Bluefish features" . Retrieved 2024-05-03.
  29. Andreas Grytz (May 2005). "The Bluefish HTML editor and integrated IDE". Linux Magazine.
  30. Olivier Sessink (2012). "Bluefish 2.2.1 released". bluefish-dev (Mailing list).
  31. "The best PHP editors and PHP IDEs". Ionos. 2023.
  32. Sohail (16 March 2016). "Best Linux IDEs Or Code Editors".
  33. "Linux text editors: Do any make the grade?". Computerworld. 17 August 2007.
  34. "Bluefish-The Feature Rich Editor". OpenSourceForU. 11 December 2013.
  35. 1 2 Dave Crouse. "An interview with Oliver Sessink - Bluefish Developer". USA Linux user group. Archived from the original on 2010-06-20. Retrieved 2024-05-03.
  36. "How the Linux desktop has grown". opensource.com. Retrieved 2024-05-23.
  37. Martin Skjøldenrand (July 2000). "Bluefish HTML Editor". Linux Gazette. Retrieved 14 August 2024.
  38. Omara Howard (8 July 2021). "Bluefish / for perfect coding" . Retrieved 2024-08-15.
  39. Kunze, Michael (December 1998). "LAMP: Freeware Web Publishing System with Database Support". c't. Archived from the original on 1999-02-03. Retrieved 2024-06-15.
  40. Ernie Smith (2021-09-01). "The LAMP stack history".
  41. "bluefish-0.3.5-1 - snapshots.debian.org".
  42. "KNOPPIX Release V2.1-BETA-12-09-2001". debian-knoppix (Mailing list). 12 September 2001.
  43. "Hands-on with Knoppix Linux". ZDNet.
  44. "Releases - rpms/bluefish".
  45. 1 2 Graham Williams (2007). Debian GNU/Linux Desktop Survival Guide. Togaware. ISBN   978-0-9757109-1-3.
  46. Sharon Machlis (25 January 2007). "Review: Practical PHP and MySQL". computerworld.
  47. "Bluefish history" . Retrieved 2024-05-02.
  48. "News for nerds, stuff that matters - Bluefish 1.0 Released". Slashdot.org. 13 January 2005. Retrieved 2024-05-02.
  49. "Winefish". GitHub . Retrieved 2024-05-02.
  50. "Bluefish 2.0.0 released!". bluefish-dev (Mailing list). February 2010.
  51. Olivier Sessink (14 August 2010). "Bluefish editor widget design" . Retrieved 2024-05-02.
  52. "Bluefish 2.2.0 source code released - please help with binaries". bluefish-dev (Mailing list). November 2011.
  53. "Desktop deliverance: an overview of GNOME 2.20". Ars Technica. 25 September 2007.
  54. van Wendel de Joode, Ruben (September 26, 2005). "The Organization of Open Source Communities". doi:10.2139/ssrn.695902. SSRN   695902.
  55. "The Bluefish Open Source Project on Openhub". Openhub.
  56. "Bluefish Code".
  57. "Free software directory - Bluefish". Free Software Foundation. 12 February 2002.
  58. "Fink Package Bluefish". 3 July 2022.
  59. "Bluefish - Macports".
  60. "GTK-OSX Successes".

Further reading

Books or extensive websites on web development that recommend and/or cover the use of Bluefish:

Books on Python that recommend and/or cover the use of Bluefish:

Books on PHP that recommend and/or cover the use of Bluefish:

Generic books on development on the Linux desktop that recommend and/or cover the use of Bluefish: