Starší komentáře ke článku: Český programovací jazyk Flex a modFlex

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: drago

Datum vložení: 10.6.2004 0:52:42

Je to hezké, ale přijde mi to složité na to že chceme jen vypsat Ahoj světe. Já když jsem začínál s PHP tak se mi nejvíc líbilo že se prostě napsalo echo "Ahoj světe"; a bylo to. Nemuselo se nic vysvětlovat. Tady je spousta věcí které odradí spoustu nováčků. Ten ModFlex asi nebude pro nováčky že?

Na jednoduché skripty se mi zdá PHPko lepší. Otázkou je kdy je skript menší a kdy už větší :)

V každém případě pasáž s raketoplánem mě zaujala, jestli pak to bude i tak spolehlivé, ale to asi ukáže až čas a nudící se hackeři ;)

Avatar

Autor komentáře: Martin Kopta

Datum vložení: 10.6.2004 2:27:50

Hmm, mně se prostě nezdá syntax a nekompatibilita s ECMA-262. :-( To je ostatně důvod, proč si už nehraju s Perlem, přestože je excelentní. Prostě když musíte pracovat s JS, ActiveScriptem a PHP, tak je otravné přepínat na jiné typy psaní skriptů.

Avatar

Autor komentáře: Pavel Kolesnikov

Datum vložení: 10.6.2004 10:56:02

Z toho, co pisou na webu, mi prijde, ze Flex <B>neni skriptovaci</B> jazyk - tento epiteton se do clanku asi dostal nejakym omylem.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 10.6.2004 12:05:28

Napraveno ;-)

Avatar

Autor komentáře: Marek Paška

Datum vložení: 10.6.2004 10:48:18

Ano, i já si myslím, že Flex je vhodný spíš pro zkušenější programátory. Mohl by se hodit tam, kde PHP už nestačí (kvůli rozsahu skriptů roste chybovost), ale z nějakých důvodů se vám nechce do Javy. Prostě alternativa, co má výhody a nevýhody.

Avatar

Autor komentáře: Jakub Hegenbart

Datum vložení: 30.5.2007 14:45:23

"V každém případě pasáž s raketoplánem mě zaujala, jestli pak to bude i tak spolehlivé, ale to asi ukáže až čas a nudící se hackeři ;)" Kde se tyhle fámy berou? Raketoplán není programovaný v žádné Adě, ale v jazyku HAL/S. Možná nějaké okrajové věci jsou v Adě, ale klíčový řídicí software je HALový.

Avatar

Autor komentáře: Roman Dagi Pichlik

Datum vložení: 10.6.2004 8:19:50

Začal bych odvážným tvrzením samotných autorů Flexu:

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.

Už tady se objevují první trhliny, není komplexnost jazyku dána mimo jiné škálou jeho knihoven? Je to pravou úměrou právě multitasking? Stejně tak by se neměla míchat vlastní jazyky a platformy, platforma Java a .NET jsou mimo tisíce dalších výhod otevřené a neustále rostou a vyvíjejí se. Za Javou stojí mnoho nadnárodních společnosti a velkých softwarových hráčů, za .NETem stojí Microsoft. Proti tomu Flex a firma A&&L soft s. r. o. jsou jen koťátka, na které sem tam zbude nějaký drobt.

Pro Enterprise řešení tu máme Javu a .NET, pro dynamický web tu máme etablované a oblíbené řešení jako PHP, Perl či Python, všechny s širokou komunitou a vývojářskou podporou. Velkou výhodou Flexu bude česká podpora a zázemí pro tuzemské vývojáře, ale na velké rozšíření to nevypadá. Dle mého skromného názoru nedosáhne Flex či modFLex rozšíření a potichoučku si najde vlastní místo v propadlišti dějin. Flex je jako hozený placák na hladinu rybníka, udělá dva tři kroužky a po té nenávratně zmizí pod hladinou... a kdo by ho hledal?

citovano ze spotu Frontální útok programovacím jazykem Flex
<a href='http://www.sweb.cz/pichlik/archive/2004_06_06_archive.html#108684801213643237' target='_blank'>http://www.sweb.cz/pichlik/archive/2004_06_06_archive.html#108684801213643237</a>

Avatar

Autor komentáře: Marek Paška

Datum vložení: 10.6.2004 11:00:17

IMHO by měla být licenční politika přátelštějsí, s tím souhlasím. Chce to posílat maily do Alsoftu :-)

Jinak možná bude i Flex pro .Net. To by mohla být dobrá šance, protože v případě nespokojenosti s Flexem bude možné zbytek softu dopsat v C# :-))

