Editory kódu a IDE se pouštějí do křížku

Můžeme to nazvat návratem k jednoduchosti či prostě jen snahou profesionálů najít ty nejlepší nástroje pro to, aby ...


Můžeme to nazvat návratem k jednoduchosti či prostě jen snahou profesionálů
najít ty nejlepší nástroje pro to, aby odvedli svou práci co nejlépe a včas. V
některých firmách, kde na prvním místě stojí zejména produktivita, se
programátoři ve své tiché revoluci snaží zbavit pomalého, těžkopádného IDE
(Integrated Development Environment) s množstvím funkcí a komponent a obracejí
se k jeho "starobylému" předchůdci editoru kódu.
Důvodem tohoto rostoucího trendu není nic jiného než lepší kontrola situace při
práci. Dodavatelé propagují IDE prostředí jako vývojový nástroj dneška a jeho
příznivci tvrdí, že práce programátorů bude mnohem efektivnější, pokud budou
moci vyvíjet v jednotném prostředí. Avšak mnozí z programátorů, a obzvláště ti
zkušenější, dávají přednost značně odlišnému přístupu a používají editory kódu,
jejich plug-in moduly, režimy použití (módy) nebo jiné možnosti rozšíření, aby
si mohli vybrat jen takové nástroje, které potřebují. Neradi jsou "omezováni"
jediným vývojovým prostředím a tvrdí, že IDE jsou náročná na zdroje, často i
pomalá a mají mnohem více komponent, než je k práci zapotřebí.
Řešení může být ve strategii flexibilního používání nástrojů: Vývojáři budou
používat nástroje a přístupy, které jim umožní pracovat co nejefektivněji, a
vývojová společnost bude sklízet výsledky vyšší produktivity jak výkonných
nástrojů, tak spokojených programátorů.

Modulární přístup
Modulární přístup při použití editoru kódu je přitažlivý z několika důvodů.
Především jde o to, že náklady na odpovídající nástroje jsou velmi nízké, často
dokonce nulové, takže experimentování se strategií modulárního vývoje za účelem
zvýšení výkonnosti programátorů si nevyžádá za oběť velkou část rozpočtu
společnosti.
Mnohá modulární řešení editace kódu jsou odvozena od open source nástrojů a
open source programátoři se také starají o jejich údržbu. Zapojení open source
komunity je ve skutečnosti jedním z důvodů, proč se editorům kódu dostalo v
poslední době takové pozornosti velká většina řešení pro editaci kódu, která
jsou dnes k dispozici, jsou open source a často se jedná o multiplatformní
nástroje umožňující programování ve více jazycích.
Open source kořeny editorů poskytují ještě další výhodu: dostupnost zdrojových
kódů. Programátoři, kteří používají open source editory a modulární plug-iny,
mohou svoje nástroje snadno přizpůsobit firemním standardům, například pomocí
sdíleného plug-inu, který mohou použít pro automatické přístupy ke specifickému
úložišti zdrojových kódů ve firmě. Rozšíření a přizpůsobení open source
nástrojů pomocí přídavných modulů rovněž umožňuje přímo sdílet kolektivní
znalosti jiných programátorů, kteří možná objevili lepší a rychlejší způsoby,
jak provádět určité úlohy, nebo už provedli update svých modulů.
Možnost přizpůsobení podle vlastních požadavků však představuje pouze jeden
aspekt využitelnosti editorů kódů. Když přijde řeč na to, čím se editory
odlišují od ostatních vývojových nástrojů, programátoři udávají pár zajímavých
postřehů. "Samotné editory ve většině IDE nemají dostatek funkcí, a manipulaci
s kódem tak znesnadňují," říká Chris Rathman, konzultant a softwarý vývojář.
"Někdy například potřebuji pracovat s několika stovkami souborů v jediné
session a musím mít možnost globálního vyhledávání a nahrazování. A musí to jít
rychle."
Mnoho vývojářů si myslí, že myší ovládaná IDE jejich práci zpomalují, zatímco
flexibilní nástroje k editaci kódů ovládané pomocí klávesnice a s množstvím
funkcí naopak dodávají jejich práci dynamiku. "Musel bych používat takové IDE,
v němž mohu psát nebo editovat kód tak rychle jako třeba při použití editoru
Vim," dodává Wade Bowmer, vývojář ze společnosti Excido. "Nepotřebuji používat
myš, navíc mnohá IDE intenzivně využívají funkčních kláves, což mě při práci
opravdu brzdí."
Scott Anderson, softwarový architekt, souhlasí: "Na všechno používám editor
Emacs. Je programovatelný, navíc se jedná o open source nástroj, kolem něhož
existuje rozsáhlá komunita uživatelů, a paleta jeho funkcí je ohromující."
Přístup založený na editorech kódu poskytuje modulární nástroje a prostředky,
které podporují více programovacích jazyků i platforem, stejně jako například
funkce pro zvýraznění syntaxe, makra, užitečné nástroje pro srovnávání souborů,
funkce pro cut-and-paste v několika vrstvách a možnosti rychlého vyhledávání a
nahrazování.
Avšak bez ohledu na funkce, které programátoři považují za důležité, kladou
nade všechny výhody především celkové zvýšení produktivity. "Když mě lidé
sledují při práci s editorem Emacs, obvykle žasnou, kolik toho stihnu během
velmi krátké doby," říká Scott Anderson. "Vždy se proto snažíme najít takové
nástroje, které programátorům pomohou dosáhnout co možná nejvyššího výkonu."

