Nedávno jsem se setkal s dost zpraseným JSON parserem - kdyby ten člověk znal alespoň základy teorie automatů
Jasne, takovi lide by parser psat nemeli. Akorat teda nechapu, proc by vubec nekdo mel psat parser JSONu, kdyz to je stokrat hotove.
To víc jak stokrát :-) . Otázka ale, jestli se to dá v daném prostředí využít, což se v našem případě nedalo - potřebovali jsme použít rozhraní "legacy" systému (nevím, jak to správně napsat česky), do kterého se moc nedalo hrabat (nekoncepčně a patlalsky napsaný perl kód = brainfuck). Tento systém nám posílal JSONy v dost nestandardním kódování a formátu. Proto jsem potřeboval vzít malou a lehkou opensource knihovnu, do které se dá relativně snadno hrabat, a těch pro .Net zas tak moc není.
Pupi má pravdu. Znám několik lidí, které už dvacet let živí programování, začínali na Turbo Pascalu, Fox Base, později Fand, Delfi, ( vůbec nemám tušení v čem nyní, nevystudovali žádnou VŠ. Tím pádem ani na socialistické SŠ nemohli nikde přijít ke znalosti teorií o kterých eMko píše.
Mohli k nim přijít z knížek nebo se "naučili" tvrdou cestou, zkušenostmi stylem pokus-omyl. Nicméně životní zkušenost většinou znamená povrchní znalost, "píše se to takhle/odteď budem to psát takhle, protože něco jinýho nás vyliskalo". Hlubší znalosti znamenají "napíšeme to takhle, protože kdybychom to napsali jinak, mohlo by nás to vyliskat". A to
je rozdíl.
Za 10 rokov uz ani nebudem vediet ako jednotlive veci funguju a nebudem vediet ani definiciu nejakeho konecneho automatu(teraz ju viem, lebo sa ucim na statnice ). Proste, ked sa clovek tomu nevenuje, tak to zabudne.
Vzhledem k tomu, že k věcem jako jsou automaty, regulární výrazy (kolikrát jsem v práci slyšel "hele, potřebuju regulárem parsovat a
n.b
2n.c
(n-1), jak to mám napsat?")... se člověk dostává dnes a denně, byť jsou skryty v kódu (a v případě C, Javy nebo C# občas dost hodně skryty mezi boiler-plate kódem). Proto nevěřím, že bys to za 10 let zapomněl. Jinak definici konečného automatu bych taky dost potil (a mám dokonce za sebou trapas, že na státnici jsem definici zásobníkového automatu ze sebe nedostal a musel mi pomáhat zkoušející, díky čemuž jsem ji měl za 2), ale já jsem ve svém příspěvku nepsal o definicích, ale o principech, na kterých je to postavené. To je to, co v praxi pomáhá, ne definice, byť se jim člověk na výšce nevyhne.