Živý rozhovor: s Janem Fialou o PSPadu

Na vaše otázky k programu PSPad odpovídal Jan Fiala, autor tohoto populárního freeware editoru. Přečtěte si, jak složitý je vývoj, co všechno obnáší a jaká je časová náročnost takové práce. A také se dozvíte nejen informace o samotném editoru PSPad a jeho budoucnosti, ale i o autorovi a jeho osobních plánech.
Kapitoly článku

Na dotazy čtenářů Živě.cz odpovídal Jan Fiala, autor populárního freewarového textového editoru PSPad. Jan Fiala pracuje jako vedoucí vývoje ve firmě Prog-Soft Plzeň, která se zabývá vývojem původního IS specializovaného pro výrobce a distributory nápojů. PSPad je koníček, kterému se Jan Fiala věnuje ve volném čase od konce roku 2001.

V tomto článku najdete otázky a odpovědi týkající se tématu rozhovoru. Některé dotazy a odpovědi jsme kvůli přehlednosti zkrátili, jiné rozdělili do více částí. Některé otázky se opakovaly a v takových případech byly zpravidla zodpovězeny jen jednou. Originální verzi rozhovoru najdete na této stránce.

Odpovědi na otázky čtenářů Živě.cz

Kolik volného času strávíte prací na PSPadu? Poslední dobou se aktualizační *.cab soubory jen hrnuly. (MartinezZ)

Jan Fiala: PSPadu v poslední době nemohu věnovat tolik času, kolik bych chtěl. Proto poslední aktualizace obsahovaly většinou opravy existujících chyb nebo jednoduché rozšíření funkčnosti.

Čas to ale není jen programování. Spoustu času zabere podpora uživatelů. Někdy se sejde přes 50 e-mailů denně s požadavky, hlášením chyb, dotazy. Na některé dotazy lze odpovědět jednou větou, pro odpověď na jiné je třeba hledat příčinu problému a někdy se tak dostanete na desítky minut. K tomu si připočtěte čas strávený aktualizací webových stránek a dostáváte reálnou představu o čase, který projekt vezme mimo vlastní programování. Pak moc času na vlastní programování nezbývá. Naštěstí fórum a komunita uživatelů už funguje velmi dobře a uživatelé si pomáhají navzájem.

Přesná doba, strávená prací na PSPadu se určit nedá. Záleží to hlavně na vytížení v zaměstnání (to má prioritu). Můžeme mluvit o nějakých třech hodinách denně.

Přemýšlíte nad zpoplatněním PSPadu? (Lubomír Jiřišta)

Jan Fiala: Musím se přiznat, že jsem o této myšlence v minulosti uvažoval. Ale pak nějak nebyl důvod. Takže toho se uživatelé bát nemusí.

Bude vydán zdrojový kód PSPadu? (Michal Kuncl)

Jan Fiala: PSPad je freeware, ale ne OpenSource. Takže zatím neuvažuji o vydání zdrojového kódu.

Jaké byly vaše začátky při programování PSPadu? (Vladislav Stehno)

Jan Fiala: PSPad vznikal jako ostatní podobné programy - z důvodu, že jsem nenašel editor, který by mi vyhovoval. Z počátku to byl editor s jedním oknem, vlastně náhrada Notepadu se zvýrazněním syntaxe. Druhým důvodem byla potřeba zkusit si i něco jiného, než jen programování databázových aplikací.

Pak se stalo, že se dostal na CD časopisu Chip. A lidé začali psát připomínky, návrhy na novou funkčnost a kolotoč se rozjel.

Jsou příjmy z darů nějak podstatné pro vývoj tohoto editoru? Může to mít pro dárce i výhodu v budoucnu, pokud přejde editor na placenou verzi? (Robert)

Jan Fiala: Pokud by byly příjmy podstatné, zřejmě by PSPad nebyl freeware. Samozřejmě autora potěší, když někdo ocení jeho práci a dobrovolně si produkt „koupí“, i když nemusí.

Pokud by byl PSPad jednou zpoplatněn, určitě bych zvýhodnil lidi, kteří mi poslali příspěvek nebo jinak s projektem pomohli.