Zasouvání
Výhody, které do velké míry zajišťují úspěšné fungování paradigmatu editoru
kódu, zajišťují přídavné moduly a množství režimů použití (módů), které
umožňují provádět různé typy úloh.
Nabídka dostupných modulů a módů je ohromující. Pokud vaše vývojářská dílna
používá například metodologii extrémního programování (XP, eXtreme
Programming), jsou k dispozici plug-iny pro mapování verzí, iterací, vývojových
epizod a úkolů, které musejí být při tvorbě XP projektu prováděny. Podobně
pokud vaše pracoviště provádí ve větší míře refactoring, pomohou tento proces
automatizovat dostupné plug-iny, a to obvykle tak, že udržují katalogy pro
činnosti týkající se refactoringu. Po výběru položky katalogu a dosazení
parametrů plug-in analyzuje účinek refaktorizační operace. Pokud je vývojový
pracovník s výstupem analýzy spokojen, může pak stejný plug-in použít k tomu,
aby operaci refactoringu provedl. Další plug-iny podporují řadu dalších
činností, od tvorby Apache Ant skriptů přes editaci XML až po práci s SQL.
Umožňují také přístup k nástrojům pro správu softwarových zdrojů a verzí, jako
jsou CVS a Rational ClearCase společnosti IBM.
Mnohá tradiční IDE naopak nutí vývojáře k používání pouze nástrojů a modulů,
které jsou nabízeny samotným výrobcem. Tento nediferencovaný přístup může
někomu vyhovovat, avšak někdy lze větší výkonnosti dosáhnout pomocí modulárních
nástrojů. Některá IDE si již tuto skutečnost berou k srdci stále více
otevřených integrovaných prostředí, jako například Eclipse, začíná
implementovat flexibilnější vývojové postupy nabídkou jednoho či dvou editorů a
přídavných modulů v IDE.

Vysoká flexibilita
Jiné modulární editory nabízejí možnosti editačních módů, které programátorům
umožňují přizpůsobit vývojové nástroje pro jeden či více programovacích jazyků.
Módy poskytují funkcionalitu, která je potřebná k napsání aplikace, specifickou
pro určitý jazyk a programátorům stačí pouze přepínat mezi editačními módy, aby
mohli psát aplikace v různých jazycích. Představte si například, že váš tým
vyvíjí aplikace pomocí jazyků XML, Visual Basic .Net, C++, C#, Java a J2EE.
Namísto toho, abyste během vývoje používali tři nebo čtyři různé nástroje,
můžete použít jediný editor kódu, který poskytuje módy pro všechny tyto jazyky.
Modularita editorů nabízí značnou míru flexibility, neboť vývojářům poskytuje
takové nástroje, které potřebují k dosažení rychlých výsledků. Maximální
využití všech možností těchto nástrojů však stále vyžaduje vysokou úroveň
znalostí a dovedností programátora. Glen Austin, programátor společnosti iSoft
Corporation, poznamenává: "Čím lépe ovládáte daný programovací jazyk, jeho
knihovny a vlastnosti, tím rychlejší a lepší kód dokážete napsat. Důkladnou
znalost však nezískáte z programovacích nástrojů typu ,ukaž a klikni."
Programátoři s rozsáhlejšími zkušenostmi mohou přejít na mnohem svižnější a
efektivnější editory kódů a těžit z jejich výhod z toho důvodu, že důvěrně
znají programovací jazyk i postupy, které tvorba aplikací vyžaduje.
Co se však týče rozšiřování schopností vývojových inženýrů nebo vzdělávání
nových programátorů, vedou se spory o tom, zda je pro tyto účely lepší použít
editory kódu, nebo IDE. Doplňkové komponenty a funkce IDE mohou posloužit jako
"trenažér" začínajících vývojářů v závislosti na tom, s jakou úrovní znalostí
přicházejí do vývojového týmu. Mnoho stoupenců filozofie editorů kódu se
domnívá, že pro začínající programátory je mnohem jednodušší učit se úplným
základům programovacího jazyka právě s editorem, protože nejsou zatěžováni
nutností učit se, jak používat samotné IDE.
"Například editor Emacs je k novým uživatelům velmi shovívavý," říká Scott
Anderson. "Nabízí vestavěné tutoriály a kontextově řízenou nápovědu, a navíc je
pohotově k dispozici podpora ze strany uživatelské komunity." Také Bowner ze
společnosti Excido poznamenává: "Vim obsahuje výukový program Vimtutor, který
vás rychle naučí základům práce s ním." Podle Rathmana je zase pro začínající
vývojáře vhodnou volbou TextPad, protože nabízí vyváženost mezi jednoduchostí a
nabídkou funkcí.

