Preskočiť na obsah Preskočiť na pätu (NCP VaT)
VEDA NA DOSAH – váš zdroj informácií o slovenskej vede

Ortodoxný pythonista

VEDA NA DOSAH

Slovenský tím zo Žilinskej univerzity v Žiline pod vedením RNDr. Petra Faba, PhD., žne vo virtuálnom svete úspechy so svojou aplikáciou PSE, vylepšujúcou a dopĺňajúcou programovací jazyk Python. 

Samotná myšlienka našej aplikácie veľmi výnimočná a originálna nie je. Zásadným rozdielom oproti konkurencii je dôraz na otvorenosť, rozšíriteľnosť a flexibilnosť programu.

Čo je Python?

Slovo pripomínajúce hada predstavuje interaktívny programovací jazyk, ktorý vznikol v roku 1991. Má mnoho výhod. Napríklad miesto toho, aby nútil programátora používať určitý štýl programovania, umožňuje mu používať viaceré štýly a dá sa jednoducho dopĺňať či upravovať. Autor Pythonu, holandský programátor Guido Van Rossum nazval svoj produkt podľa populárneho britského satirického seriálu Monty Python’s Flying Circus.

RNDr. Peter Fabo, PhD. RNDr. Peter Fabo, PhD. vyštudoval Matematicko–fyzikálnu fakultu UK (dnes FMFI UK), odbor fyzikálna elektronika a optika. Dlhodobo pôsobí v oblasti aplikovanej fyziky, ohraničenej virtuálnym trojuholníkom tvoreným fyzikou, elektronikou a ďalšími odbormi. V súčasnosti pracuje vo Výskumnom centre Žilinskej univerzity v Žiline ako odborný pracovník v oblasti monitorovania a hodnotenia dopravnej infraštruktúry. Dr. Faba sme oslovili v súvislosti s jeho aktuálnym úspechom – aplikáciou PSE, ktorá vznikla len ako pomocný interný projekt pre riadenie zberu a spracovanie dát z rôznych meraní vo Výskumnom centre, ale vzbudila nečakaný záujem odbornej aj laickej verejnosti.

Pracujete v programovacom jazyku, ktorý mnohí ignorujú? Prečo práve Python?

Každý programovací jazyk, tak isto ako aj verbálny jazyk, je určený na vyjadrenie našich myšlienok. Výhodou Pythonu je to, že je relatívne málo ukecaný, takže na implementáciu riešenia konkrétneho problému spotrebujete výrazne menej času a námahy ako v štandardných klasických programovacích jazykoch. Z tohto dôvodu sa Python často používa na rapid-prototyping, rýchle a často aj trvalé doplnenie riešenia nejakého problému. V našich aktivitách pythonovské skripty používame veľmi často na riadenie meraní, zber a vizualizáciu dát, pretože program sa dá veľmi ľahko a rýchlo upravovať. Veľmi dôležitá je tiež celá infraštruktúra okolo Pythonu, ktorá pokrýva asi všetky oblasti informatiky, od vedeckých knižníc až po webové aplikácie. Nespornou výhodou je, samozrejme, ľahká dostupnosť literatúry a celková prehľadnosť i jednoduchosť jazyka.

Na odľahčenie témy občas používate spojenie ortodoxný pythonista. Takže, aký je ortodoxný pythonista?

Medzi programátormi vznikajú často spory o tom, ktorý jazyk je lepší. Ortodoxný pythonista povýšil dokonalú znalosť Pythonu na najvyššiu métu poznania. 🙂 Našťastie, tento stav nebýva zvyčajne trvalý, pretože po prekročení istej úrovne poznania ortodoxný pythonista zistí, že efektívna tvorba nových modulov pre Python sa najlepšie programuje v jazyku C alebo C++.

Python ste vylepšili o novú aplikáciu PSE (python simulator editor). Čím je v porovnaní s konkurenciou výnimočná?

Myšlienka samotnej aplikácie veľmi výnimočná a originálna nie je, blokovo orientované simulačné, programovacie a konfiguračné nástroje sú v svete informatiky už viac ako 40 rokov. Zásadným rozdielom oproti konkurencii je dôraz na otvorenosť, rozšíriteľnosť a flexibilnosť programu. Štandardné aplikácie tohto typu sú takmer vždy nejakým spôsobom zadrôtované, takže ak potrebujete program rozšíriť, upraviť, modifikovať alebo potvrdiť, čo pri výskumných a vývojových aktivitách hrozí dosť často, veľa možností nemáte. Buď sa budete prehrabávať v kope cudzieho neznámeho kódu, alebo budete musieť investovať do kúpy veľmi drahých nástrojov. PSE je vybudovaný na otvorených technológiách a štandardoch, ktoré sú súčasťou infraštruktúry programovacieho jazyka Python.

Hovoríte to veľmi skromne, ale PSE je momentálne veľmi populárna…