Je naděje, že bude možno psát regulární výrazy přes řádky? A kdy asi? Přiznám se, v posledních dvou verzích jsem nekontroloval, ale je to pro mne v této chvíli asi nejdůležitější věc. (Petr Klement)

Jan Fiala: Hledání s regulárními výrazy přes více řádků je opravdu jedna ze slabých stránek PSPadu. Řešení tohoto problému znamená kompletní náhradu vyhledávacího engine, který poskytuje komponenta editoru (Synedit).

Jednou z možností, jak to řešit v současné době, je použít skriptovacích možností PSPadu. Komunita uživatelů nabízí řešení v podobě rozšíření funkčnosti pomocí skriptu Multi-Line Search.

Neplánujete přechod PSPadu pod nějakou svobodnou licenci (např. GPL)? Vývoj by mohl dostat další náboj, na vývoji by se mohli podílet další vývojáři. PSPad má určitě na to, aby se stal štikou v oblasti open source. Navíc po uvolnění zdrojových kódů by mohl někdo PSPad portovat i na jiné systémy, k čemuž (jak píšete ve FAQ) nemáte čas a energii. (Jiří Eischmann)

Jan Fiala: GPL není z mého pohledu „svobodná“ licence (prosím, žádný flamewar). Za svobodnou považuji např. MPL.

Řídit OpenSource projet není jen tak. Zkuste si představit, že kromě vlastního programování a podpory zákazníků budete muset číst kód, který vám bude posílat spousta dalších lidí. Na tohle opravdu v této chvíli čas nemám.

Teď k portování PSPadu na jiné systémy. PSPad je psaný v Borland Delphi. Už to je jedna z překážek znesnadňujících portaci na jiné systémy. Samozřejmě mě zájem o multiplatformnost těší. Píší mi uživatelé, kteří přešli z Windows na Linux nebo MAC, jak jim PSPad chybí. Ale aby byla aplikace skutečně multiplatformní, musí být s tímto záměrem psána již od začátku a to není případ PSPadu.

Snad od prvních vydání používám tuto pro mě již nepostradatelnou aplikaci. PSPad je v současnosti tak komplexní, že mě zajímá, zda provádíte všechny programové změny sám nebo spolupracuje s dalšími programátory. (randomofamer)

Jan Fiala: Programování se věnuji sám. Samozřejmě PSPad není napsaný celý na zelené louce, používá různé komponenty (programové celky) třetích stran. Je také pár lidí, kterým bych chtěl tímto poděkovat, kteří mi pomohli s řešením dílčích problémů.

Odkazy najdete v souboru nápovědy v kapitole „Informace a kontakty“.

Proč používáte toho Hrocha na obrázku? (Martin)

Jan Fiala: Kdysi dávno byla vyhlášena soutěž o logo PSPadu. A tohle bylo logo se mi líbilo. Někdo v tom vidí hrocha, někdo psa...

Používám PSPad hlavně pro editaci Java Scriptových souborů a jsem s ním velmi spokojen. Pár maličkostí však v programu postrádám (možná tam jsou a já je pouze nenašel). Za prvé skok na předchozí pozici kurzoru (s historií); za druhé code folding (možnost „scucnoutů“ část kódu, např. jednu metodu, do jedné řádky); a za třetí skok na definici metody, funkce, atd. (to patrně není možné vzhledem k univerzálnosti programu). Budou tyto věci implementovány (popř. jsou-li tam, jak je vyvolat)? (Jan Meissner)

Jan Fiala: Skok na předchozí pozici kurzoru je realizovatelná. Už je evidovaná v požadavcích.

S code folding je to horší - musí to podporovat komponenta editoru. Nějaké začátky provedeny byly, ale do funkčnosti to má ještě hodně daleko.

Skok na definici metody nebo funkce je opravdu těžko realizovatelný obecně. Pro rychlou orientaci v kódu lze využít funkci „Průzkumník kódu“. Další možností je řešit konkrétní programovací jazyk pomocí externího skriptování. A jako poslední bych zmínil hledání výskytů aktuálního slova nebo označeného textu pomocí Shift+Ctrl+Up/Down.

