Hlavní navigace

Nový český programovací jazyk

Ondřej Tučný 8. 6. 2004

Je to už několik let, co se můj kolega Aleš Procháska a já systematicky věnujeme vývoji vlastního programovacího jazyka a jeho překladače, na kterém spolupracuje ještě několik dalších programátorů. Z původně malého projektu pro vlastní potřeby firmy se stal poměrně rozsáhlý projekt, který už před časem začal vystrkovat růžky na světlo světa. Co je ten Flex vlastně zač?

Je to už několik let, co se můj kolega Aleš Procháska a systematicky věnujeme vývoji vlastního programovacího jazyka a jeho překladače, na kterém spolupracuje ještě několik dalších programátorů. Z původně malého projektu pro vlastní potřeby firmy se stal poměrně rozsáhlý projekt, který už před časem začal vystrkovat růžky na světlo světa.

Co je ten Flex vlastně zač? Je to univerzální programovací jazyk s konzistentním designem, který nabízí všechny dobře známé jazykové konstrukce a klade důraz na takové věci, jako je silná typová kontrola, dobře vyřešená multiplatformita a objektové principy důsledně prostupující celý jazyk. Příznivci C++ a podobných jazyků budou asi mírně zklamáni, že Flex místo složených závorek a dalších speciálních znaků preferuje delší slovní vyjádření, například pro zmíněné { } pomocí klíčových slov begin…end. Svou syntaxí se Flex řadí do stejné rodiny jazyků jako Pascal nebo Ada.

Pokud pominete tento nezvyk, zjistíte, že základní návrhová kritéria Flexu jsou orientována zejména na bezpečnost programování, prevenci častých chyb, přehlednost programu (proto jsme zvolili „ukecanější“ syntaxi) a sjednocování jazykových konstrukcí. Díky tomu je programování ve Flexu jednodušší než v jiných, na bezpečnost orientovaných jazycích, jako je například Ada. Flex je komplexnější jazyk než třeba Java nebo C# a přináší více možností bez nutnosti používat mohutný aparát knihoven i na tak základní věci, jako je multitasking.

Na závěr základního povídání o Flexu, než přejdeme k modFlexu – implementaci Flexu pro web server Apache – si ukážeme jednoduchý příklad (nebojte se, nebude to další Hello World :-)), jak takový Flexový program vypadá:

-------------------------------------------------
program simple_get =
-- simple http get.
-------------------------------------------------

with
  standard,
  standard.characters,
  standard.streams,
  standard.sockets,
  standard.sockets.streams,
  standard.console;

var
  sock    : c_socket_stream;
-- komunikační socket
  wr      : c_stream_text_writer;
-- formátovač pro zápis
  re      : c_stream_text_reader;
-- formátovač pro čtení
  decoder : aliased c_character_decoder_utf8;
-- UTF-8 dekodér
  encoder : aliased c_character_encoder_utf8;
-- UTF-8 enkodér
  eod     : t_logical;
-- příznak konce dat
  line    : t_char32lstr;
-- načtený řádek dat

begin
  -- otevřít spojení na lokální web server a připojit formátovače
  sock.connect(ip_localhost,80);
  wr.init_text_writer(^c_output_stream:(sock),^encoder);
  re.init_text_reader(^c_input_stream:(sock),^decoder);

  -- odeslat primitivní HTTP hlavičku a zavřít výstupní stream
  c_text_writer:(wr).write_line('GET / HTTP/1.0');
  c_text_writer:(wr).write_line('');
  c_output_stream:(sock).close;

  -- přijímat od serveru data, dokud nezavře spojení
  loop
    eod:=c_text_reader:(re).read_line(line);
    write_line(line)
    until eod;

  -- zavřít vstupní stream
  c_input_stream:(sock).close;
  end simple_get; 

Ukecanost Flexu, která se spolu s dalšími pokročilými vlastnostmi nejlépe zúročí u delších než párřádkových prográmků, je na první pohled patrná. Syntaxe je ovšem navržena natolik intuitivně, že každému, kdo už má aspoň nějaké zkušenosti s programováním, nebude trvat dlouho naučit se ji i bez sáhodlouhého studování manuálů.

Složitější příklady čtenáři mohou nalézt na stránkách programu www.modflex.com. Mimochodem, překladač Flexu je jako každý pořádný překladač dospělého jazyka napsán sám v sobě.

modFlex – varianta Flexu pro psaní webů

Nejnovější distribuce překladače Flexu se jmenuje modFlex a představuje modul pro web server Apache pod Windows. modFlex umožňuje ve Flexu psát dynamické webové stránky stejně jako například v PHP. Velkou výhodou modFlexu oproti jednoúčelovým skriptovacím jazykům je to, že nabízí pokročilejší programovací jazyk, který za programátora hlídá mnohem více věcí, a může tak celkově urychlit vývoj a snížit pozdější náklady na opravování špatně odladěných webů.

Protože je PHP velmi rozšířené a představuje základ pro každého, kdo dnes chce programovat trochu chytřejší weby, rozhodli jsme se nabídnout programátorům podporu rozšiřujících PHP knihoven, které důvěrně zná velké množství vývojářů. V základní distribuci modFlexu tak naleznete Flexový binding na tyto knihovny a můžete začít programovat bez nutnosti učit se úplně jiné knihovny.

