Budeme mít "novou Adu a bezpečné PHP?"

Pražská firma A&L soft pro svou potřebu již několik let vyvíjí jazyk Flex, vhodný k psaní aplikací elektronického bankovnictví, který vychází z "upovídaného", ale velmi bezpečného jazyka Ada. Nyní se rozhodli uvolnit jeho webovou podobu modFlex, která má být bezpečnou alternativou jazyka PHP, aby zjistili, jaké budou na nový jazyk reakce.

Vznik nového programovacího jazyka, který by si dokázal získat širokou komunitu uživatelů – vývojářů, podporu velkých firem atd., asi není věc, kterou by dnes ještě někdo čekal. Ačkoliv jazyky procházejí neustálým vývojem a „šlechtěním“ v podobě přejímání úspěšných vzorů mezi sebou, hlavní oblasti vývojářských potřeb jsou v podstatě rozděleny mezi několik hlavních programovacích jazyků. Naproti tomu existuje zejména mezi studenty a nadšenci dostatek pokusů v podobě nových a často překvapivých „jazykových forem“. Drtivá většina z nich upadne v zapomnění spolu s volným časem svých tvůrců a jen velmi málo se jich propracuje do povědomí širšího okruhu lidí. Český jazyk Flex a jeho webová podoba modFlex je podle všeho na nejlepší cestě do tohoto klubu vyvolených. Co jsou zač a jaké mají šance dostat se ještě dál?

Flex je výtvorem pražské firmy A&&L soft, podnikající ve vývoji elektronického bankovnictví. Fakt, že spíše menší firma obětuje finanční prostředky a čas svých vývojařů na ryze „nekomerční“ projekt, jakým alespoň zpočátku tvorba nového jazyka bezesporu je, se může zdát na pohled mírně překvapivým. V případě Flexu je však celá záležitost na poněkud jiné úrovni, než bývá hra s novými jazyky v podání studentů informatiky – projekt vznikl souběžně s prací firemních programátorů, jelikož jim zkrátka žádný z běžných jazyků plně nevyhovoval. Zhruba před devíti lety se proto Aleš Procháska a Ondřej Tučný, technický ředitel a ředitel vývoje, začali zabývat vývojem vlastního jazyka.

Jelikož měl sloužit psaní bankovních aplikací, byl od počátku u Flexu kladen důraz na spolehlivost, bezpečnost a snadnou udržovatelnost kódu. Jako inspirace sloužil zpočátku autorům známý jazyk Ada. Ten je i přes svoji určitou sešlost (poslední standard Ady je z roku 1995) stále považován za robustní a bezpečný prostředek k vývoji mission-critical systémů, avšak podle Aleše Prochásky je příliš složitý na „jednoduché“ aplikace v řádech tisíců až desetitisíců řádků. „I pro hello-world se v Adě musíte naučit skoro celý jazyk,“ dodává k tomu s nadsázkou Aleš Procháska. Flex měl tedy tuto nevýhodu Ady odstranit se souběžným zachováním jejích výhod – bezpečnosti a odolnosti proti chybám programátora. Jedním ze základních rysů syntaxe Flexu je tudíž určitá „upovídanost“, na kterou nejsou například programátoři v C a C++ zvyklí. Účelem tohoto článku sice není podrobný rozbor vnitřní struktury jazyka ani pokus o jeho odborné hodnocení (zájemce je možno odkázat třeba na nedávný článek Aleše Prochásky na Root.cz a diskusi pod ním, případně na samotné stránky modFlexu, kde je ke stažení i učebnice programování v modFlexu), avšak vyhnout se povinnému „Ahoj, světe“ by určitě bylo chybou:

program hello_modflex =




with
  mflib;




begin
  write_line('Ahoj, světe!');




modflex_request^.out_header.set_value
 ('Content-Type', 'text/plain');
  end hello_modflex;

