Najpopularniejsze i najpotężniejsze narzędzie do tworzenia stron internetowych.
Firebug odniósł fenomenalny sukces. W ciągu 12 lat swojego istnienia, to narzędzie open source rozwinęło niemal kultową grupę wśród programistów stron internetowych. Kiedy pojawił się w 2005 roku, Firebug był pierwszym narzędziem, które pozwalało programistom na sprawdzanie, edytowanie i debugowanie kodu bezpośrednio w przeglądarce Firefox. Pozwalał także na monitorowanie CSS, HTML i JavaScript na żywo na każdej stronie internetowej, co było ogromnym krokiem naprzód.
Firebug przykuł uwagę ludzi – i ponad milion wiernych fanów używa go do dziś.
Smutne jest więc to, że Firebug kończy swój żywot w przeglądarce Firefox, wraz z wydaniem Firefoksa Quantum (wersja 57) w przyszłym miesiącu. Dobra wiadomość jest taka, że wszystkie możliwości Firebuga są teraz obecne w obecnych Narzędziach programistycznych Firefoksa.
Historia Firefoksa i Firebuga jest synonimem powstania sieci. Stoczyliśmy dobry bój i zmieniliśmy sposób, w jaki programiści sprawdzają HTML i debugują JS w przeglądarce. Firebug zapoczątkował erę Web 2.0. Dziś praca, którą społeczność Firebuga wykonała w ciągu ostatnich 12 lat, jest kontynuowana w Firefox Developer Tools.
Patrząc w przyszłość, patrząc w przeszłość
Ale zanim przejdziemy dalej, poświęćmy kilka chwil na przypomnienie sobie wszystkich wielkich kamieni milowych projektu Firebug i podzielmy się kilkoma historiami pierwszych członków społeczności.
- Jan 2006, Firebug 0.2 Joe wypuszcza konsolę z pojedynczą zakładką i logowaniem AJAX.
- Maj 2006, Firebug 0.4 Pojawia się nowa zakładka najwyższego poziomu do debugowania JavaScript.
- Grudzień 2006 Firebug zostaje udostępniony na zasadach open-sourcowych.
- Jan 2007, Firebug 1.0 Początek Web 2.0!
- Sierpień 2008, Firebug 1.2 Pierwsze wydanie FWG (Firebug Working Group).
- Październik 2009, Archiwum HTTP (HAR) Jedno archiwum dla wydajności sieci i nie tylko.
- Feb 2010, Firebug Lite for Google Chrome released (bookmarklet).
- Apr 2010, Dynamic and Graphical Web Page Breakpoints invented (pdf).
- 2011Boom of Firebug extensions.
- June 2014, Firebug 2.0 Fresh new UI compatible with Firefox Australis.
- June 2016, Unifying Firebug & Firefox DevTools.
- Oct 2017, Goodbye Firebug!
Firebug 0.2, panel Console
Chciałbym podzielić się kilkoma moimi własnymi miłymi wspomnieniami związanymi z Firebugiem i historycznymi momentami, zaczynając od tego, jak to wszystko się zaczęło.
Pierwszą wersją wydaną w styczniu 2006 roku na AMO jest Firebug 0.2 z krótkim komentarzem od Joe Hewitta:
To bardzo wczesne wydanie – kod ma tylko kilka dni. Strzeżcie się lamparta.
Później, w grudniu 2006 roku, Joe podejmuje ważną decyzję o otwarciu Firebuga:
Pierwsze ogłoszenie dotyczy licencji Firebuga. Kiedy rozwijałem Firebuga 1.0, zacząłem się zastanawiać, czy nie spróbować przekształcić projektu z hobby w biznes. Kiedy zaproponowałem ten pomysł na moim blogu, reakcja była bardzo pozytywna i utwierdziła mnie w przekonaniu, że Firebug mógłby dobrze funkcjonować jako produkt komercyjny.
Jednakże, ostatecznie, nie czuję, żeby to było właściwe rozwiązanie. Uwielbiam pracować nad Firebugiem, ponieważ wiem, że uszczęśliwiam wielu ludzi i pomagam rozwijać sztukę programowania. To jest dla mnie o wiele bardziej znaczące niż cokolwiek innego, dlatego zdecydowałem, że Firebug pozostanie wolny i otwarty.
Po wydaniu wersji v1.0, Joe Hewitt odszedł do swojej następnej przygody w Facebooku, a John J. Barton (IBM) wkrótce zainteresował się wskrzeszeniem projektu …
Oh Firebug! Zabawne czasy. Zaczynałem jako użytkownik i współtwórca (niejasnych funkcji debugowania wartości). Kiedy Joe Hewitt zdecydował się odejść, polowałem na IBM, aby sprawdzić zainteresowanie kontynuacją jego pracy. W tamtym czasie, aplikacje internetowe dla przedsiębiorstw dopiero zaczynały się rozwijać bez czegoś więcej niż debugowanie 'window.alert()'. Kiedy Jan 'Honza' Odvarko dołączył do Firebuga, zespół IBM Rational IDE zgodził się wesprzeć moją pracę nad Firebugiem, a ja stworzyłem wtyczkę do Eclipse, aby zintegrować Firebuga z tym produktem. Honza i ja uzupełniliśmy świetny framework Joe’go, skalując narzędzie do większych i bardziej złożonych aplikacji. Dodaliśmy testy i poprawiliśmy weryfikację wydania, a następnie naprawiliśmy błędy i odpowiedzieliśmy na zgłoszenia błędów, aby zbudować społeczność. Wkrótce mieliśmy innych współpracowników i rosnącą kolekcję rozszerzeń Firebuga. Mike Collins dołączył do mnie, aby pomóc po stronie produktu, a ja współpracowałem z Salmanem Mirghasemi z EPFL przy projektach badawczych wykorzystujących technologię Firebug.
Jestem dumny z naszych wspólnych wysiłków, aby utrzymać Firebug w krytycznej fazie rozwoju technologii internetowych. Narzędzie to pomogło niezliczonym programistom zbudować witryny używane przez miliony ludzi na całym świecie. Teraz każda przeglądarka ma debugger zainspirowany naszą pracą. Chociaż brakuje mi zgrzebnej, samodzielnej pracy zespołowej przy tworzeniu Firebuga, odchodzimy wiedząc, że wywarliśmy duży, pozytywny wpływ.
Firebug 1.2, panel Net
Sukces projektu zawsze zależy od poświęcenia deweloperów, współtwórców i zaangażowanych użytkowników. Ale były też momenty, kiedy nie było łatwo nadążyć za szybko rozwijającą się przeglądarką Firefox i musieliśmy ciężko pracować.
Wstęp z postu Johna J. Bartona (marzec 2010):
Przebyliśmy długą drogę od czasu, gdy Joe Hewitt uwolnił Firebuga 1.0. Pojawiając się na początku rewolucji Web 2.0, Firebug pomógł ludziom przestawić się z myślenia, że Web 2.0 to fanaberia na uświadomienie sobie, że aplikacje internetowe mogą być prawdziwe. Firebug musiał dorastać w pośpiechu, podczas gdy my wciąż nie rozumieliśmy dobrze kodu, a już na pewno nie rozumieliśmy Firefoksa.
Firebug 1.1 nie miał być naprawdę przeznaczony, choć był używany przez kilku oddanych i pomocnych ludzi. Tak więc Firebug 1.2 był naszym pierwszym prawdziwym wydaniem poza oryginalnym źródłem Joe’go. Za kulisami mieliśmy mnóstwo dodatkowej pracy, aby załatać dziurę w zabezpieczeniach Firebuga. W tamtym czasie nie mogliśmy nikomu powiedzieć: zbyt wielu użytkowników było narażonych.
Firebug był zawsze bardzo popularnym projektem i wielu programistów zaczęło pracować nad jego funkcjami, naprawiając błędy i budując rozszerzenia. Tak, wiele nowych rozszerzeń, aby rozszerzyć rozszerzenie. Wszyscy używaliśmy tej samej technologii. Szczęście społeczności.
Jest post, który napisałem o rozszerzeniach Firebuga, lipiec 2008:
Czy kiedykolwiek interesowałeś się jakie rozszerzenia są dostępne dla Firebuga? Jeśli tak, spójrz na to co znalazłem. Szczerze mówiąc, byłem dość zaskoczony, jak wiele rozszerzeń Firebuga już istnieje.
W 2008 roku było około 10 rozszerzeń Firebuga, a w 2011 już ponad 60. Nie jest łatwo rozwijać bazę kodu, która musi wspierać tak wiele rozszerzeń, zaufaj mi!
Zacząłem pracować nad Firebugiem w 2007 roku i dołączyłem do Johna J. Bartona, kiedy pracował nad wersją v1.2. W tym czasie powstała Grupa Robocza Firebug i wszyscy skupiliśmy się na budowaniu Firebuga, jak również społeczności wokół niego. To były ekscytujące czasy. Byliśmy stosunkowo małą grupą, a każda nowa funkcja, którą wprowadzaliśmy była używana przez miliony ludzi następnego dnia. Dostawaliśmy bardzo dużo informacji zwrotnych i wiele się nauczyliśmy o tym, jak budować wizualne narzędzia dla programistów stron internetowych.
Pierwszym elementem Firebuga, nad którym pracowałem, był panel Net. Monitorowanie HTTP zawsze było moją pasją i wkrótce zauważyliśmy wiele próśb użytkowników o eksport danych zebranych przez panel. Zaimplementowanie takiej funkcjonalności nie było trudne, miłym akcentem było wprowadzenie nowego formatu eksportowanych danych. Kilka lat później, około października 2009 roku, wraz ze Stevem Soudersem (guru wydajności stron i autor YSlow, często uważanego za pierwsze rozszerzenie Firebuga) i Simonem Perkinsem, wprowadziliśmy nowy format HTTP Archive (HAR). Format ten okazał się wielkim sukcesem i obecnie wspiera go wiele narzędzi.
Z postu Steve’a Soudersa:
Zaproponowałem, aby zamiast tworzyć kolejny prawnie zastrzeżony format, Firebug połączył się z HttpWatch w celu opracowania wspólnego formatu i przedstawił go jako propozycję standardu przemysłowego. Przedstawiłem Simona Perkinsa (HttpWatch) i Jana „Honzę” Odvarko (głównego programistę Net Panelu), po czym odsunąłem się, gdy pracowali razem nad przygotowaniem dzisiejszego ogłoszenia.
Miałem dobry czas pracując z Johnem i innymi osobami nad tym projektem. Ponieważ Firebug był dobrze napisany i dobrze zaprojektowany, budowanie na jego bazie było przyjemnością. Joe wykonał świetną robotę kładąc fundamenty pod dziesiątki i dziesiątki rozszerzeń zbudowanych na szczycie Firebuga. John J. był doskonałym menedżerem i kolegą, z którym można było pracować. Jedna z koncepcji, którą wymyśliliśmy i zaimplementowaliśmy w Firebugu, dotyczyła nowego rodzaju punktów przerwania. Nazwaliśmy go Dynamicznymi i Graficznymi Punktami Przerwania Strony Internetowej. Tak, możesz znać te funkcje jako Break on XHR, Break on Next, Break on DOM mutation, etc.
Z bloga Firebuga:
Jan „Honza” Odvarko i ja zgłosiliśmy „Dynamiczne i graficzne punkty przerwania strony internetowej” na 1.5 breakpoints do WWW 2010. Motywuje on różne punkty przerwania, opisuje doświadczenie użytkownika i implementację, a następnie odnosi tę pracę nad punktami przerwania do prac akademickich.
Jeśli chcesz wersję Cliff Notes, mamy również stronę demonstracyjną.
Firebug 2.0 został wydany w czerwcu 2014 roku. Było to gruntowne przepisanie UI w celu uczynienia go kompatybilnym z nowym motywem Firefox Australis. Dostarczyliśmy ją na czas i byliśmy z niej dumni, prawdziwe osiągnięcie społeczności. Od tamtego wydania jesteśmy w trybie konserwacji. Najnowsza wersja Firebuga na AMO to 2.0.19.
Oficjalnie, zaczęliśmy unifikować Firebuga z wbudowanymi narzędziami Firefoksa około 2016 roku, ale tak naprawdę proces ten zaczął się wcześniej. Strategią Mozilli było wprowadzenie nowych, wbudowanych narzędzi deweloperskich oferowanych domyślnie w Firefoksie. Nowoczesnych narzędzi deweloperskich pisanych od podstaw. Podjęto decyzję, aby nie używać Firebuga jako platformy, na której można budować. Niektórzy użytkownicy i współpracownicy Firebuga byli rozczarowani tą decyzją, ale infrastruktura i wymagania Mozilli były wtedy inne. Czasami po prostu lepiej zacząć od zera, co jest szczególnie prawdziwe w przypadku rozwoju oprogramowania.
Co najważniejsze, dzisiejsze narzędzia Firefox DevTools są w świetnej formie i działają szybciej niż kiedykolwiek, bazując na technologiach webowych, takich jak React/Redux/Webpack, fajne rzeczy. Architektura jest gotowa do obsługi rozszerzeń. Zespół jest świetny, z doświadczonymi programistami narzędzi. To jest mój zespół 🙂
Proces unifikacji Firebuga z przebudowanymi devtoolsami został zakończony wraz z wydaniem Firebuga 3 (aka Firebug.next) w 2015 roku. Prototyp ten został zbudowany jako rozszerzenie do wbudowanych devtools Firefoksa i ostatecznie zintegrowany bezpośrednio z devtools. Możesz dowiedzieć się, jak migrować z Firebug. Możesz wypróbować Firefox Developer Tools, aktualizując przeglądarkę do wydania lub pobierając Developer Edition.
Wsparcie dla każdego oldschoolowego* rozszerzenia zatrzymuje się w Firefox Quantum (aka 57). Tak, włączając w to Firebuga i właśnie dlatego pojawiła się świetna okazja do napisania tego posta.
Król umarł, niech żyje król!
Jan 'Honza' Odvarko
- XUL & Add-on SDK based
Lista współpracowników: 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 tłumaczy: Leszek(teo)Życzkowski (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), …
O Janie Honzie Odvarko
Honza pracuje nad Firefox Developer Tools
- www.softwareishard.com/
- @janodvarko
Więcej artykułów autorstwa Jana Honzy Odvarko…
Więcej artykułów autorstwa Jana Honzy Odvarko…