Výhody druhé strany
Pokud chcete ve svém týmu zavést flexibilní modulární přístup k programování,
nemusíte se vzdávat standardu vývojových nástrojů, které v současné době
používáte. Pokud běžně pracujete s IDE, zjistěte, zda nabízí rozšiřitelnost do
té míry, aby jej programátoři mohli doplnit o různé druhy editorů, ladicích
programů a dalších nástrojů vybraných na základě konkrétních potřeb.
Jeden ze způsobů posouzení efektivnosti současné strategie používání vývojových
nástrojů spočívá v postupu, kdy je u dané aplikace sledováno množství problémů
ve fázi její tvorby. (Jednou věcí je rychlé dokončení určité fáze vývoje a
testování, něco jiného ale je, jestliže se při tvorbě tohoto kódu vyskytují
časté potíže a komplikace.) Metriky pro sledování výskytu problémů během tvorby
a času vynaloženého na jejich odstranění mohou poskytnout užitečné vyhodnocení
toho, zda je současný přístup k vývoji ve vašem týmu skutečně tím nejlepším.
Na cestě k "vývojové nirváně" se samozřejmě vyskytne mnoho oblastí kompromisů.
Jsou dostupná otevřená a rozšiřitelná IDE, která vývojářům umožňují doplnit je
o nástroje dle vlastního výběru, k dispozici jsou také řešení pro editaci kódu,
která lze "zasunout" do IDE. Například editor Visual SlickEdit poskytuje i
plug-in, takže jej vývojáři mohou použít i z prostředí IDE WebSphere Studio
Application Developer společnosti IBM.
Vzhledem k tomu, že náklady na nástroje pro editaci kódu, módy a plug-in moduly
jsou zpravidla malé či vůbec žádné, stojí za to nechat pár vývojářů z vaší
dílny vyzkoušet jedno či dvě tato řešení a požádat je o zhodnocení. Některým
členům týmu může možnost ukládání a získávání kódu z úložiště a jeho zpracování
v IDE vyhovovat, avšak jiní programátoři mohou zjistit, že interakce mezi
úložištěm a přídavnými moduly pro editaci kódu je pro jejich způsob práce
mnohem lepší.
Výběr IDE nebo modulárních editorů kódů nemusí představovat jednostrannou
volbu. Zkušené firmy dokáží oba odlišné světy sladit a vytvořit vývojové
metodologie, které vykazují lepší výsledky. Editory kódů podporují rozmanité
programovací jazyky, platformy i rozdílné úrovně dovedností vývojářů. Pokud
dokáže všechny tyto výhody ještě umocnit (alespoň částečná) svoboda vývojových
pracovníků při výběru nástrojů, pak se strategie flexibilního přístupu stává
jasnou volbou

