Lo strumento di sviluppo web più popolare e potente.
Firebug ha avuto un successo fenomenale. Nel corso dei suoi 12 anni di vita, lo strumento open source ha sviluppato un seguito quasi di culto tra gli sviluppatori web. Quando è uscito nel 2005, Firebug è stato il primo strumento a permettere ai programmatori di ispezionare, modificare e fare il debug del codice direttamente nel browser Firefox. Permetteva anche di monitorare CSS, HTML e JavaScript dal vivo in qualsiasi pagina web, il che era un enorme passo avanti.
Firebug ha catturato l’attenzione della gente – e più di un milione di fan fedeli lo usano ancora oggi.
Pertanto è triste che Firebug stia raggiungendo la fine della sua vita nel browser Firefox, con il rilascio di Firefox Quantum (versione 57) il mese prossimo. La buona notizia è che tutte le capacità di Firebug sono ora presenti negli attuali Firefox Developer Tools.
La storia di Firefox e Firebug è sinonimo dell’ascesa del web. Abbiamo combattuto la buona battaglia e cambiato il modo in cui gli sviluppatori ispezionano l’HTML e debuggano JS nel browser. Firebug ha inaugurato l’era del Web 2.0. Oggi, il lavoro pionieristico della comunità di Firebug negli ultimi 12 anni continua a vivere in Firefox Developer Tools.
Guardando avanti, guardando indietro
Ma prima di andare avanti, prendiamoci qualche momento per ricordare tutte le grandi pietre miliari del progetto Firebug, e condividere alcune storie dei primi membri della comunità.
- Gennaio 2006, Firebug 0.2 Joe rilascia la console a scheda singola con il logging AJAX.
- Maggio 2006, Firebug 0.4 C’è una nuova scheda di primo livello per il debug di JavaScript.
- Dicembre 2006 Firebug è open-sourced.
- Gennaio 2007, Firebug 1.0 L’inizio del Web 2.0!
- Agosto 2008, Firebug 1.2 Primo rilascio FWG (Firebug Working Group).
- Ottobre 2009, HTTP Archive (HAR) Un archivio per le prestazioni web e oltre.
- Feb 2010, Firebug Lite per Google Chrome rilasciato (bookmarklet).
- Apr 2010, Dynamic and Graphical Web Page Breakpoints inventato (pdf).
- 2011Boom di estensioni Firebug.
- Giugno 2014, Firebug 2.0 Nuova interfaccia utente compatibile con Firefox Australis.
- Giugno 2016, Unificazione di Firebug & Firefox DevTools.
- Ottobre 2017, Addio Firebug!
Firebug 0.2, pannello Console
Vorrei condividere alcuni dei miei cari ricordi e momenti storici di Firebug, iniziando da come tutto è iniziato.
La primissima versione rilasciata nel gennaio 2006 su AMO è Firebug 0.2 con un breve commento di Joe Hewitt:
Questa è una release molto precoce – il codice ha solo pochi giorni. Attenzione al leopardo.
Più tardi nel dicembre 2006, Joe prende l’importante decisione di rendere Firebug open source:
Il primo annuncio riguarda la licenza di Firebug. Mentre stavo sviluppando Firebug 1.0, ho cominciato a chiedermi se dovevo provare a trasformare il progetto da un hobby in un business. Quando ho proposto questa idea sul mio blog, la risposta è stata molto positiva e ha riaffermato la mia convinzione che Firebug potrebbe fare bene come prodotto commerciale.
Tuttavia, alla fine, non sento che sia la cosa giusta da fare. Mi piace lavorare su Firebug perché so che sto rendendo felici molte persone e contribuendo a far progredire lo stato dell’arte. Questo è molto più significativo per me di qualsiasi altra cosa, e così, ho deciso che Firebug rimarrà libero e open source.
Dopo aver rilasciato la v1.0, Joe Hewitt è passato alla sua prossima avventura in Facebook e John J. Barton (IBM) si è presto interessato a resuscitare il progetto…
Oh Firebug! Tempi divertenti. Ho iniziato come utente e collaboratore (di oscure funzionalità di debugging-of-eval). Quando Joe Hewitt ha deciso di andare avanti, ho cercato in giro per IBM per valutare l’interesse a continuare il suo lavoro. A quel tempo, le applicazioni Web aziendali stavano appena iniziando a crescere senza molto più del debugging ‘window.alert()’. Una volta che Jan ‘Honza’ Odvarko si unì allo sforzo di Firebug, il team Rational IDE di IBM accettò di sostenere il mio lavoro su Firebug e io creai un plugin Eclipse per integrare Firebug con il prodotto. Honza ed io abbiamo completato il grande framework di Joe, scalando lo strumento per applicazioni più grandi e complesse. Abbiamo aggiunto test e migliorato la verifica del rilascio, poi abbiamo risolto i bug e risposto alle segnalazioni di bug per costruire la comunità. Presto abbiamo avuto altri collaboratori e una crescente collezione di estensioni Firebug. Mike Collins si è unito a me per aiutare sul lato prodotto e ho collaborato con Salman Mirghasemi all’EPFL su progetti di ricerca che sfruttano la tecnologia Firebug.
Sono orgoglioso dei nostri sforzi collettivi per sostenere Firebug durante la fase di crescita critica della tecnologia Web. Questo strumento ha aiutato innumerevoli sviluppatori a costruire siti usati da milioni di persone in tutto il mondo. Ora ogni browser ha un debugger ispirato al nostro lavoro. Anche se mi manca lo scrappy self-reliant teamwork dello sviluppo di Firebug, ce ne andiamo sapendo di aver avuto un grande impatto positivo.
Firebug 1.2, pannello Net
Il successo di un progetto dipende sempre dalla dedizione di sviluppatori, collaboratori e utenti coinvolti. Ma ci sono stati anche momenti in cui non era semplice tenere il passo con il browser Firefox in rapida evoluzione e abbiamo dovuto lavorare sodo.
Un frammento dal post di John J. Barton (marzo 2010):
Abbiamo fatto molta strada da quando Joe Hewitt ha scatenato Firebug 1.0. Arrivando all’inizio della rivoluzione del Web 2.0, Firebug ha aiutato a spostare le persone dal pensare che il Web 2.0 fosse una moda a realizzare che le applicazioni Web possono essere reali. Firebug è dovuto crescere in fretta mentre ancora non capivamo bene il codice e certamente non capivamo Firefox.
Firebug 1.1 non era realmente destinato ad essere, anche se era usato da alcune persone dedicate e disponibili. Così Firebug 1.2 è stato il nostro primo vero rilascio oltre al sorgente originale di Joe. Dietro le quinte abbiamo avuto un sacco di lavoro extra per chiudere un buco di sicurezza in Firebug. All’epoca non potevamo dirlo a nessuno: troppi utenti erano esposti.
Firebug è sempre stato un progetto molto popolare e molti sviluppatori hanno iniziato a lavorare sulle caratteristiche di Firebug, risolvendo bug e costruendo estensioni. Sì, molte nuove estensioni per estendere un’estensione. Stavamo tutti usando la stessa tecnologia. La felicità della comunità.
C’è un post che ho fatto sulle estensioni di Firebug, luglio 2008:
Ti sei mai interessato a quali estensioni sono disponibili per Firebug? Se sì, date un’occhiata a quello che ho trovato. Francamente, sono rimasto abbastanza sorpreso da quante estensioni di Firebug esistono già là fuori.
C’erano circa 10 estensioni di Firebug nel 2008 e più di 60 nel 2011. Non è facile far evolvere una base di codice che deve supportare così tante estensioni, credetemi!
Ho iniziato a lavorare su Firebug nel 2007 e mi sono unito a John J. Barton quando stava lavorando alla v1.2. In quel periodo è nato il Firebug Working Group e ci siamo tutti concentrati sulla costruzione di Firebug e della comunità che lo circonda. Erano tempi eccitanti. Eravamo un gruppo relativamente piccolo e ogni singola nuova caratteristica che introducevamo veniva usata da milioni di persone il giorno dopo. Stavamo ricevendo una grande quantità di feedback e imparando molto su come costruire strumenti visivi per gli sviluppatori web.
Il primo pezzo di Firebug su cui ho lavorato è stato il pannello Net. Il monitoraggio HTTP è sempre stata la mia tazza di tè e abbiamo presto notato un sacco di richieste degli utenti di esportare i dati raccolti dal pannello. Implementare una tale caratteristica non è stato difficile, il bel lavoro è stata l’introduzione di un nuovo formato per i dati esportati. Un paio di anni dopo, intorno all’ottobre 2009, abbiamo introdotto il nuovo formato HTTP Archive (HAR) con Steve Souders (guru del page-load-performance e autore di YSlow, spesso considerato la prima estensione di Firebug) e Simon Perkins. Questo formato è stato un grande successo e molti strumenti lo supportano ora.
Dal post di Steve Souders:
Ho suggerito che, piuttosto che creare un altro formato proprietario, Firebug collaborasse con HttpWatch per sviluppare un formato comune, e portarlo avanti come proposta per uno standard industriale. Ho presentato Simon Perkins (HttpWatch) e Jan “Honza” Odvarko (principale sviluppatore di Net Panel), poi ho fatto un passo indietro mentre lavoravano insieme per produrre l’annuncio di oggi.
Ho passato bei momenti lavorando con John e gli altri sul progetto. Poiché Firebug era ben scritto e ben architettato, è stato un piacere costruirci sopra. Joe ha fatto un ottimo lavoro gettando le basi per supportare decine e decine di estensioni costruite sopra Firebug. John J. è stato un manager eccellente e un collega con cui lavorare. Uno dei concetti che abbiamo inventato e implementato in Firebug era legato ad un nuovo tipo di breakpoint. Lo abbiamo chiamato Dynamic and Graphical Web Page Breakpoints. Sì, potreste conoscere queste caratteristiche come Break on XHR, Break on Next, Break on DOM mutation, etc.
Dal blog di Firebug:
Jan “Honza” Odvarko ed io abbiamo presentato “Dynamic and Graphical Web Page Breakpoints” sui breakpoint 1.5 a WWW 2010. Motiva i vari breakpoint, descrive l’esperienza dell’utente e l’implementazione, poi mette in relazione questo lavoro sui breakpoint con i documenti accademici.
Se volete la versione Cliff Notes, abbiamo anche una pagina demo.
Firebug 2.0 fu rilasciato nel giugno 2014. È stata una grande riscrittura dell’interfaccia utente per renderla compatibile con il nuovo tema Australis di Firefox. Abbiamo consegnato in tempo e ne siamo stati orgogliosi, un vero successo della comunità. Da quel rilascio, siamo stati in modalità manutenzione. L’ultima versione di Firebug su AMO è la 2.0.19.
Officialmente, abbiamo iniziato a unificare Firebug con gli strumenti integrati di Firefox intorno al 2016, ma in realtà il processo è iniziato prima. La strategia di Mozilla era quella di introdurre nuovi strumenti per sviluppatori integrati offerti come predefiniti in Firefox. Strumenti per sviluppatori moderni scritti da zero. La decisione è stata presa di non usare Firebug come piattaforma su cui costruire. Alcuni utenti e collaboratori di Firebug sono rimasti delusi da questa decisione, ma l’infrastruttura e i requisiti di Mozilla erano diversi a quel tempo. A volte è meglio ripartire da zero, il che è particolarmente vero per lo sviluppo del software.
Più importante, i DevTools di Firefox di oggi sono in gran forma e più veloci che mai, basati su tecnologie web come React/Redux/Webpack, cose fantastiche. L’architettura è pronta a supportare le estensioni. Il team è grande, con sviluppatori di strumenti esperti. Questa è la mia squadra 🙂
Il processo di unificazione di Firebug con i devtools ricostruiti è stato completato con il rilascio di Firebug 3 (aka Firebug.next) nel 2015. Questo prototipo è stato costruito come estensione dei devtools integrati in Firefox e alla fine è stato integrato direttamente nei devtools. Puoi imparare come migrare da Firebug. Puoi provare Firefox Developer Tools aggiornando il tuo browser di rilascio o scaricando la Developer Edition.
Il supporto per tutte le estensioni della vecchia scuola* si ferma in Firefox Quantum (aka 57). Sì, compreso Firebug ed è per questo che c’è stata una grande opportunità di scrivere questo post.
Il re è morto, lunga vita al re!
Jan ‘Honza’ Odvarko
- XUL & Add-on SDK based
Lista dei collaboratori: Joe Hewitt, John J. Barton (IBM Almaden), Jan Odvarko (Mozilla Corp.), Max Stepanov (Aptana Inc.), Rob Campbell (Mozilla Corp.), Hans Hillen (Paciello Group, Mozilla), Curtis Bartley (Mozilla Corp.), Mike Collins (IBM Almaden), Kevin Decker, Mike Ratcliffe (Mozilla Corp.), Hernan Rodriguez Colmeiro, Austin Andrews, Christoph Dorn, Steven Roussey (Illuminations for Developers), Sebastian Zartner, Harutyun Amirjanyan, Simon Lindholm, Stampolidis Anastasios, Joe Walker (Mozilla Corp.), Vladimir Zhuravlev, Farshid Beheshti, Leon Sorokin, Florent Fayolle, Hector Zhao, Bharath Thiruveedula, Nathan Mische, Belakhdar Abdeldjalil, Jakob Kaltenbrunner, …
Lista dei traduttori: Leszek(teo)Zyczkowski (pl-PL), markh (nl), peter3 (sv-SE), AlleyKat (da-DK), Hector Zhao, lovelywcm (zh-CN), Lukas Kucharczyk, Michal Kec (cs-CZ), Team erweiterungen.de, ReinekeFux, Benedikt Langens, Sebastian Zartner (de-DE), l0stintranslation, gonzalopirobutirro, Luigi Grilli (it-IT), alexxed (ro-RO), Nicolas Martin, Franck Marcia (fr-FR), gLes (hu-HU), Xavi Ivars – Softcatala (ca), gezmen (tr-TR), eternoendless (es-AR), Dark Preacher (ru), Tiago Oliveira, Diego de Carvalho Zimmermann, Alexandre Rapaki (pt-BR), Juan Botias, Alvaro G. Vicario (es-ES), Andriy Zhouck (uk-UA), Hisateru Tanaka, k2jp (ja-JP), Mohsen Shadroo (fa-IR), Eduard Babayan (hy-AM), Helder Magalhaes (pt-PT), Tomaz Macus (sl-SI), Stoyan Stefanov, Alexander Shopov (bg), Kristjan Bjarni Guomundsson (is-IS), NGUYEN Manh Hung (vi-VN), Bwah (hr-HR), Sonickydon (el), David Gonzales (es), DakSrbija (sr), bootleq (zh-TW), Asier Iturralde Sarasola, Julen Irazoki Oteiza (eu), …
A proposito di Jan Honza Odvarko
Honza sta lavorando su Firefox Developer Tools
- www.softwareishard.com/
- @janodvarko
Altri articoli di Jan Honza Odvarko…
Altri articoli di Jan Honza Odvarko…