Komplexnost jazyka je jedna věc, komplexnost knihoven druhá. Flex má zatím jen to první. Kromě toho multitaskingu (synchronní a asynchronní zprávy), silné typové kontroly jsou tam ještě věci jako podpora transakcí (speciální metoda unroll..). Ale na Flexu je nejlepší, že staví na Adě a odstraňuje její nedostatky. Já osobně jsem svého času v Adě dost programoval a můžu říct, že tam člověk vyrobí míň chyb než třeba v C# (které je samo o sobě dost robustní)

Avatar

Autor komentáře: Petr Kadlec

Datum vložení: 10.6.2004 11:08:13

s/unroll/rollback/ :-)

Avatar

Autor komentáře: Michal Kubeček

Datum vložení: 10.6.2004 11:46:46

Zastávám názor, že komplexita jazyka jako takového je spíše na překážku. Jazyk samotný by měl poskytovat základní prostředky pro algoritmizaci a správu dat. Pro složitější úlohy jsou tu knihovny nebo moduly, ať si tomu každý říká po svém. Příliš košatý jazyk paradoxně vede k tomu, že ho bude potřeba každou chvíli rozšiřovat, jak se budou objevovat nové problémy.

Avatar

Autor komentáře: Marek Paška

Datum vložení: 10.6.2004 12:17:10

To je otázka koncepce. Sofistikovanější jazykové konstrukce mohou pomoct překladači hlídat programátora (v takovém zdrojáku je jaksí "víc" informací, než nějaké volání knihoven).

A ve Flexu není "všechno", do jazyka jsou zakomponované jenom věci, na které je stabilizovaný názor, jak je řešit (multitasking...). Knihovny můžete dopsat vždycky. Ono některé jazykové konstrukce v konečném důsledku volají knihovní funkce.

Avatar

Autor komentáře: jiri

Datum vložení: 10.6.2004 9:22:14

Na root.cz vyšel článek o Flexu 8.6.2004. Diskuse obsahuje už 228 příspěvků:
<a href='http://www.root.cz/clanek/2246' target='_blank'>http://www.root.cz/clanek/2246</a>

Avatar

Autor komentáře: llook

Datum vložení: 10.6.2004 10:52:43

Nemyslim, že by flex přinášel něco převratně nového. Možná je lepší než PHP, i když závislost na jediné platformě je dost svazující. Zdrojáky mi příjdou nepřehledný a zbytečně nafouklý. Radši píšu dva znaky { a } než osm znaků begin end.
Ale proč se radši nezaměřit na rozvoj třeba zmíněný Ady nebo něčeho jinýho, už zavedenýho, než bastlit něco novýho?

Avatar

Autor komentáře: Lukas Nevosad

Datum vložení: 10.6.2004 22:08:21

Je to zajimavy projekt, mimo jine i proto ze jako jeden z mala ma i vymakany marketing a snazi se sam sebe "prodat".

Samotny jazyk me napadne pripomina Pascal. o je vyhoda pro ty kteri v nem delaji, nebo kteri nedelaji jeste v nicem - syntaxe Pascalu je o hodne jednodussi a nejdou v nem delat ceckovske prasarny typu (a==(b=c) ? a=b : a=c).

Nadruhou stranu lidi kteri delaji v PHP (jako treba ja) jsou zvykli na urcity komfort pri psani, jakoze neni treba nic deklarovat, muzeme se spolehnout na to ze neexistujici index do pole nevyvola nejakou vyjimku a muzeme pouzivat ceckovske konstrukce, ktere dost vyrazne zkracuji kod a kdyz se je clovek nauci cist, tak tim padem i zvysuji prehlednost kodu. Tezko si predstavim, ze nejaky odkojenec PHP prejde na modFlex.

Avatar

Autor komentáře: hermik

Datum vložení: 11.6.2004 2:18:34

Jenze prave tenhle "komfort" nasledne generuje spoustu tezko odhalitelnych chyb. Programovani prece neni soutez o co nejkratsi kod.

Avatar

Autor komentáře: spaze

Datum vložení: 11.6.2004 13:29:29

ten "komfort" se da vypnout (novy distra uz ho snad i vypinaji, takze spis zapnout :) a nebo se na to da povesit vlastni handler, kterej udela, to co chci..

o nejkratism kodu to zcela jiste neni, ale čitelnost neni zanedbatelna ;)

Avatar

Autor komentáře: Michal Kubeček

Datum vložení: 11.6.2004 22:19:44

