Jump to content

Draft:Bluefish (software)

From Wikipedia, the free encyclopedia
Bluefish
Developer(s)Olivier Sessink
Initial release1999; 25 years ago (1999)
Stable release
2.2.15[1] Edit this on Wikidata / 17 March 2024 (17 March 2024)
Written inC
Operating systemCross-platform (POSIX)
TypeText editor
LicenseGPL-3.0-or-later
Websitebluefish.openoffice.nl/index.html

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, XML[8][9]. It is available for many platforms, including Linux[10], macOS, [11] and Windows,[12][13][14] 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,[15][16]. Bluefish is lightweight, fast and easy to learn, while providing many IDE features[17][18][19]. Bluefish was one of the first source code editor on the Linux desktop. It has been translated into 17 languages. The source code is available under the GNU General Public License.

Features

[edit]

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

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

Bluefish is extensible via plugins and external tools and scripts[19][24][17][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 [33].

History of Bluefish in the early years of the Linux desktop

[edit]

Bluefish was started by Chris Mazuc and Olivier Sessink in 1998 to facilitate web development professionals on Linux desktop platforms[34]. In 1998 KDE 1.0 was released, and in 1999 Gnome 1.0 was released, so this was in the early days of the Linux desktop[35]. Bluefish was at the time the only web development editor on the Linux, and Linux, due to the LAMP stack (first introduced in 1998[36]) was becoming the most popular platform[37]. Bluefish was quickly part of the major Linux distributions, such as Debian Potato (released in 2000)[38], Knoppix 2.1[39][40] (at the time the most important Linux Live distribution) and the first Fedora release[41]. On the early Linux desktop Bluefish was the most important web editor.[42] 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][43].

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[44]. Finally the name Bluefish was chosen after a logo (a child's drawing of a blue fish) was proposed on its mailing list.

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

Although Bluefish is not an official part of Gnome, it is often considered so because it uses the GTK toolkit and integrates in GNOME[42][50].

Source code and development

[edit]

The open source codebase of Bluefish is available on SourceForge. Bluefish was one of the early projects on Sourceforge, it joined in the first few months after launch, mainly promoted by Robin Miller who was a heavy Bluefish user[19] and worked for Geeknet that owned Sourceforge. Initially CVS was used for code version control, later the code was moved to SVN.

Bluefish is written in C and uses the cross-platform GTK library for its GUI widgets[51]. Markup and programming language support is defined in XML files that are loaded with Libxml2. The optional plugins require libenchant, python and libgucharmap[52]. 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 and Macports[53], but the offficial binary is built using the Gtk-OSX-Integration[54]

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. Various scripts for javascript, json, CSS and HTML formatting are included in the Bluefish distribution.

See also

[edit]

Bluefish in comparison

[edit]

There any many other generic editors, source code editors and IDE's available. In comparison with generic plain text editors Bluefish has many more advanced features. In comparision with advanced (code) editors Bluefish does well[31], and is especially strong in the web development area, where it sets the standard[55]. Compared to web specific IDE's and editors Bluefish is among the bext [26][16][27][30][23], although it does not have WYSIWYG capabilities[26]. Compared to code development IDE's Bluefish lacks some of the advanced options such as a built-in debugger[56].

Some notable tools that Bluefish is often compared with:

Fort further reading on comparison between editors see

Further reading: books on development with Bluefish

[edit]

There are various books that recommend and/or cover the use of Bluefish in development. Books on web development are Mastering HTML5 Forms[58], Jump Start HTML5 Basics[59], Webseiten gestalten Grundlagen HTML5 und CSS[60], Web Standards - Mastering HTML5, CSS3, and XML [61], HTML and CSS Web Standards Solutions A Web Standardistas’ Approach[62], Ajax Construction Kit: Building Plug-and-Play Ajax Applications[63], HTML, XHTML & CSS für Einsteiger: Statische Websites systematisch erstellen[64], HTML: Your Visual Blueprint for Designing Effective Web Pages[65]. Books on Python include Python for Beginners[5] and Python 3 for Absolute Beginners[66]. Books on PHP include Practical PHP and MySQL : building eight dynamic web applications[67] and Easy Oracle PHP[4]. Generic books on development on the Linux desktop include Linux for Developers: Jumpstart Your Linux Programming Skills[68], The Official Ubuntu Book[69] and the Debian GNU/Linux Desktop Survival Guide[70]

[edit]

More on Wikipedia

[edit]

References

[edit]
  1. ^ "Bluefish website". Retrieved 3 May 2024.
  2. ^ Michael Morrison (2007). Ajax Construction Kit: Building Plug-and-Play Ajax Applications. Prentice Hall. ISBN 9780132350082.
  3. ^ a b Bacon, Jono (2007). Practical PHP and MySQL : building eight dynamic web applications. Prentice Hall. ISBN 9780132239974.
  4. ^ a b Easy Oracle PHP. Rampant Tech Press. 2006. ISBN 9780976157304.
  5. ^ a b 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 0137021208.{{cite book}}: CS1 maint: multiple names: authors list (link)
  11. ^ "Download Bluefish for Mac - Macupdate". Macupdate. 23 Jan 2017.
  12. ^ Bluefish installation instructions
  13. ^ Joe 'Zonker' Brockmeier (10 March 2010). "Bluefish 2.0: Slim but powerful". Linux Weekly News.
  14. ^ "Using Linux on Windows with Cygwin". Linux Magazine. July 2014.
  15. ^ "One Fish, Two Fish, Red Fish, Bluefish". Computerworld. 20 Dec 2001.
  16. ^ a b c Nitin Agarwal (November 29, 2011). "Bluefish: A cross-platform HTML Editor – Review".
  17. ^ a b c d "New to programming? My 5 favorite Linux tools will get you up to speed faster". ZDNet. May 20, 2024.
  18. ^ Scott Nesbitt (14 October 2020). "Editing HTML (and More) with Bluefish".
  19. ^ a b c Robin (Roblimo) Miller (10 September 2002). "Bluefish: My favorite Linux HTML editor". Linux.com. Retrieved 3 May 2024.
  20. ^ a b William Rothwell (2017). Linux for Developers: Jumpstart Your Linux Programming Skills. Addison-Wesley. ISBN 9780134657288.
  21. ^ Wikipedia:Text editor support § Bluefish
  22. ^ "Writing language definition files". 5 January 2023.
  23. ^ a b c d "Popular Open Source IDEs for Web Development". Open Source for You. 9 May 2015.
  24. ^ a b c Mark Harris (2 November 2016). "Using Bluefish as Your Web Editor". Retrieved 2 May 2024.
  25. ^ "Bluefish features". Retrieved 2024-05-03.
  26. ^ a b c d Mihai Marinof (18 April 2007). "Bluefish Review". Softpedia. Retrieved 7 December 2016.
  27. ^ a b Curtiss (22 April 2012). "Bluefish Editor, HtmlCenter blog". HTMLCenter.
  28. ^ "The Bluefish HTML editor and integrated IDE". Linux Magazine. May 2005.
  29. ^ Olivier Sessink (2012). "Bluefish 2.2.1 released". bluefish-dev (Mailing list).
  30. ^ a b Steve Litt (2013). "Bluefish: Quality and Speed". Linux Productivity Magazine.
  31. ^ a b c d "The best PHP editors and PHP IDEs". Ionos. 2023.
  32. ^ a b c d Sohail (16 Mar 2016). "Best Linux IDEs Or Code Editors".
  33. ^ "Bluefish-The Feature Rich Editor". OpenSourceForU. 11 December 2013.
  34. ^ 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.
  35. ^ "How the Linux desktop has grown". opensource.com. Retrieved 2024-05-23.
  36. ^ 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.
  37. ^ Ernie Smith (2021-09-01). "The LAMP stack history".
  38. ^ "bluefish-0.3.5-1 - snapshots.debian.org".
  39. ^ "KNOPPIX Release V2.1-BETA-12-09-2001". debian-knoppix (Mailing list). 12 Sep 2001.
  40. ^ "Hands-on with Knoppix Linux". ZDNet.
  41. ^ "Releases - rpms/bluefish".
  42. ^ a b Graham Williams (2007). Debian GNU/Linux Desktop Survival Guide. Togaware. ISBN 0-9757109-1-5.
  43. ^ Sharon Machlis (25 Jan 2007). "Review: Practical PHP and MySQL". computerworld.
  44. ^ "Bluefish history". Retrieved 2024-05-02.
  45. ^ "News for nerds, stuff that matters - Bluefish 1.0 Released". Slashdot.org. 13 January 2005. Retrieved 2024-05-02.
  46. ^ "Winefish". GitHub. Retrieved 2024-05-02.
  47. ^ "Bluefish 2.0.0 released!". bluefish-dev (Mailing list). February 2010.
  48. ^ Olivier Sessink (14 August 2010). "Bluefish editor widget design". Retrieved 2024-05-02.
  49. ^ "Bluefish 2.2.0 source code released - please help with binaries". bluefish-dev (Mailing list). November 2011.
  50. ^ "Desktop deliverance: an overview of GNOME 2.20". Ars Technica. 25 September 2007.
  51. ^ "Bluefish Code".
  52. ^ "Free software directory - Bluefish". Free Software Foundation. 12 February 2002.
  53. ^ "Bluefish - Macports".
  54. ^ "GTK-OSX Successes".
  55. ^ Jack Wallen (29 Oct 2010). "Use Bluefish as your HTML editor".
  56. ^ a b c "6 Best Free Linux GUI Code Editors for Programming". Linuxiac. 1 November 2023.
  57. ^ a b c "Linux text editors: Do any make the grade?". Computerworld. 17 Aug 2007.
  58. ^ Gaurav Gupta (2013). Mastering HTML5 Forms. Packt Publishing Ltd. ISBN 978-1-78216-466-1.
  59. ^ Tiffany B. Brown (2013). Jump Start HTML5 Basics. SitePoint Pty. Ltd. ISBN 978-0-9922794-9-3.
  60. ^ Christoph Rauber, Frank Braun (2017). Webseiten gestalten Grundlagen HTML5 und CSS (in German). Herdt. ISBN 978-3-86249-738-6.
  61. ^ Leslie F. Sikos (2011). Web Standards - Mastering HTML5, CSS3, and XML. Apress Berkeley, CA. ISBN 978-1-4302-4041-9.
  62. ^ Christopher Murphy and Nicklas Persson (2008). HTML and CSS Web Standards Solutions A Web Standardistas’ Approach. Apress. ISBN 978-1-4302-1606-3.
  63. ^ Michael Morrison (2007). Ajax Construction Kit: Building Plug-and-Play Ajax Applications. Prentice Hall. ISBN 9780132350082.
  64. ^ Helmut Balzert (2003). HTML, XHTML & CSS für Einsteiger: Statische Websites systematisch erstellen (in German). Springer. ISBN 978-3937137001.
  65. ^ Ruth Maran (2000). HTML: Your Visual Blueprint for Designing Effective Web Pages. John Wiley & Sons. ISBN 978-0764534713.
  66. ^ Tim Hall and J-P Stacey (2009). Python 3 for Absolute Beginners. Apress Berkeley, CA. ISBN 978-1-4302-1632-2.
  67. ^ Bacon, Jono (2007). Practical PHP and MySQL : building eight dynamic web applications. Prentice Hall. ISBN 9780132239974.
  68. ^ William Rothwell (2017). Linux for Developers: Jumpstart Your Linux Programming Skills. Addison-Wesley. ISBN 9780134657288.
  69. ^ Benjamin Mako Hill, Matthew Helmke, Corey Burger (2009). The Official Ubuntu Book. Prentice Hall. ISBN 0137021208.{{cite book}}: CS1 maint: multiple names: authors list (link)
  70. ^ Graham Williams (2007). Debian GNU/Linux Desktop Survival Guide. Togaware. ISBN 0-9757109-1-5.