Bluefish è sviluppato in C/GTK+, si integra quindi in GNOME, ma può essere utilizzato anche indipendentemente da GNOME.
Il programma va ad occupare quella nicchia di mercato tra i semplici editor di testo e i veri e propri IDE: è infatti relativamente leggero e ha una curva di apprendimento bassa, pur fornendo molte caratteristiche rivolte allo sviluppo di siti web.
È un editor di tipo testuale ed offre un'interfaccia grafica pulita e amichevole.
Bluefish mette a disposizione l'evidenziazione della sintassi dei principali linguaggi di web publishing e di scripting e le classiche funzionalità degli editor HTML e dispone di procedure guidate per la realizzazione di tabelle e frame.
Storia
Lo sviluppo di Bluefish è stato avviato da Chris Mazuc e Olivier Sessink nel 1997 con lo scopo di agevolare il lavoro dei web developer su piattaforma Linux.
Bluefish è stato sviluppato finora da un gruppo di sviluppatori web sotto la guida di Olivier Sessink. Il progetto ha avuto diversi nomi.
Il primo nome (Thtml) fu abbandonato perché ritenuto troppo criptico.
Il nome successivo (Prosite) è stato abbandonato per evitare scontri con le società di sviluppo web che usavano già questo nome in contesti commerciali in diversi paesi.
Il nome Bluefish è stato scelto dopo che un logo grazioso (il disegno di un pesce blu di un bambino) è stato proposto sulla mailinglist.
Caratteristiche
Bluefish ha molte caratteristiche, la seguente lista presenta le più importanti o particolari della versione 2.0. Non tutte sono disponibili nella versione 1.0 e su Windows.
Leggerezza, Bluefish tenta di essere leggero e pulito, e quanto più possibile un editor con interfaccia grafica (GUI).
Velocità, Bluefish si avvia molto velocemente (anche sui netbook) e carica centinaia di file in meno di un secondo;
L'Interfaccia è del tipo "What You See Is What You Need";
Interfaccia multi-documento, che consente di tenere aperti contemporaneamente più di 500 documenti (testato con più di 10000 file simultaneamente);
Funzioni di ricerca e sostituzione molto prestazionali, in accordo con le direttive POSIX e Perl per la sostituzione delle "espressioni regolari" e delle "sub-pattern";
Apertura file ricorsiva sfruttando "modelli" del nome file o del contenuto del file;
Sidebar modificabile e adattabile per velocizzare il processo di scrittura del codice;
Integrazione di programmi esterni, come make, lint, weblint, xmllint, tidy, javac o un programma/script scritto dall'utente per gestire funzioni avanzate di modifica del testo o per il controllo degli errori;
Guida alle funzioni e ai comandi inline (muovendo il mouse sopra il nome della funzione o al tag), disponibile per diversi linguaggi di programmazione;