Uvedený příklad je mírnou modifikací ukázkového programu ze stránek modFlexu. Proč najednou modFlex a kam se poděl Flex? Zatímco Flex je spíše souhrnné označení univerzálního programovacího jazyka, modFlex je jeho variací pro webové aplikace – tedy modul pro HTTP server Apache. Samostatný nástroj pro vývoj aplikací pod Windows pak autoři označují jako fullFlex. V současné době je k dispozici pouze modFlex, fullFlex je ve vývoji a jeho jediné komerční nasazení je podle Karla Krenželoka, produktového manažera A&&L soft, v rámci jeho rodné firmy, konkrétně je v něm napsána aplikace pro elektronické bankovnictví OfficeLine.

Uvolnění verze Flexu zpočátku jen pro webové služby má svoji logiku. Vývoj jazyka je i pro soukromou firmu nemalým vedlejším výdajem bez zjevné a brzké vidiny návratnosti. Prioritou musí být samozřejmě komerční činnost a až podle okolností podpora vývoje uvnitř firmy. Podle Aleše Prochásky se vývoji jazyka věnuje firma nepřetržitě, avšak s proměnlivou lidskou kapacitou. Z padesáti lidí, které má společnost k dispozici, se tak Flexu věnuje maximálně deset, spíše ale méně programátorů. modFlex je pak jakýmsi testovacím balónkem, který má ověřit zájem dalších vývojářů a třetích stran nový jazyk podporovat. K tomu účelu firma spustila i vlastní free webhosting, kde si za poměrně velkorysých podmínek (100 MB prostoru, databáze Firebird, neomezený přenos dat) můžete modFlex vyzkoušet. Zatím má podle odhadů Karla Krenželoka komunita dobrovolných testerů velikost několika tisíc lidí.

Soudě podle diskusních fór a ohlasů uživatelů je Flex přijímán s poměrně velkým zájmem, avšak i rozporuplnými reakcemi. Příznivce jazyků jako C(++) příliš neoslovuje jeho nestručná syntaxe a celková košatost jazyka, naproti tomu uživatelé Ady či Pascalu se vyjadřují poměrně pochvalně k jeho možnostem a bezpečnosti. modFlex je pak v trochu náročnější pozici, neboť je cílen jako alternativa k velmi populárnímu PHP. Proti jeho několikaletému náskoku a obrovské základně uživatelů, zdrojových příkladů a tisíců nasazení v náročných podmínkách by měl modFlex podle Aleše Prochásky nabídnout především bezpečnost při vývoji a provozu a tím i nižší náklady. Ředitel vývoje A&&L softu přesto přiznává, že modFlex je v mnoha ohledech produktem úplně opačného rázu, zejména co se týče silné typové kontroly. Zatímco v PHP je typ proměnné určen její přiřazenou hodnotou, modFlex vyžaduje při její deklaraci i explicitní stanovení jejího typu. To může být věc, která bude „rozeným PHPkářům“ dělat potíže, neboť určitá volnost v zacházení s proměnnými a hodnotami (např. s obsahem a indexy pole) je u tohoto jazyka považována za jeho přednost. „My počítáme s tím, že modFlex zaujme především nové zájemce o webové programování a pak také ty, kterým u PHP nevyhovuje nízká bezpečnost programování,“ říká k tomu Aleš Procháska.

Další rozdíl mezi modFlexem a PHP spočívá také v mechanismu obsluhy požadavků na stránky se skriptem v příslušném jazyce. Zjednodušeně řečeno, modul webového serveru pro PHP jako správný preprocesor nejprve zkontroluje obsah stránky a případné výskyty kódu v PHP zpracuje do výstupu v HTML, načež „řízení“ předá zpět serveru, který stránku pošle klientovi (prohlížeči). Naproti tomu modFlex pracuje tak, že flexovský skript přeloží, vyrobí z něj DLL knihovnu, kterou načte do paměti a následně ji použije k obsloužení požadavku. To však není věc, o kterou by se uživatel (programátor) musel starat, jde spíše o zajímavost – modFlex takto připomíná spíše architekturu javovských servletů.