Plánujete pro PSPadu inteligentnější nabízení elementů/atributů, které by bralo ohled na nastavený doctype a hlavně aktuální pozici ve struktuře dokumentu, jako např. Oxygen XML Editor? (Marek Cais)

Jan Fiala: Velmi často dostávám požadavky typu, zda PSPad bude umožňovat podobnou funkčnost, jako nějaké specializované IDE. Např. Oxygen XML Editor je program přímo pro editaci XML. Takže je na tuto oblast i specializován.

PSPad je obecný editor. To znamená, že nemůže obsahovat všechny funkce specializovaných programů. Zato však nabízí nadstandardní obecné funkce, které zjednodušují a urychlují práci. V tom je jeho hlavní síla a přínos.

Jaký produkt je podle vás největší konkurence PSPadu? (radim)

Jan Fiala: Na tento dotaz nedokážu odpovědět. Přiznám se, že na zkoumání ostatních podobných editorů nemám čas. Každý podobný program má svou skupinu uživatelů, kteří si zvykli na způsob práce, který program nabízí. Přechod na jiný produkt je pro ně obtížný - musí se učit něco nového a pro takový přechod musí mít dostatečně velký důvod. A protože PSPad není komerční produkt, můžu klidně spát, aniž bych se budil strachem z konkurence.

Lze se dočkat v nějaké z příštích verzí chování editoru jako je tzv. „online-text-mód“? (Na HDD je soubor *.txt a tento je otevřený v editoru. Editor provádí update podle toho co je na HDD a zároveň to co uživatel zapíše v editoru se okamžitě projeví do souboru *.txt na HDD - undo a další funkce jsou stále použitelné. Jinými slovy, soubor na HDD se nyní chová jako soubor obousměrně mapovaný v RAM paměti s násobným přístupem.) (gro)

Jan Fiala: Tohle je poněkud specifický požadavek. Předneste svůj požadavek ve fóru PSPadu, nejlépe v českém i anglickém. Pokud se najde více uživatelů, kteří by podobnou funkčnost uvítali, zařadím ji do seznamu prací.

V současné době PSPad umožňuje automatické „občerstvování“ i automatické ukládání v zadaném intervalu. Vím, že to ale není přesně to, co požadujete.

Jen tak v rychlosti mě napadá několik možných problémů - rychlost ukládání a načítání velkých souborů nebo souborů z pomalejší sítě, řešení konfliktů, kdy by se současně změnil soubor v editoru i na disku. Rozhodně by to bylo předmětem delší diskuze a analýzy.

Jak je to s rozvojem funkcí podle potřeb uživatelů? Nedávno jsem například postrádal západoevropská kódování, což je při psaní německé webovky problém. Je mi jasné že to nemůže fungovat „chci/přidáme“, ale jestli takovéto požadavky někde shromažďujete a berete v potaz? Tomáš Halada

Jan Fiala: Beru v potaz všechny požadavky uživatelů. Některé požadavky znamenají pouze pár řádků kódu. Takové realizuji hned.

Některé znamenají spoustu hodin programovacího času. V současné době testuji změnu práce s kódovými stránkami. Uživatelé by se měli dočkat možnosti definovat si kódové stránky, které používají.

V pozvánce stojí „PSPad je koníček, kterému se Jan Fiala věnuje ve volném čase.“ Může se stát, že ten čas nebude? Co bude potom? Každopádně držím palce aby tu PSPad byl „až na věky“, samozřejmě stále vyvíjen. (Tomáš Halada)

Jan Fiala: Pokud by se stalo, že čas nebude nebo dojdou síly na další vývoj, nepravděpodobnější možností by bylo zveřejnění zdrojových kódů. Další možností je předání projektu někomu, kdo by pokračoval v jeho vývoji.

V jaké verzi Delphi PSPad programujete? Jak se Vám Delphi líbí jako vývojový nástroj a programovací jazyk? A proč Delphi? Sám je používám pro velmi rychlý vývoj. (Patrik)

Jan Fiala: PSPad je psaný v Borland Delphi 7. Podle mého názoru je Delphi velmi dobrý vývojový nástroj a ve své době na začátku neměl konkurenci. V poslední době jej konkurence dohnala a v některých směrech překonala. Mimo jiné je to dáno i politikou firmy Borland.