Continous Transfer functionTreba podotknúť, že v tomto jazyku ešte tento typ aplikácie (teda blokový editor, simulátor) v použiteľnom stave nebol vytvorený. Zrejme aj toto je dôvodom popularity tejto aplikácie v komunite programátorov a používateľov jazyka Python. Za niekoľko týždňov od zverejnenia prvých screenshotov (zmrazených obrázkov z monitoru) dosiahol počet pozretí a návštev na stránkach Google+ približne 700 000.  Podstatou výnimočnosti aplikácie je to, že celý program – od grafického znázornenia komponentov programu, až po zabudované algoritmy komponentov – je vytvorený v jedinom programovacom jazyku. Pre bežného používateľa, ktorý bude využívať hotové komponenty, to nie je zvlášť významné. Pokročilejší používateľ, ovládajúci Python, nebude mať však problém doplniť, upraviť alebo prispôsobiť program podľa svojho aplikačného zamerania. Jazyk Python je silne zastúpený hlavne v interdisciplinárnych odboroch, napríklad v biofyzike… Používatelia z týchto odborov získajú pružný nástroj pre riešenie svojich odborných problémov.

Vraj vás kontaktovali aj z NASA, o čo presne išlo?

Vždy po zverejnení screenshotov a videí z novej verzie programu sa vyrojí množstvo komentárov a e-mailov aj z vychytených adries – MIT, NASA, Cornell University, Florida Institute of Technology, University of Texas… Väčšinou sú to návrhy a nápady, čím a ako by sa dal program rozšíriť, ale poteší nás aj e-mail vyjadrujúci podporu od študenta z univerzity v Nairobi alebo Patagónii.

Čo robí vašu aplikáciu takou atraktívnou? Aké sú možnosti jej využitia v akademickom prostredí?

Program PSE je typu open-source, čiže ho môžete používať a upravovať bez akýchkoľvek obmedzení. Architektúra programu zároveň umožňuje veľmi jednoducho prípadné rozšírenie, pochopiteľne bez zásahu do pôvodného kódu. Aplikáciu možno využiť ako základ pre vlastnú tvorbu študentov v rámci bakalárskych a diplomových prác, kde je možné tematicky ju rozširovať do špecifických oblastí výskumu a vývoja – robotiky, spracovania signálov, riadenia experimentov, zberu a vizualizácie dát. Pomerne atraktívnou oblasťou sú praktické ukážky pre vyučovací proces spojené s učebnými pomôckami a súpravami, podporujúcimi samostatnú činnosť študentov. O túto oblasť je záujem aj na stredných školách.

Je aplikácia voľne dostupná?

Súčasná verzia 0.08 je dostupná v zdrojovom kóde pre programátorov na základe e-mailovej žiadosti, po uzatvorení vertikálnej štruktúry programu – aktuálne ešte dopĺňame niektoré technologické detaily – bude program dostupný z bežných verejných úložísk alebo na niektorom zo serverov UNIZA.

Podľa vašich vyjadrení, budete PSE ešte vylepšovať. Aká je vaša najvyššia méta v tomto smere?

Táto aplikácia nebude, žiaľ (alebo chvalabohu?), nikdy v takom stave, že vyhlásime hotovo. Možnosti tohto programu sú totiž takmer nekonečné. Pred niekoľkými dňami sa ozval doktorand z Tasmánie. Chce doplniť VHDL kompilátor, v Nemecku chce firma implementovať generovanie skriptov pre riadenie 3D tlačiarne… Aktuálne, samozrejme, riešime veľa drobných problémov, používateľské rozhranie a ergonometriu ovládania, pretože aplikácia je otvorená. Predpokladáme, že vznikne komunita, ktorá vytvorí knižnice komponentov pre rôzne aplikačné oblasti.

Ako dlho už na aplikácii pracujete a kto vám ešte pomáha?

Program mal niekoľko predchodcov, na ktorých sa v malom testovala vhodnosť výberu technológie, algoritmov, dostupnosť a inštalácia na platformách Linux, Windows a Mac. Samotné dopĺňanie do použiteľného demonštrovateľného stavu preto trvalo relatívne krátko, popri iných bežných pracovných aktivitách asi osem týždňov. Práce podľa toho, ako nám to umožňujú aj iné aktivity, pokračujú ďalej. Tím je zatiaľ pomerne malý, do kódu prispievajú okrem mňa dvaja až traja ľudia zo Slovenska i zahraničia. Vizuálnu a grafickú stránku tvorí naša grafička z Výskumného centra ŽU. Záujem o tvorbu návodov a preklady prejavili zatiaľ dvaja študenti z univerzity, jeden z kolegov si zobral na starosti web, wiki a fórum. Potešiteľné je, že aj na základe aktivít Výskumného centra ŽU sa postupne hlásia ďalší potenciálni užívatelia a nové pracovné sily

Zhovárala sa: Slávka Pitoňáková, ŽU v Žiline

Foto: Jana Kollárová

Viac sa dočítate v časopise Quark (číslo 3/2015).

Uverejnil: ZČ

CENTRUM VEDECKO-TECHNICKÝCH INFORMÁCIÍ SR Ministerstvo školstva, výskumu, vývoja a mládeže Slovenskej republiky