Odlišností modFlexu oproti PHP je pochopitelně celá řada, avšak ne ve všem se jeho autoři snažili jít nutně proti proudu. Nejdůležitějším shodným rysem obou produktů je samozřejmě nulová cena za pořízení. Za účelem snadného přestupu také modFlex podporuje nativní binding knihoven PHP. Díky tomu můžete knihovní funkce, které jste zvyklí používat v PHP, přenést i do svých skriptů v modFlexu. Poněkud dvojsečným pak může být vylepšení modFlexu v podobě požadavku na zdrojové kódy výhradně v kódování UTF-8. Vnitřně totiž Flex i modFlex pracuje v UNICODE, což sice zvyšuje přenositelnost zdrojových kódů (součástí podpory modFlexu jsou i integrační balíčky pro nejrozšířenější textové editory), na druhou stranu eliminuje např. možnost instalace modFlexu na systémy Windows starší než Windows 2000.

UX16

A když už jsme u podporovaných operačních systémů, pro řadu programátorů bude jistě důležité vědět, že modFlex zatím není k dispozici ve verzi pro Linux. To je ze strany uživatelů asi nejčastěji vytýkaný nedostatek (nakonec právě ve světě Linuxu a open source obecně by bylo asi nejsnazší získat širokou základnu testerů i participantů na dalším vývoji jazyka). Podle Aleše Prochásky je však portace modFlexu pro Linux velmi blízko svému dokončení, doslova je „prakticky již hotova“, takže je možné, že v krátké době po zveřejnění tohoto článku bude již tento odstavec irelevantní.

Budoucnost obou jazyků (Flexu i modFlexu) je tedy poměrně otevřená a kromě zájmu uživatelů závisí zejména na vývoji volných kapacit v mateřské firmě. Některé okolnosti, vzbuzující určitý odpor části programátorské komunity, by jistě bylo možné odstranit. Kromě zmíněné prozatímní absence linuxové verze se jedná ještě například o odstavec v licenčním ujednání k verzi Flex 4.0 Personal Edition, podle kterého je možné jeho využití jen pro nekomerční účely. To může být jistě překážkou rychlejšího rozšíření Flexu, protože jeho komerční verze stále není k dispozici a podle zástupců firmy není tento termín ani určený. Rozhodujícím kritériem však bude i přijetí modFlexu, takže budoucnost plné verze (fullFlex) je do značné míry variabilní. Samotný modFlex určitě svoje šance má, je jen otázkou, jak se k bezpečnému skriptovacímu (ačkoliv modFlex vlastně skriptovací jazyk není) jazyku uživatelé webových aplikací postaví, neboť řada z nich na PHP oceňuje právě možnost rychlé tvorby skriptů. Osobně si myslím, že spíš než jako alternativa k PHP se modFlex může prosadit jako jeho doplnění pro bezpečné programování, případně jako určitá náhrada Java servletů. Za vyzkoušení modFlex rozhodně stojí, a pokud vás tento velmi nehluboký náhled na něj nalákal, určitě si nenechte ujít příležitost poznat ho blíž na jeho stránkách. A pokud si vás jeho pascalovská syntaxe získá, můžete zkusit i vyhrát některou z cen v soutěži o nejlepší webovou aplikaci v jazyce Flex.

Anketa

Už jste modFlex vyzkoušeli?

49 názorů Vstoupit do diskuse
poslední názor přidán 20. 7. 2004 10:56
Zasílat nově přidané názory e-mailem

Školení: Obsahová strategie a content marketing

  •  
    Proč je obsahový marketing výrazným trendem.
  • Jak navrhnout užitečnou obsahovou strategii.
  • Jak zlepšit workflow a výsledky copywritingu.

Detailní informace o školení content strategy »