Linux E X P R E S

Facebook

Rozhovor: Bram Moolenaar

LinuxEXPRES zpovídal pana Brama Moolenaara, autora editoru Vim.


Pane Moolenaar, můžete se čtenářům představit?

Žiji na východě Nizozemska a momentálně pracuji na plný úvazek na open-source software. Jsem sám, mít rodinu by bylo asi obtížné, jelikož za mnoho provedené práce nejsem placen. Pracuji doma, čímž se alespoň vyhýbám dopravním zácpám, s okolním světem komunikuji pomocí e-mailu. Abych kompenzoval to, že jsem pořád doma, velmi často cestuji, především o prázdninách. Miluji cizí země, cizí zvyky a kultury.

Vytvořil jste klon editoru vi nazvaný Vim. Proč jste si zvolil právě vi?

Byloa to nedobrovolná volba, v jednom ročníku na univerzitě jsme museli tento nechutně složitý editor používat - přičemž jsme měli jen několik papírů dokumentace. Jenže velmi rychle jsem si zvykl a zjistil, že tento podivuhodný editor umožňuje téměř bleskurychlou editaci souborů. Doma jsem měl počítač Amiga, chtěl jsem mít podobný editor i tam, a jedinou možností bylo si ho napsat. To byl ten pravý důvod, proč jsem začal pracovat na editoru Vim.

Je Vim klonem jiného editoru, nebo jste začal jak se říká "vařit z vody"?

Všechno to začalo editorem Stevie, což byl klon pro Atari ST, jež byl přeportován na Amigu. Zpočátku jsem měl mnoho problémů a vlastností měl editor poskrovnu, ale jelikož byl k dispozici zdrojový kód, pustil jsem se do úprav sám. Tohle je věc, kterou můžete dělat jen s open-source software. Jednoho dne pak bylo úprav ve zdrojovém kódu tolik, že originální práce původního programátora téměř zmizely. Právě tehdy jsem pojmenoval svůj editor Vim.

Rozhodl jste se publikovat Vim pod open-source licencí, nerozhodl jste se tedy pro licenci GNU GPL, proč?

Rozdíl mezi Vimem a jinými projekty, kde pracuje paralelně mnoho lidí, je přístup k vývoji. Na Vimu dělám jen já sám a jedná se pouze o moje dílo, ačkoliv mi mnoho lidí pomáhá tím, že posílají opravy. Sám rozhoduji, co bude v příští verzi a co ne. Moje licence dovoluje editor libovolně rozšiřovat - pokud nebude jakkoli změněn. Veškeré změny dělám pouze já, osobně. Dalším rozdílem mezi GNU GPL je fakt, že kdokoliv může použít Vim v komerčním produktu - pokud mu to dovolím. Licence GNU GPL by mi to nedovolila. Teoreticky lze sice software vydávat pod více licencemi (jako to dělají autoři databázového serveru MySQL), ale musíte pak složitě shromažďovat povolení od všech lidí, kteří kdy do kódu zasáhli, což může být značně komplikované.

Od verze 6.1 byla licence upravena tak, aby byla GNU GPL kompatibilní, což bylo technicky vynuceno, protože tu byl požadavek sestavovat kód s knihovnou licencovanou pod GNU GPL. Tady je jasně vidět, že licence GNU GPL zaručuje svobodu na úkor "svobody" jiné.

ilustrace 1

Obáváte se softwarových patentů? Udělal jste si zmapování zdrojového kódu, jestli byste neměl s Vimem problémy?

Ano, vážně se jich obávám, naštěstí však nebyly nikde v Evropě ještě uznány. Neměl bych mít žádné problémy v případě, že bych použil nějaký patentovaný koncept v kódu. Existuje však nebezpečí, že by nějaká firma chtěla zastavit nebo poškodit vývoj Vimu kvůli patentu, ale nemyslím, že by to bylo až tak horké. Především je nutno položit si otázku, co by z toho firma měla, je jasné, že by dané firmě nikdo poplatky neplatil. Navíc bych kýžený kód mohl odstranit.

