Kolik programovacích jazyků budeme nakonec v tom jazykovém babylonu mít. Napsat programovací jazyk není žádné umění. Navrhněte syntaxi a naprogramuji vám to. Stačí lexikální analyzátor a rekurzivní sestup. Semestrální práce na FEL ČVUT pro předmět Programovací Jazyky II. včetně interpetu bytecode (nebo jiného stromu)
Taky si kolikrát říkám, když přijdu do pekárny:
Kolik druhů pečiva budeme nakonec v tom pekárenském babylonu mít? Vždyť já vlastně potřebuju jen chleba a rohlíky! Že někdo občas potřebuje i veku? Na co? Však když se ty rohlíky nakrájí podélně, je výsledek skoro stejný!
pouzivani prikladu vede vzdy k tomu, ze je treba vynalozit mnozstvi energie na to zjistit, je-li priklad vhodny. Tento styl komunikace ponechme prosim parlamentu, zive, abclinuxu a jinym.
Proc se nepoperete skutecne s nadhozenym problemem predrecnika v obecne rovine. Jake vyhody a nevyhody prinasi ruznotvarnost. Kolik te ruznorodosti je potreba pro efektivni vyvoj. V diskuzi jiz lecos zaznelo. Je moznost paralelniho programovani dostatecnym dovodem, aby nejaka firma tento nastroj zaradila do sveho nastrojoveho repertoaru. Jake vykonove ztraty je treba zakalkulovat, jestlize nasazuji v ramci jedne firmy, projektu vice nastroju nebo se koncentruji na malou podmnozinu.
Jak je to s pracovnimi silami. Jsou personalni pracovnici sto rozlisovat takove spektrum ruznych dovednosti s tim, aby firme zajistili odpovidajici pracovniky?
Omlouvám se, ale nešlo to. Předřečník totiž nenadhodil problém, jak říkáte, pouze se chvástal tím, že umí napsat za jeden semestr překladač. Myslím, že téměř každý, kdo má za sebou předmět typu "výstavba překladačů" to zvládne taky a nevšiml jsem si, že by se tím tady někdo chlubil (pokud ano, opravte mě).
Samozřejmě mohu teď ke všem zdejším článkům o POV-rayi napsat komentáře typu "napsat vlastní raytracer je náplní semestrálního projektu předmětu počítačová grafika", ale bude to zhruba stejně relevantní tlach.
A ja bych je doplnil, ze predrecnik si zrejme neuvedomil, ze je rozdil napsat prekladac a prekladac pro kompletni a pouzitelny jazyk.
Ve firme kde pracuju udelali kdysi tu chybu, ze do produktu vlozili vlastni skriptovaci jazyk. No a ted padame na hubu, rozsirujeme vlastnosti jazyka misto dalsich vylepsovani celeho systemu a zakaznici se furt ptaji: "kdy bude podporovat tuhle vlastnost jazyka? a tamhletu? proc to ve vasem skriptu nejde zapsat stejene jako v jazyce x?".
A mimochodem, obcas se taky ptaji proc jsme nepouzili Python nebo Lua :-).
Beru ;) prosil bych zapouzdritelny jazyk se syntaxi ruby a pametovou narocnosti lua (par stovek bajtu na korutinu).
To ze v prvnim dilu serialu potkate pouze jednoduche vyrazove konstrukce totiz nic nerika o samotnem jazyce. V lua se pisi simulace o desetitisicich samostatne bezicich "procesu".
Nijak nezpochybnuji uzitecnost predmetu typu vystavba prekladacu, ale jazyk je casto vic nez jen syntaxe. Efektivne implementovat vlastnosti jako uzavery nebo podporu pro paralelni programovani s minimalni spotrebou pameti uz je trosku umeni.
Uvidíme.... Uznávám, že Lua mi co se implementace do C přijde lepší než třeba Python. Sám již delší dobu pátrám po jednoduchém skriptovacím jazyce a zatím jsem vždycky skončil tím, že dotyčnému uživateli (cílový zákazník) připravím framework v C++ plus hromádka maker, a nepozná, že to je C++. Má se ten člověk učit syntaxi Céčka (bez extrabuřtů), pascalu, Visual basicu, pythonu, Luy, rubyho, javascriptu, nebo kýho čerta (nehledě na to, že ten člověk doteď píše v OFP scriptu (scriptovací jazyk Operation Flashpoint a Army od Bohemia Interactive Studia... doporučuju nastudovat, možná jako odstrašující příklad)
Ano, ve školních podmínkách není vpodstatě žádný problém udělat si vlastní překladač i interpret zkompilovaného bajtkódu. Ale bude to trpět všemi vlastnostmi školských projektů - sice to bude nějak fungovat, ale bez pořádných harness testů, pomalu, paměťově neefektivně, prostě typický bastl (stačí se podívat na kód, co vyleze z lexu a yaccu). Dost úspěšných jazyků (poslední implementace JS, Lua, Iron Python) si dávají právě důraz na efektivitu, což je poznat - spousta JS aplikací by si například na starých interpretrech ani neškrtla.