Na druhou stranu je na Pascalu silně vidět, že se při jeho návrhu nikdo neohlížel na programátory, kteří v něm budou psát. V klasické knize o C od Kernighana a Ritchieho je například zmínka, že si dělali statistiku výskytu porovnání a přiřazení v běžných programech a na základě ní použili '=' pro přiřazení a '==' pro porovnání (protože přiřazení je obvykle zřetelně více než porovnávání na rovnost) - v Pascalu je to na základě didaktických úvah naopak. Podobně hodnotím fakt, že v Pascalu mají operátory porovnání nižší prioritu než logické operátory, což nutí neustále závorkovat výrazy typu '(a<i) and (i<b)'. Kdyby se autoři jazyka aspoň trochu zamysleli nad praktickou stránkou věci, nemohli takovou volbu udělat. Kdysi jsem byl nucen po pár letech, kdy jsem programoval převážně v C++, usednout k Delphi a měl jsem neodbytný pocit, že hlavní myšlenkou autorů jazyka bylo to, aby se v něm pokud možno nedalo programovat a sloužil pouze k výuce.

P.S. ta vaše "céčková prasárna" není syntakticky korektní výraz v jazyce C. Kdybyste doplnil závorky okolo přiřazení, tj. '(a==(b=c) ? (a=b) : (a=c))', dostal byste výraz funkčně zcela ekvivalentní '(a=b=c)'. Tím nechci tvrdit, že v céčku prasárny psát nejdou, jen že tohle nebyl dobrý příklad.

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 12.6.2004 0:18:08

Pánové K & R už ale opomněli udělat si statistiku toho, kolikrát se takový zdroják netriviálního projektu píše a kolikrát se čte a modifikuje. Kdyby to udělali, patrně by zjistili, že to druhé jednoznačně vede.

Nechci tím tvrdit, že použití begin místo { automaticky zvyšuje čitelnost. Jazyky typu Ada, tedy nepochybně i Flex, obsahují spoustu syntaktických konstrukcí, které to bezesporu dělají. Namátkou jsou to pojmenované endy, (volitelná) specifikace parametru procedury/metody pomocí jeho formálního jména nebo třeba explicitní přetypování.

V céčkové prasárně syntaktickou chybu nevidím, ale to možná není nejlepší příklad. Nicméně pokud mi do tří minut spolehlivě neřeknete, co tělá tohle (za předpokladu, že je struktura seznamu korektní):

struct S {
int v;
struct S * next;
};

struct S * first = 0;

void insert( struct S * n)
{
struct S * * pp;
for( pp = & first;
* pp && (*pp)->v > n ->v;
pp = & (*pp)->next);
n->next = *pp;
*pp = n;
}

tak své argumenty ještě zvažte. (Takhle se zkouší C na MFF UK.) Dobře, uznávám, v každém jazyce se dá prasit, ale v céčku mimořádně úspěšně.

Avatar

Autor komentáře: Priklad

Datum vložení: 13.6.2004 11:41:23

tak ja z toho nevysomarim aj keby si mi povedal co to znamena. pre mna prilis komplikovane...keby to bolo napr.: v Basicu trosicku to pochopim.

Avatar

Autor komentáře: Michal Kubeček

Datum vložení: 13.6.2004 12:41:30

Pokud tam není nějaký překlep v syntaxi, mělo by to být vložení prvku do uspořádaného spojového seznamu. Nezdá se mi to nijak přehnaně nepřehledné, s výjimkou toho, že fórum zlikvidovalo indentaci a rozlámalo řádky.

Jak už jsem napsal mnohokrát: čuně píše jako čuně v jakémkoli jazyce. Slušný programátor píše slušně v jakémkoli jazyce (skoro - ale tím rozhodně nemyslím C). Snaží-li se jazyk příliš aktivně bránit tomu, aby programátoři psali jako čuňata, výsledek je dvojí: za prvé jim v tom stejně nezabrání - to totiž nejde. Za druhé způsobí, že některé přirozené požadavky budou muset být řešeny naprosto krkolomným a neefektivním způsobem. Vzpomínám si na jakýsi status report projektu NTS (New Typesetting System, mělo jít o zcela přepracovaného nástupce TeXu), jehož hlavní myšlenka (převyprávěno a přibarveno) zněla: <I>kdybychom se, my blbci, tenkrát nerozhodli z estetických a formálních důvodu pro Javu, mohlo to být v C++ dávno hotové; takhle neděláme nic jiného než obcházíme omezení jazyka; a to nemluvím o tom, že na běžném počítači se uživatel nedožije výsledku</I>.

Avatar

Autor komentáře: 2P

Datum vložení: 13.6.2004 14:03:01

Vcelku přehledné...severokorejcům po těch letech už taky přijde normální věta: "Kim Čong-il přece nechodí na záchod, vždyť on je bůh!" :) Ale máte pravdu, prasit se dá v každém jazyce. Nicméně asi jen blázen to dělá záměrně a někdo by dokonce možná ocenil, kdyby mu to jazyk pomohl omezit, je jasné že nemá cenu někoho přesvědčovat nebo dokonce nutit.