Delphi se snadno ovládá a umožňuje skutečně velmi rychlý vývoj aplikace. Jeho předností jsou zdrojové kódy téměř k celé VCL (knihovny komponent) a velmi velké množství komponent a knihoven na internetu. Na rozdíl od konkurenčních produktů jsou v drtivé většině případů dodávány ve formě zdrojových kódů, takže se stanou součástí výsledného *.exe a není třeba množství nejrůznějších knihoven okolo, které se často musí registrovat. Líbí se mi princip „zkopíruj si EXE nebo adresář s programem a spusť bez nutnosti instalace“.

A proč Delphi? Hlavním důvodem je, že Delphi používáme k vývoji firemních produktů. Takže se dá říct, že je dobře ovládám.

Je těžké dělat v PSPadu? (Martin Martinek)

Jan Fiala: To velmi záleží na tom, co chcete dělat. PSPad je textový editor, takže jeho primárním určením je psát text. Podporuje zvýraznění syntaxe, takže vizuálně zpřehledňuje kód programu. Nabízí mnoho funkcí, které psaní a formátování kódu zrychlují a zjednodušují.

Pokud pro vás není těžké psát text, není ani „těžké“ používat PSPad.

Vím, že PSPad není od první verze vydáván pro Linux jako OpenSource, takže s tím teď najednou nejde začít. Nebylo by ale možné vytvořit jakousi odnož PSPadu pro Linux? (Josef Rohlík)

Jan Fiala: Odnož = naprogramovat jej pro Linux. A protože jedinou alternativnou je FreePascal a projekt Lazarus, byly by z PSPadu použitelné pouze jen nevizuální části. Pro zbytek by se musely najít odpovídající náhrady komponent, popř. upravit stávající komponenty tak, aby umožnily běh v prostředí Linuxu. Pro mne je to z časových důvodů nemožné.

V PSPadu kóduju už přes dva roky. Kolik času měsíčně PSPadu průměrně věnujete? Pracujete na něm i teď sám? Sledujete vývoj jiných editorů a nacházíte v něm inspiraci nebo jedete čistě podle toho, co potřebujete a chcete pro sebe? Jak hodně nasloucháte požadavkům z komunity uživatelů? Jaké jsou vaše priority pro nové funkce? Jaké jsou vaše priority pro vylepšení stávajících funkcí? (Jan Korbel)

Jan Fiala: Ano, na PSPadu pracuji sám. Myslím, že každý programátor má nějakou „úchylku“ ;) .

Vývoj ostatních editorů nesleduji.

Co potřebuji pro sebe, to PSPad obsahuje již dávno. Teď se vývoj programu řídí výhradně podle přání uživatelů. Takže ano, naslouchám komunitě.

Snažím se PSPad držet co „nejlehčí“. Implementací všech funkcí, které si někdo vymyslí, by se z něj stala nepřehledná a nezvladatelná obluda. Takže teď implementuji pouze funkce, ke kterým se přikloní větší množství uživatelů. Individuální požadavky lze většinou vyřešit rozšířením funkčnosti pomocí skriptovacích možností PSPadu. PSPad využívá prostředí WSH (Windows Scripting Host), které umožňuje doinstalovat k výchozímu JScriptu a VBScriptu podporu pro další jazyky, takže pak je možné rozšiřovat funkčnost třeba skripty v Perlu, PHP, atd.

Jedním z posledních skriptem řešených požadavků bylo na stisk klávesy ESC zavřít okno a pokud již nejsou žádná okna, tak ukončit program. Výsledkem je asi 15 řádkový skript.

Uvazujete o funkci dvou oken, kde by každé zobrazovalo stejný soubor? (Tomas B)

Jan Fiala: Funkce dvou oken je implementována velmi dlouho. V nabídce „Okno“ jsou k dispozici funkce „Rozdělit svisle“ a „Rozdělit vodorovně“. Stejnou volbu najdete i v kontextovém menu nad záložkou souboru. Opětovným zavoláním funkce se rozdělení zruší. Změny prováděné v jednom okně jsou automaticky přenášeny do druhého okna.

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,