Takový audit kódu mohou dělat lidi, kteří se na to specializují, jsou za to dobře zaplaceni. Je to titěrná práce a nevím, kdo by byl schopen to provést u Vimu. Já se obávám, že tyto audity jsou naprosto zbytečné, za půl roku může být na světě nový patent, který by původní audit znehodnotil. Patentový systém je velmi špatně implementován, zejména v USA. Jediní lidé profitující z tohoto kolotoče jsou právníci a zaměstnanci patentových úřadů. Samo sebou jsou to ti, kteří softwarové patenty nejvíce podporují.

Dejme tomu, že by byly softwarové patenty v Evropě uznány a nějaká firma by si úspěšně zaregistrovala patent na "pohybování kurzorem pomocí kláves hjkl za účelem urychlení posunu v textu". Mohla by to být firma s nějakým klonem editoru vi ve svém portfoliu, která by chtěla Vim poškodit. Co byste dělal? Odstranil byste tuto vlastnost z Vimu?

Není možné si patentovat metodu, která je již obecně známá. Je jasně prokazatelné, že tato vlastnost byla ve Vimu dříve. Ze zkušenosti ale víme, že patentové úřady nejsou schopnyi toto vždy na sto procent ověřit, a patent udělí. Potom bych se musel samozřejmě bránit, a to by bylo vskutku těžké. Právníci stojí peníze.

S pomocí peněžních darů, ke kterým vyzýváte na stránce projektu, pomáháte dětem z Ugandy. Vidíte nějaké výsledky za své záslužné činy za tay léta své charitativní podpory?

Ano, pravidelně navštěvuji domov dětí v Ugandě, a vždy, když tam přijedu, vidím nějaký pokrok. Toto centrum pomáhá dětem nejen přežít, ale také dodává určitou úroveň vzdělání. Naštěstí se politická situace a ekonomika země obrací k lepšímu, což umožňuje zaměřovat všechnu finanční pomoc na jiné neméně významné aktivity, především vzdělávání. Peníze, které tam posílám, opravdu pomáhají a mají dlouhodobý účinek. Je krásné vidět odejít z ústavu mladého rekruta, aby se pak po čase vrátil a pomáhal svým mladším kolegům.

Čím si vysvětlujete, že tak starý návrh ovládání editorů ex a vi je stále aktuální?

Základní idea byla vždy silnou zbraní editoru, zůstala naprosto nezměněna od historických verzí editoru vi. Touto myšlenkou je ovládání a pohyb kurzoru - děje se tak pomocí normálních kláves, a ne šipek. To vám umožní neposouvat ruku, nehledat pohmatem kurzorové klávesy na klávesnici. Vim navíc přidává mnoho vlastností navíc, takže zkušený uživatel nejen rychle píše, ale může využívat i tyto rozšířené možnosti.

Ano to je pravda, například na notebooku je mnoho kláves umístěno takříkajíc "z ruky". Napadla mě téměř řečnická otázka. Používáte Vim, když pracujete na Vimu?

Jistě, používám Vim na všechno, většinou tu nejaktuálnější verzi, takže jsem mezi prvními kdo se dozví, že jsem zanesl do nové verze chybu (smích).

Lidé Váš editor buď nenávidí, nebo milují, čím si to vysvětlujete?

Zabere nějaký čas, než jste schopni v editoru vůbec pracovat. Jestliže to někdo jen vyzkouší na deset minut, pak zřejmě prohlásí, že je to složité a vzdá to. Toto je nutno překonat, protože pokud se nenaučíte základům, nikdy nemůžete tento editor používat. Jakmile se jej ale naučíte, můžete pracovat efektivně a většinou si editor zamilujete. Pak se obvykle projevuje opačný problém v jiných editorech, například já, pokud musím občas psát něco v programu Microsoft Word, musím často pracně z textu mazat nechtěně vložené znaky :wjjj.

Nahrál jste mi na otázku, jaké operační systémy využíváte?