Problém je v tom, že někteří zatvrzelí céčkaři si ani neuvědomují, že by mohli chtít od jazyka víc.

Né nadarmo se Java neprosadila na desktopu, i když nevím, o kterých omezeních jazyka se mluví.

Avatar

Autor komentáře: Michal Kubeček

Datum vložení: 13.6.2004 16:20:31

Já přeci netvrdím, že v jiném jazyce to nemůže být přehlednější. Ale ono to nebude nějak <I>výrazně</I> přehlednější. Pokud jste to tedy nemyslel tak, že použijete nějakou hotovou třídu ze standardní knihovny. Ale ani v tom případě nemáte pravdu - protože totéž mohu provést i v C/C++, třeba standard C++ library nabízí dostatečnou škálu kontejnerů, abych si v ní v 99 procentech případů vybral. Pokud jste to myslel tak, že byste místo '&' raději viděl něco jako 'address_of()' a místo '*' třeba 'dereference()', pak se asi nikdy neshodneme v tom, co je přehledné.

Je sice na první pohled hezké, že vám jazyky jako Java dávají určitý komfort a že se o spoustu věcí nemusíte starat. Jenže jakmile opustíte teorii a začnete programovat praktické aplikace, brzy narazíte na dva zásadní problémy. Za prvé za ten komfort platíte neúměrnou daň v podobě (ne)efektivity výsledné aplikace; ne nadarmo se Java a spol. prosazují jen v prostředí, kde se na korunu (tisíc, milion) moc nehledí a zoufale neefektivní aplikace se záplatují masivními investicemi do HW. Jenže ono to není vždy možné (a to bez ohledu na finanční zdroje). Za druhé zjistíte, že místo slova <I>nemusíte</I> je na místě spíš <I>nemůžete</I>. Pak jste totiž nucen relativně jednoduché akce obcházet neefektivními a krkolomnými konstrukcemi, které navíc rozbijí i tu krásnou strukturu a přehlednost.

Proto mám raději třeba C++, které mi na jednu stranu umožňuje programovat elegantně podle zásad OOP, ale na druhou mi nebrání v odůvodněných případech sáhnout přímo na data nebo na rozhraní systému.

Protože to, co mám na mysli, se těžko popisuje na konkrétních příkladech, zkusím to naznačit na určité analogii. Kdysi nás učil programování jeden vyučující, který si přečetl v příručce, že příkaz goto je původcem všeho zla a je ho třeba vymýtit za každou cenu. Když pak bylo potřeba v proceduře otestovat osm návazných podmínek smysluplnosti vstupních dat (tj. při nesplnění kterékoli z nich nemá smysl pokračovat), začal nás přesvědčoval, že než použít goto maskované za příkaz 'exit' v Turbo Pascalu (analogie céčkového 'return', tedy předčasné ukončení procedury), je přehlednější vnořit do sebe osm příkazů 'if'. Ano, vím, že v dnešních moderních jazycích se to řeší výjimkami, ale právě to je dokladem, jak hluboce se mýlil - protože ta výjimka opět není nic jiného než maskované goto. Poučení je, že některé úlohy sice lze řešit "čistě" (v tomto případě těmi osmi vnořenými ify), ale za cenu, že to bude proti faktické podstatě toho, čím jsou ony zásady "čistoty stylu" motivovány.

Avatar

Autor komentáře: 2P

Datum vložení: 13.6.2004 20:27:51

S tím prvním odstavcem v podstatě souhlasím, něco podobného jsem psal v (tom nepodepsaném) příspěvku výše.

A o Jave jste začal mluvit vy. Flex a Ada jsou normální kompilované jazyky (typicky bez GC, i když Ada jej podporuje). A rozdíl efektivity těchto jazyků a efektivity např. C++ je pod úrovní ročního vývoje HW. (Čímž neříkám, které jsou rychlejší.)

Avatar

Autor komentáře: Marek Paška

Datum vložení: 13.6.2004 22:31:20

Hlavně jsem nevšiml, že by Java byla pomalá. Ano, Swing je pomalé. C# je rychlý všude. Za pár let bude v C# celý desktop (minimálně Wokna a Gnome) a nikdno nad tím nebude moc přemýšlet. Pravda, ty paměťové nároky... :-)