Příležitost pro integrovaná vývojová prostředí
Ať je flexibilita a výkonnost vývojářů využívajících metody modulární editace
kódu sebevětší, existují samozřejmě oblasti, kde je využívání IDE více než
smysluplné a jsou v podstatě nenahraditelná. Dvěma oblastmi, kde IDE skutečně
vyniká, je tvorba grafických uživatelských rozhraní (Graphical User Interface,
GUI) a použití nástrojů pro správu změn (Change-Management) pro nasazení kódu v
rámci další infrastruktury.
"IDE používám především pro tvorbu GUI rozhraní," potvrzuje softwarový
architekt Scott Anderson. Také podle názoru programátora Glena Austina ze
společnosti iSoft "v IDE je vývoj grafických rozhraní hračka. K návrhu rozhraní
obvykle použiji IDE, pak provedu změny v základním kódu, abych dynamicky
vygeneroval rozhraní."
Pokud vaše firemní prostředí vyžaduje nasazení aplikace na serverových
platformách, jako je IBM iSeries, nebo platformách aplikačních serverů,
například BEA WebLogic či IBM WebSphere, pak má smysl v závěrečné fázi
vývojového cyklu použít IDE a aplikaci snadněji přesunout do funkční fáze.
Například nástroj pro řízení změn TurnOver společnosti SoftLanding Systems může
pomoci při nasazení aplikace z IBM WebSphere IDE. Podobně práce ve WebLogic
Workshop IDE společnosti BEA umožňuje vše rychle vyzkoušet lokálně na
integrovaném testovacím aplikačním serveru.

Speciální nástroje
IDE prostředí navíc mohou analytikům a vývojářům poskytnout vhodný výchozí bod
pro návrhování a modelování aplikací. Vývojový cyklus aplikace by měl takto
začít rychlým vývojem návrhů a prototypů v prostředí IDE. Jakmile by byl návrh
zrealizován, programátoři by si mohli vybrat, zda použít IDE nástroje, nebo
přístup modulární editace kódu pro další fázi cyklu projektu.
Mimo těchto specifických úloh by se pak o případném dalším využití IDE nástrojů
mělo rozhodnout podle hledisek použitelnosti, úrovně znalostí a preferencí
programátorů. Vliv na rozhodování o výhodách IDE mohou mít určité konkrétní
vestavěné nástroje, které vývojářům výrazně zjednodušují řešení některých typů
úloh.
"IDE prostředí společnosti Borland pro nás představují standard a nástroje
jejich vývojových prostředí jsou skutečně zajímavé. Například sada nástrojů
produktu Optimizeit nám pomohla rychle alokovat úzká hrdla v našem kódu," říká
Austin. Ačkoliv jsou k dispozici i profilery pro editory kódu, které poskytují
obdobnou funkčnost, spolehlivá implementace Optimizeit nabízí mnohé výhody.
Mnoho vývojářů z této firmy bude tento nástroj i nadále používat, přestože
obecně nemají IDE příliš v lásce.
Zastánci IDE tvrdí, že integrovaná podoba těchto prostředí rovněž slouží k
usnadnění práce méně zkušených vývojářů. Jejich dodavatelé jsou přesvědčeni, že
když je vše k dispozici z jediného rozhraní, jsou pro začínající programátory
různé nástroje, nápověda či příklady kódů dostupnější. Například v případě
Visual Studia zdůrazňuje ředitel vývojové divize Microsoftu David Lazar, že
toto prostředí "poskytuje jak rozsáhlou knihovnu kódů pro použití stylem
copy-and-paste, tak technologii, která vývojářům zjednodušuje učení se základům
programovacího jazyka a dalším znalostem, jako je správná syntaxe."

Otevřenost a konvergence
Přestože IDE v současné době umožňují uživatelům zvolit při vývoji aplikací
postup založený na editaci kódu, mnoho z nich je omezeno nabídkou editačních
nástrojů samotných výrobců integrovaných prostředí. Existuje jen málo produktů,
které umožňují vývojářům připojit další nástroje podle jejich vlastního výběru.
Situace se však může změnit na vzestupu je zajímavý trend kombinování toho
nejlepšího z metodologií modulární editace kódu s vizuálními vývojovými IDE
nástroji.
"Podle tohoto scénáře bude mít vývojář možnost využít přístupů programování na
vyšší úrovni (například v případě vývojářů ve Visual Basicu) nebo většinu času
pracovat s nástroji pro editaci kódů (což se bude týkat zřejmě zejména
programátorů v C++ nebo C#)," vysvětluje David Lazar. Z takových otevřených,
rozšiřitelných IDE, která kráčejí ve stopách Eclipse, se pravděpodobně pomalu
rýsuje model pro podobu budoucích integrovaných vývojových prostředí.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.