Hlavním strojem je u mě konzervativní FreeBSD‍ 4.9, zvolil jsem tento systém kvůli stabilitě. Používám KDE, ačkoliv spouštím většinou jen terminály. Mám k dispozici také počítač s Windows, je ale určen jen na testování Vimu na této platformě. Jednou za čas zapnu také moji Amigu 2000, kde to všechno začalo.

Je to paradox, jeden z nejoblíbenějších editorů pro Linux a tento systém při vývoji ani nepoužíváte. Zdá se Vám, že se Linux vydal tím správným směrem?

Nemyslím, že by byla pro Linux jen jedna cesta. Může se vydat několika paralelními směry a také se tak děje. Linux vyvíjejí hlavně technicky zdatní odborníci, ti rozhodují jak se Linux vydá technicky. Na druhou stranu obchodníci budou tlačit Linux tím směrem, aby zisky byly co nejvyšší. A tady vidím malé nebezpečí, ale myslím, že situace je dobrá a Linux bude dál kvalitním systémem.

Jaký je Váš názor na to, že Vim je již hotov a není třeba přidávat nové a nové vlastnosti?

Často si pohrávám s touto myšlenkou, prostě zastavit vývoj a soustředit se jen na odlaďování chyb. Jenže když jsem dal možnost všem sponzorům hlasovat o to, kterou vlastnost by chtěli v příští verzi, položku ukončit vývoj nezvolil nikdo.

Nepřipadá Vám editor trošku moc barevný?

V editoru Vim můžete nastavit mnoho barev, a já osobně mám rád alespoň zvýrazněnou syntaxi, pomáhá to se orientovat ve zdrojovém kódu. Například komentář v jazyku C je dobré mít barevně odlišen, ne však už operátory nebo jména funkcí, avšak mnoha lidem to tak sedí. Řekl bych většině, proto se někomu může zdát Vim ve standardní instalaci barevný. Můžete si ho však přenastavit dle chuti, včetně barev.

Povězte nám něco o nových vlastnostech v poslední stabilní verzi.

Ve verzi 6.3 není mnoho nových vlastností, koncentroval jsem se na odstraňování chyb. Přidal jsem několik příkazů, které usnadní práci lidem, kteří píší skripty (například keepjumps). Několik vylepšení jsem provedl také v lokalizaci nápovědy a podobně.

Jaký je Váš plán pro příští verze?

Vim 7 bude mít mnoho novinek, již nyní jsem začal dávat dohromady záplaty, které mi mnoho lidí poslalo. Funguje mi například plná podpora pro KDE (Vim jako editační komponenta) nebo tisk znaků UNICODE na postscriptových tiskárnách.

Plánuji do skriptovacího jazyka editoru přidat seznamy a slovníky (slovník - pojem známý především programátorům v jazyce Python - se také často nazývá asociativní pole nebo jenom hash - pozn. redakce), abych ulehčil vytváření skriptů. Uživatelé totiž vytvářejí čím dál složitější funkce a skripty. Nevím proč, ale podpora pro jazyky Perl a Python se moc neujala, mnoho uživatelů je nepoužívá, a proto je rozšíření skriptovacího jazyka nutnost.

Tato verze by měla být přelomová, nechávám tedy uživatele hlasovat o to, kterou funkci by chtěli do této verze zařadit. Zatím vede doplňování kódu (intelligent completion, intellisense), což bude menší oříšek. Musím to vymyslet tak, aby vše fungovalo na různých platformách, a to dokonce i v textovém režimu.

Také bych rád vyčistil zdrojový kód a udělal revizi. Časté záplaty a odstraňování chyb zapříčinily, že některé části kódu jsou dosti nepřehledné, některé funkce neúnosně dlouhé. Nejde jen o to, aby kód dobře vypadal, když je uklizený, dělá se pak méně chyb. Musím být však velmi opatrný, takto rozsáhlá přestavba by mohla do zdrojového kódu zanést spoustu chyb jiných, a proto musím přidat více automatických testů, které to odhalí.

No máte co dělat, děkuji za rozhovor a přeji mnoho štěstí nejen s Vimem.

Diskuze (0) Nahoru