Předchozí odstavec je jen taková malá provokace. Proti čemu ale musím ostře a vážně protestovat je to obcházení Javy a "v C++ by to bylo hotové." To může říct jen člověk, který nic lepšího, než C/++ nepoznal. Napište 10k řádek kódu v Adě95 a pak poznáte, co znamená "chtít od jazyka víc" a "mám to dávno hotové, zatímco ty se hrabeš v debuggeru". Ale to nic, tenhle přístup mají všichni, co srovnávají jen C/++, Pascal a Javu. Jsou i jiné přístupy a filozofie (ale pořád se bavíme o "konzervativních" imperativních jazycích).

Avatar

Autor komentáře: Michal Kubeček

Datum vložení: 14.6.2004 0:41:39

Slovy klasika: protestovat proti tomu můžete (klidně i ostře a vážně), ale to je tak všechno, co s tím můžete dělat. :-) Pouze jsem reprodukoval slova člena týmu, který se pokoušel realizovat v Javě větší projekt a který původně Javu vyhodnotil jako optimální jazyk pro realizaci toho projektu. Právě pro její skvělé teoretické vlastnosti - o to tvrdší byl střet s praxí. Znovu podotýkám, že pomalost výsledné aplikace byla jen polovinou problému. Druhou polovinou byly ty neustálé boje s jazykem, který sice formálně umí cokoli, ale jakmile potřebujete udělat něco, s čím autoři jazyka nepočítali, máte víceméně smůlu.

Avatar

Autor komentáře: 2P

Datum vložení: 14.6.2004 1:59:55

zatímco autoři C počítali zřejmě se vším, stejnětak autoři instrukční sady x86!-)

Avatar

Autor komentáře: Michal Kubeček

Datum vložení: 14.6.2004 9:46:35

Ať se vám jazyk C líbí nebo ne, je tady už třicet let a přestože někteří věrozvěstové už třicet let prorokují (nebo si spíš toužebně přejí) jeho smrt, je stále tady a je v něm napsána většina systémů a aplikačního SW (počítám-li k tomu i C++). Takže je spíš na místě začít uvažovat o tom, jestli jeho obliba náhodou nebude do značné míry dána tím, že reprezentuje (pro některé účely C, pro jiné C++) vhodný kompromis mezi teoretickými koncepcemi a praktickou použitelností. Pro velkou skupinu programátorů tomu tak zjevně je.

Avatar

Autor komentáře: Marek Paška

Datum vložení: 14.6.2004 11:07:54

Já bych jenom rád slyšel, v čem je ta Java tak špatná. Samozřejmě má nevýhody. Ale pro napsání nástupce TeXu by nemusela být špatná.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 14.6.2004 11:12:55

Pánové, nezdá se Vám, že se to tady už trochu zvrhlo? Pokud chcete, prodiskutujte si tu záležitost jinde a třeba napište srovnávací článek, já ho rád otisknu a zaplatím, ale nechte už toho OT, prosím ;-)

Avatar

Autor komentáře: kexik

Datum vložení: 3.7.2004 22:02:43

linearne zretazeny zoznam, PUSH ?

Avatar

Autor komentáře: Tichý M.

Datum vložení: 13.12.2004 20:56:47

Ty vaše "Céčkovské konstrukce" by jste neměl používat, pokud nevíte co znamenají a co dělají. Nejsou určeny pro začátečníky a nejsou to žádné prasárny, ale důkladně promyšlené logické konstrukce. A také nechápu souvislost deklarace proměnné s rysy jazyka. Právě C vás naučí čistému programování a ne těm prasárnám, které někteří programátoři v PHP předvádějí.
Než začnete kritizovat, měl by jste vědět, že dělám jak v C tak v PHP a mimo jiné i v C++ a C#.

Avatar

Autor komentáře: Drogo

Datum vložení: 13.6.2004 14:19:56

Pojďte udělat soutěž kdo napíše nejspraseňejší skript na dané téma ;)

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 13.6.2004 15:28:25

Obávám se, že s něčím takovým bych nemohl souhlasit ;-)

Avatar

Autor komentáře: Čermi

Datum vložení: 13.6.2004 21:37:39

Anebo kdo takový skript přečte aniž se naštve :)

Avatar

Autor komentáře: Zerryk

Datum vložení: 14.6.2004 17:29:56

Takový nápad už tu byl dávno, má mnohaletou tradici... <a href='http://www.de.ioccc.org/main.html' target='_blank'>http://www.de.ioccc.org/main.html</a>

Zpět na článek | Úvodní stránka Interval.cz