Zmierzając w stronę Emacs OS...

Emacs jest świetnym systemem operacyjnym; jedyne, czego mu brakuje, to dobrego edytora.
Emacs jest prawdziwie zintegrowanym kombajnem do pracy. Odkąd zacząłem go używać ponad dwa lata temu, robię w nim coraz więcej rzeczy - programuję, piszę teksty, czasem nawet posty na bloga, używam Twittera, IRC, czy organizuję swoją pracę i życie. Na linuksowych systemach nawet słucham z niego muzyki. Są ludzie, którzy potrafią edytować na nim video. Co sprawia, że ludzie wolą korzystać z Emacsa, zamiast z dedykowanych aplikacji? Powodów może być wiele. Mnie osobiście wydaje się, że kluczowym jest jego architektura. Emacs to żywy system lispowy. Tuż ponad jądrem pisanym w C chodzi instancja Emacs Lispu. W języku tym napisana jest większość funkcji i rozszerzeń edytora. Potężny język, pozwalający na dokompilowywanie nowego kodu i zmianę już istniejących funkcji w czasie działania aplikacji sprzyja pisaniu dodatków, rozszerzeń, poprawek. Co ciekawe, te wszystkie dodatkowe funkcje nie wydają się przyklejone "na siłę" - wręcz przeciwnie, tworzą spójną całość, która pozwala na pracę bez częstej zmiany kontekstu, bez 'tarcia' na styku różnych narzędzi.
Mój Emacs
Różnych funkcji w Emacsie jest taki wiele, że nasuwa się pytanie - jak pracowałoby się, gdyby Emacs tworzył pełen system operacyjny? Propozycja ta może wydawać się nierealna - są jednak granice naginania edytora tekstu. Jednak pewną namiastkę takiego systemu możemy uzyskać, jeśli włączymy do gry dwa dodatkowe narzędzia, inspirowane Emacsem - Conkeror i StumpWM. Conkeror, niegdyś plugin do Firefoksa, to wzorowana na Emacsie przeglądarka internetowa oparta o silnik Mozilli. Conkerora obsługujemy praktycznie tylko z klawiatury (wbrew pozorom, nie tylko da się tak pracować, ale jest to nawet szybsze), używając do tego emacsowych skrótów. Sama przeglądarka dziedziczy mnóstwo koncepcji z Emacsa - konfigurowalność, minibuffer, mode line, dostępny pełnoprawny język programowania (nie jest to Emacs Lisp, lecz JavaScript) czy... major modes dla stron. Tak jak w Emacsie mamy inny major-mode dla C++a, inny dla Lispa, inny dla plików .org, tak w Conkerorze możemy definiować 'tryby' dla konkretnych stron. Przeglądarka zawiera na przykład dołączony domyślnie xkcd-mode ;). Conkeror dostępny jest zarówno dla Windowsa jak i dla Linuksa, i skutecznie zastąpił mi Chrome :). Conkeror dobrze udaje "graficznego Emacsa", jednakże do pewnych rzeczy chcielibyśmy używać samego Edytora. Przeglądarka pozwala nam edytować dowolnego textboxa w Emacsie (chociaż nie jest to konieczne - większość emacsowych skrótów działa także w textboxach), a także odsyłać do niego inne rzeczy - osoby używające Org Mode do organizowania swojego życia mogą być szczególnie zainteresowane spięciem Conkerora z org-capture. StumpWM to tzw. tiling window manager - zarządca okien sterowany głównie klawiaturą. Jest to następca ratpoison'a i bazuje w pierwszej kolejności na GNU Screen'ie, a w dalszej na Emacsie. StumpWM jest napisany w Common Lispie - można by rzec, że ma nawet większy potencjał od samego Emacsa. Oczywiście, jak na lispowy system przystało, mamy pełen, interaktywny dostęp do środowiska i języka, więc możemy rekonfigurować StumpWM'a w locie i uruchamiać dowolny kod Common Lispowy. StumpWM wspiera też integrację z Emacsem i daje możliwość podpięcia do siebie Slime'a. Jeśli, Czytelniku, chciałbyś spróbować życia w EmacsOS'ie i masz pod ręką Linuxa, to zachęcam Cię do zainstalowania Conkerora i StumpWMa. Każde z tych narzędzi z osobna jest dobre, sprawdzone, i zwielokrotni Twoją produktywność. A połączone razem stworzą niesamowitą całość. A dla fanów Vima - VimOS możecie zrobić z Vima, Vimperatora i xmonada ;). BTW. Może ktoś jest chętny, by zrobić dystrybucję EmacsOS? ;). EDIT Antoszka dał link do próby postawienia Emacsa bezpośrednio na kernelu Linuxa. Nieco inne podejście do problemu EmacsOS ;).