Provoz webu si dnes už málokdo dokáže představit bez odpovídající hostingové služby. Pozadu nezůstává ani modFlex, pro který je připraven vývojářsky orientovaný hostingový server. Píši vývojářsky orientovaný proto, že na rozdíl od jiných hostingových služeb se nezaměřuje na množství doplňkových služeb, ale poskytuje pro vývojáře důležité základní funkce – například verzovací systém Subversion, kvalitní databázi FireBird a velkou diskovou kvótu pro každý projekt. Do budoucna si představujeme vývoj hostingovému serveru směrem ke komunitnímu vývojářskému serveru, jako je Tigris nebo Sourceforge.

modFlex je zatím čerstvý produkt, má své nedokonalosti, uživatel například občas narazí na neimplementované rysy jazyka, představuje ovšem první kámen skládačky produktů, kterou chceme kolem Flexu vybudovat. Pokud není tvorba webu zrovna váš denní chléb, můžete si s pomocí windowsového překladače Flexu přiloženého v distribuci modFlexu vyzkoušet programování nativních aplikací pro Windows. V nejbližší době bude též ke stažení samostatná distribuce pro vývoj ve Windows. Součástí je i binding na celé Win32 API.

Málem bych zapomněl poznamenat, že modFlex je přirozeně distribuován zdarma. Sice bez zdrojových kódů překladače, zato s knihovnami se slibným potenciálem, a navíc je pro programátory k dispozici celá řada služeb včetně emailové technické podpory – též zdarma.

Open source projekty pro modFlex

Pro modFlex zatím kromě vzorových aplikací moc živých projektů nevzniklo – přeci jenom se jedná jen o pár dní starou novinku! modFlex už tím, že je distribuován zdarma, chce být přátelský k open source vývojářské komunitě a podporovat projekty, které kolem něj začnou vznikat. Jedna z věcí, kterou chceme zásadním způsobem vylepšovat, jsou možnosti vývojářského hostingového serveru.

Nová verze vývojářského serveru, tentokrát již naprogramovaná celá přímo v modFlexu (současná verze je z poloviny tvořena bashovými skripty), je jednou z aplikací, na které bychom rádi spolupracovali s nezávislými programátory. Další možností je například redakční systém nebo jiné typické aplikace dnes dostupné pro PHP, které dále zpříjemní a zrychlí vývoj webů pod modFlexem.

Pokud se vám tedy povídání o modFlexu až dosud líbilo a chcete si ho vyzkoušet, navštivte naše stránky www.modflex.com. Pokud se budete chtít podílet na vzniku nějakého open source projektu ve Flexu, dejte nám vědět! V každém případě se můžete spolehnout na maximální podporu přímo od vývojářů.

A co Linux?

Zatím jsme se bavili pouze o modFlexu, který běží pod Apachem pro Windows. Ale co Linux, přesněji jeho x86 verze? Podpora pro tento operační systém zatím pro Flex není hotová, ale představuje pro nás jednu z velkých priorit. K tomu, aby Flex běhal i na x86 Linuxu, jsou potřeba dvě zásadní věci – generátor spustitelných souborů ve formátu ELF a binding na API Linuxu.

Obě komponenty pro Flex existují v prototypové verzi, takže je jen otázkou času, kdy spatří světlo světa i v ostré distribuci. Zatím můžeme slíbit port modFlexu pro linuxového Apache na podzim letošního roku. A jak je u flexového týmu dobrým zvykem, nepůjde jen o linuxovou verzi modulu pro Apache, ale i o nativní překladač pro tuto platformu umožňující programování libovolných aplikací.

Související odkazy:

Našli jste v článku chybu?

27. 1. 2008 13:05

Zdravím Cyphreho,
přiznám se, v Rebolu dělám malé GUI aplikace asi 8 let. Po přečtení chvály na jazyk Rebol bych rád vrátil nadšence zpátky na zem s několika skutečnýma vlastnostma Rebolu, které můžou fatálně ovlivnit úspěch softwarového projektu. Zde je jejich seznam.

0. Současný Rebol neumí unicode. Takže pokud děláte vícejazyčné aplikace
máte před sebou pořádný oříšek. Sám mám obrovské štěstí, že dělám jen pro windows ve win1250 a to pro čechy a poláky..

1. Gui známý jako VID n…



26. 10. 2006 12:37

uživatel si přál zůstat v anonymitě
Omlouvám se tomuto diskuznímu kroužku, ale možná jsem mezi Váma našla spolužáka ze ZŠ Ríšu Smolaka.
Ahoj Ríšo, pokud jsi chodil do školy na Řehořku, prosím koukni na náš třídní web na SEZNAMU a zaregistruj se.Mělo by to sloužit, na oznámení o konání třídních srazů.
Pokud to tu čte někdo kdo Ríšu zná, prosím oznamte mu, že jej hledají spolužáci ZŠ na SEZNAMU.
Děkuji a ještě jednou se omlouvám, Věra - správce třídního webu.


Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU