Vcera specham na hlavaku potrebuju koupit jizdenku, aby mi neujel vlak, prijdu k automatu, tam listing PCI device a loading GRUB... GRUB loading error 13 nebo tak neco
Potesilo me ze to jede na Linuxu a ani mi nevadilo ze mi mozna kvuli tomu nefunkcnimu automatu jeden vlak ujel :)
Automat na jízdenky řízený Linuxem? Tomu říkám zvrhlost! To už se rovnou můžou dělat nůžky s Linuxem. Jen další důkaz krize IT. Člověk, který něco takového navrhne, snad ani nezaslouží zápočet v prvním ročníku za takové řešení triviálního problému.
bohuzel Vy si nezaslouzite zapocet ani v nultem rocniku, jelikoz dnesni automaty na prodej jizdenek mohou byt dosti komplikovane. Nevim kdy jste naposledu kupoval jizdenky na vlak, ale nodokazi si predstavit jak takovy automat patlate v asembleru. Koupit hw pro embedded linux neni dnes zadny problem, a je to velice elegantni reseni. Verim tomu, ze v prumyslu existuji nuzky ktere jsou rizeny linuxem. Prosim otevrete oci, a zapomente ze automat se rovna 5 tranzistoru dve relatka ci jeden 8051.
Když někdo neumí naprogramovat automat na jízdenky v assembleru, ať raději neprogramuje vůbec! Jízdenku na vlak jsem si v automatu na jízdenky naposledy kupoval dnes ráno a opravdu nevidím nic tak komplikovaného napsat to i třeba v tom assembleru. Práce maximálně na týden, včetně seznámení se s hardwarem. Mělo by to několik výhod - nebylo by nutné dovnitř cpát nějaký 32bitový ARM (předpokládám, že něco takového v tom bude, jestli tam rovnou nebude embedded PC - proč troškařit, že, stát alias daňový poplatník nám to zaplatí a lenost a neschopnost myslet řady dnešních tak zvaných IT expertů je nekonečná), nepotřebovalo by to několik stovek KB (možná i jednotek MB - co já vím...), a pravděpodobně by se nestalo, že bychom na displeji mohli uzřít zmiňované hlášení.
Chození s kanonem na vrabce není vůbec příznak toho, že by návrhář (ať už SW nebo HW) odváděl svou práci dobře. Nevím, o jak sofistikovaný automat se jednalo, ale automat na hlaváku v Praze se rozhodně pomocí 8051 zvládnout dá - a pokud se Vám zdají mé úvahy příliš přízemní, pak to můžeme vzít z druhé strany - rozhodně to není problém, na nějž je nutné nasazovat 32bitový procesor s ochranou paměti a operačním systémem. A pokud by někdo u mě takovýto druh problému řešil tímto způsobem, pak by na zápočet mohl zapomenout.
Je zřejmé, že ve zmíněném automatu je 90% kódu úplně zbytečných a jediné, k čemu slouží, je zanášení riziko chyb a nestability.
1) nevím, na kolik asi ČD vyšel ten "odborník", co navrhnul k tak "komplexnímu" problému, jako je tisknutí jízdenek, použít Linux
2) nevím, jaký je Váš vztah k assembleru, nebo k programování vůbec, když pro Vás představuje validace kreditky příklad netriviální softwarové úlohy; omlouvám se, ale tato Vaše úvaha jen podepřela mé tvrzení o úpadku v IT světě - pokud jste snad náhodou také nějaký vývojář.
Z pohledu managora --- starý PC je možno koupit za 5000 Kč, rozdíl cen mezi programátorem v C a ASM je výrazně větší, tak se to dělá v C na PC.
Ze stejného důvodu se třeba píší serverové programy v Javě, je to jednodušší si koupit server s 8GB RAM a zaplatit tupé programátory (kteří si při programování nejsou schopni kontrolovat, kam sahají do paměti) než si koupit server s 128kB RAM a zaplatit chytré programátory.
Ad ta validace kreditky --- nepřijde mi to nijak jednoduché psát všechny ty šifrovací algoritmy.
Co říkáte je mi jasné, jen se s tím neztotožňuji. Však jsem řekl hned na začátku, že je to jen příklad degradace IT - pokud máme přemnožené tupé programátory.
Ad validace - není to zas tak děsné, jak to na první pohled může vypadat. Lidi mají jen nějaký nepochopitelný strach před matematikou v assembleru. Ale doba se změnila a dneska je assembler pro tak zvané programátory něco, čeho je nutno se štítit a myslet si, že je v něm spousta věcí na hranici udělatelnosti. Možná by nebylo od věci už na školách donutit studenty, aby udělali nějaký rozsáhlejší projekt komplet v něčem jako je assembler, i kdyby to už v životě neměli k ničemu potřebovat - podobně jako se učí integrovat, derivovat a řešit dif. rovnice ručně, i když máme Mathematicu a podobné vychytávky. Jedině tak se dá získat vhled a tříbit ostrovtip.
Jedině tak???
Problém je v tom, že dnešní průměrný programátor pracuje na projektu podstatně složitějším, než na jakém pracoval průměrný programátor před 20-30 lety. A aby někdo stačil v nízkoúrovňovém jazyce produktivitě průměrného programátora, který má k dispozici vysokoúrovňový jazyk a další pokročilé nástroje, nestačí mu být dobrý programátor, ale musí být geniální programátor. A geniálních programátorů je na světě mnohem méně než řešených úloh. To je ekonomie, s tím se hnout nedá.
Dobrá, tak jedině ne, to jsem přehnal, ale rozhodně se tak dá tříbit velmi výrazným způsobem.
Tohle mě vždycky rozesměje - co víte o tom, jaké problémy řešil průměrný programátor před 20-30 lety. Sám už 20-30 let programuji a mohu s čistým svědomím říct, že co říkáte je směšné. Programátoři už více méně 50 let řeší dokola pořád ty samé problémy. Že jsou dnešní projekty podstatně složitější je pouze iluze - je to past, do které se sami chytáme. Nejsou o nic složitější než projekty dříve, tedy rozhodně ne podstatně, jen jsme se nachytali do spirály, kdy v zájmu ušetření nechceme investovat do optimální cesty, ale do nejlevnější cesty, která vinou toho, že není optimální, vede k zbytečnému nárůstu složitosti, který se pak musí řešit kvantitativně s odůvodněním, že kvalitativní řešení by bylo příliš drahé, a tak to jde pořád dokola ve stále větších obrátkách.
Programátoři, o nichž je řeč, naopak nebudou v produktivitě těm opravdovým programátorům stačit nikdy - hodnotíme-li programátora kvalitou jeho výtvoru. Že dnes není zájem o kvalitní software a tím pádem stačí k jeho přípravě armáda tupců, co umí akorát klikat myší, je také jedním z příznaků úpadku.
Tohle není ekonomie, tohle je bordel. V ekonomii nás zajímá optimální řešení, což tohle není a nemůže být.
Jsem rád, že jsem Vás rozesmál. Samozřejmě, jelikož je mi pouze pár roků přes třicet, nemohu přesně vědět, jak složité problémy se tenkrát řešily. Povězte mi, prosím:
1. Jaká byla úroveň interakce obsluhy počítače s počítačovým programem v roce 1987 a 1977
2. Jak náročné distribuované výpočty se tenkrát prováděly a jaké paralelní počítače a algoritmy byly k dispozici v roce 1987 a 1977
3. Jak rozsáhlé počítačové sítě se používaly v roce 1987 a 1977
4. Jaké databázové systémy se typicky používaly v roce 1987 a 1977, jak to bylo s konkurenčním přístupem, replikací dat, transakčním zpracováním apod.
5. Jaké textové procesory a tabulkové kalkulátory byly k dispozici v roce 1987 a 1977
6. Jaké typické počítačové hry se v roce 1987 a 1977 hrály (zejména mě zajímá situace v oblastech 3D enginů, MMORPG a realtime strategií)
7. Jaké CAD, CAM, ... prostředky se typicky používaly v podnicích a ateliérech v letech 1987 a 1977
8. Jaká byla obdoba webu v roce 1987 a 1977 a kolik požadavků za sekundu musel tehdejší server obsloužit, jak složité byly redakční systémy, typické CRM či ERP systémy a jejich obdoby
Rozumějte, já nezpochybňuji, že velká spousta algoritmů a technik byla vymyšlena před dávnými lety. Ale dnešní programy toho zkrátka musejí dělat strašnou spoustu. A tím pádem je potřeba zvýšit granularitu a to nejenom z důvodu úspory času, ale podle mého názoru i pro dosažení rozumné udržovatelnosti programů. Osamělý génius prostě bez disciplíny a rozumné metodologie prostě velký projekt sám nezvládne a i kdyby ano, tak až Velký Génius z firmy odejde, bude mít firma Velký Problém.
Klikači myší dělají přidělenou práci a nad nimi jsou lidé, kteří umějí víc a práci rozvrhují, analyzují, řídí. Nadávat na "neschopného" klikače mi přijde podobné jako nadávat na soustružníka, že nedokáže takové věci, jaké zvládne nástrojař. Software se holt dnes vyrábí "továrenským" způsobem a dělá se hrubou silou, rychle a relativně levně. Nemám pocit, že by dnešní programy (až na specifické oblasti) byly méně kvalitní než ty včerejší. Ano, možná jsou někdy pomalejší (není vždy pravidlem!), zaberou více paměti (také nemusí být pravda), ale umějí víc věcí než jejich předchůdci, to se jim dá podle mě těžko upřít.
Ale on ma Bigtop vpodstate pravdu.
IT obecne upada, ac pri povrchnim pohledu se to muze jevit jako opak.
Prumerna kvalita lidi, kteri se dnes v IT pohybuji, je ve srovnani s dobou pred 10, 15, 20 lety otresna. Najelo se proste na extenzivni zpusob "hospodareni", ktery napr. v zemedelstvi :-) casem vede do zahuby. Pochybuji, ze by to v IT bylo jinak - komplikovanost a pocty nejruznejsich vrstev softwaru, ve kterych uz lide pomalu ztraceji orientaci bude casem tak velka, ze bude prinaset vic problemu nez uzitku. Asi se to nezda, ale je to uz i energeticky problem. Prumerne PC ma dnes na reseni pomerne trivialnich uloh naprosto neuveritelnou spotrebu energie - a spoctete si, kolik tech PC bezi a porad pribyvaji.
Proste cesta, kdy mnozi lide jako programatori zachazeji s necim, cemu uz ani poradne sami nerozumeji rozhodne nevede ke svetlym zitrkum a rozhodne bych vyuku assembleru nekolika typickych architektur nezatracoval!!
Mimochodem, komercne programovat v Assembleru je v nekterych oborech vyhodne i dnes. Zkuste treba delat v nejakem vyssim jazyce programy pro male mikrokontrolery od Atmelu, ktere maji treba 2kB Flash pameti :-)
a copak je vlastne to vase IT??
a co bylo IT pred 20-30lety?
neni to nahodou tak, ze dnes IT nejak zasahuje do drtive vetsiny oblasti zivota? pocitac ma v praci temer kazdy, tovarny jsou rizeny a optimalizovany pocitaci, komunikace je pojem sam pro sebe,...
kdo je jeste ajtik? je to programator? je to business analytik? je to spravce site? je to spravce databaze? je to webmaster? je to clovek klikajici na topl level urovni obrazovky tak, aby odpovidaly procesum? je to clovek, ktery dela reporting? je to obchodnik?
pred 20-30 lety to bylo asi dost jinak, ze? kolik bylo v domacnostech a firmach osobnich pocitacu? kolik tedy bylo potreba uzivatelskych aplikaci?
pro mne za mne si klidne napiste extremne optimalizovany ERP system s vlastnim BI reportingem cely v asm, ale rekl bych, ze nez ho napisete, bude vyvoj uz nekde uplne a naprosto jinde a tyto technologie budou zastarale a nebudou prinaset zadnou vyhodu...
na vseobecny upadek cehokoliv (mladeze, moralky, kultury, ...) nadavaji vsichni tak nad tricitku a to rokazatelne minimalne uz od antiky :)
Dobre - ja to poopravim:
Dnes je programatorem kazdy mamlas. To drive nebyvalo. Podle toho pak aplikace vypadaji, diky tomu pak spotrebovavame mnoho zdroju, ac bychom nemuseli. Dalsim aspektem je, ze nezanedbatelny pocet problemu, ktere resime, je tvoren UMELE VYTVARENYMI problemy, ktere jsou jen proto, aby se tocily penize. Technicky duvod to nema zpravidla temer zadny.
Proc bych psal ERP v assembleru ? Nejsem na hlavu padly. To bych nedelal ani pred 20 lety, clovece. Jsem zvykly pouzivat takove nastroje, ktere jsou v dane situaci technicky optimalni.
Na vseobecny upadek se nadava sice uz od Antiky, ale zrovna v nasem oboru je to pomerne dobre meritelne (mam na mysli upadek technicke elegance a schopnosti opravdu resit technicke problemy).
nejak moc se vam tam opakuje "technicky"... svet IT uz zdaleka neni jenom o technice a technologii...vazne ne
stejne jako libovolny jiny obor, ktery se rozvinul z pocatecni objevne faze
a tempo uz neudavaji technici a technologove...to jenom cast OSS "komunity" porad nemuze pochopit ze to vazne neni o technologiich nebo o kodu, ale zejmena o jejich pouzitelnosti, rovnovaze mezi prinosy a naklady a inovacich...
No jasne. PC ma dnes na stole kazda sekretarka, ktera nema ani potuchy co to vlastne je.
A jak to souvisi s touto debatou ? Nebo se to vase "moderni" IT obejde bez techniky a technologii a staci mu jen pravnicke a ekonomisticke zvaneni ?
Co si predstavujete pod takovym pojmem "inovace" ? Co pod pojmem "pouzitelnost" ? Vytvareni umelych problemu, diky kterym prodavate "pouzitelne" veci, aby je lide mohli resit a penize se tocily ? :-) Nebylo by lepsi resit jen skutecne problemy a nezadelavat kratkozrace na nejake fatalni v budoucnu, ktere uz pak resit ani nepujdou ?
Vas zpusob vyjadrovani vas do jiste miry odhaluje. Modni "otomismus" v kazde druhe vete (vsechno je u vas "o tom")...tezko presvedcovat mlamoje, uvezneneho v modni ekonomisticke klicce. Ono se to v historii vzdy nakonec ukaze. Nakonec je treba vzdy se obratit na ty, kteri umeji veci delat, protoze prichazeji chvile, kdy zvaneni a vytvareni pseudoproblemu jaksi k preziti nepostacuje.
Celá západní společnost je v nejrůznějších oblastech v moci expertů a rádobyexpertů, kterým většina lidí nerozumí; doba renesančních osobností a pansofistů typu Aristotela je za námi. Je třeba paradoxní, že lidé, kteří nemohou rozumět většině otázek, které jsou v podrobných programech politických stran, mají moc nad tím, která politická strana bude nakonec ovládat stát. Funguje to samozřejmě špatně, ale nějak to funguje.
ad 1. Tehdy se předpokládalo, že u počítače nesedí pologramotný blbec. To je asi jediný rozdíl, jinak se vzájemně mezi počítačem a člověkem předávaly stejné informace.
ad 2. Problémy byly stejné, jen technická úroveň nižší. Rozdíly byly spíše na numerické úrovni při rozhodování o volbě výpočtového modelu. Ale řekl bych, že zrovna v téhle oblasti je to snad pořád stejné, tj. že tady snad programují stále lidi s odpovídajícím vzděláním, protože plýtvat prostředky zde vychází pořád stejně draho, jako před třiceti lety.
ad 3. Pokud bychom to normovali možnostmi tehdejší techniky, tak relativně mnohem větší, než dnes.
ad 4. Možná Vás to překvapí, ale bylo to v podstatě stejně, tj. transakce samozřejmě ano, konkurenční přístup také, apod. Jen kapacita a rychlost byla nižší. Mluvím samozřejmě o profesionálních databázových systémech, ne o menších databázích typu dBase.
ad 5. WordStar, Multiplan, Visicalc... Uměly v podstatě vše, co bylo třeba. Ono se stejně ukazuje například u MS Office, že s roustoucím číslem verze roste procento funkcí, jež uživatel nikdy nepoužije. Takže zde platí přímo ukázkově co jsem řekl - problémy si tu dělají sami vývojáři tím, že vymýšlejí nepotřebné nesmysly. Neříkám že vše nové je nepotřebný nesmysl, ale jejich podíl v aplikacích stále roste.
ad 6. Na počítači s 64 KB paměti běžícího na 1 MHz se dala simulovat jízda autem z pohledu řidiče (např. TestDrive na C64), hrát SimCity Classic, střílečky apod. nepočítám. Otázkou je, jestli dnešní 2,4 GHz procesory, stovky MB RAM, GB disků a grafické karty, které potřebují dnešní hry, odpovídají tomu výsledku. Jestli by na to třeba nestačilo méně.
ad 7. Síťové modely, na specializované modelování specializované balíky, jinak to nešlo.
ad 8. Tohle je poměrně absurdní přepočet. Tehdejší servery neměly k dispozici dnešní procesory a dnešní paměti. Obojí je dnes o několik řádů jinde. Pokud uvažujeme, že dnešní počítače jsou tisíckrát výkonnější než tehdejší, měly by být teoreticky schopny obsloužit tisíckrát víc požadavků než tehdy, což je nereálné i z důvodů omezení periferií. Takže vlastně na obsloužení jednoho požadavku zbývá víc strojového času, než kdysi, neboli programátor nemusí tak žhavit závity, aby přišel na nějaký vychytaný způsob, jak to stihnout. Pokud jde o složitost systémů - opět... To je otázka, jestli je ta složitost nezbytná, nebo naopak zcela zbytečná. Já se kloním k té druhé variantě.
Že dnešní programy dělají víc v drtivé většině zbytečných věcí není omluvou, ale naopak.
1) tehdy se nepredpokladalo, ze by se z pocitace stala masova zalezitost
2) problemy resene s pomoci IT se velmi meni - nejde o numericke a vypoctove modely, ale o integraci, spolupraci, komunikaci a zejmena znalost vecne problematiky (tj. nejen jak neco zapsat do kodu, ale hlavne co a proc tam psat)
3) normovanim ale naprosto zamlzujete masove rozsireni a z nej plynouci nesporne prinosy
4) zatimco dnes jsou v jadru technologicky stale podobne, ale rapidne vzrostla pouzitelnost a spravovatelnost, technologicky pritom mirime k systemum objektovym
5) pokud umely vse, proc lide kupuji nove verze? je jiste rozdil mezi psanim nekolika dokumentu tydne a potrebami nadnarodni firmy
6) tomu rikate simulace? a co takhle pong a simulace wimbledonu?
8) z ceho vychazite pri predpokladu, ze tisickrat rychlejsi procesor znamena tisickrat vice obslouzenych pozadavku??
jde opet o ekonomickou stranku - zhavit zavity programatora stoji vic, nez koupit trochu lepsi HW (mimochodem on dneska i ten nejhorsi bude stacit)
to je jako ruzne vyrabena auta - byla by super a skvele odladena mistry v oboru, krasne elegantni a kazde unikatni jedinecny original, ale temer nikdo by si je nemohl dovolit...
cili neexistovalo by ani nic jako silnicni sit, protoze kdo by stavel silnice pro par zbohatliku a jejich radovanky, ze?
ale kdo vam brani pracovat oldskoolove, najmout par spickovych programatoru a optimalizovat a optimalizovat...
pokud je tomu skutecne tak, a lide chteji vzdy nejvyssi kvalitu, budete mit uspech, pokud to tak neni, jak tvrdim ja a lide chteji optimalni kvaitu za rozumne penize, pak vase aplikace budou nekolikrat tak drahe a jejich reany prinos bude minimalni
muzete to ale porad zkusit treba jako subdodavatel specializovanych algoritmu nebo tvurce aplikaci pro provozy vyzadujici vysoke procento spolehlivosti pri zachovani minimalnich naroku na kapacity...
Díky za odpověď, v některých otázkách nejsme ve sporu (paralelní výpočty skutečně nejsou pro "junior javisty"), u jiných mám pocit, že jsme se trochu dostali do situace, kdy jeden mluví o voze a jiný o koze. Já chápu Vaše znepokojení nad tím, že v IT občas převažuje kvantita nad kvalitou a že se řeší umělé problémy. Ale to je případ současné západní ekonomiky a společnosti jako takové.
1) Také to nevím, ale snažím se vysvětlit jejich motivaci.
2) Vývojář nejsem. Psal jsem v ASM 8080, Z80, 8048+, a 8086 (80386 jen okrajově, a třeba math co-processor jsem si v praxi v ASM ani nevyzkoušel). Psát dnes automat na jízdenky v ASM považuji za zbytečně složité. Zřejmě totiž budete třeba muset při validaci karty provést šifrování (jak tu už padlo), možná obsluhovat modem, a výsledek transakce možná zapsat na disk (zřejmě flash disk). Neříkám, že se to v ASM udělat nedá, ale proboha proč?
K tomu zbytku: na světě je pár skvělých programátorů (mimochodem drahých), a spousta průměrných (plus něco debilů). Bohužel řešených úloh je tolik, že musíme často vystačit s těmi průměrnými, a často i podprůměrnými kousky. Je to o nabídce a poptávce.
on zrejme biktop proste nepochopil princip vrstev
zajimave, ze v sitich by s tim asi souhlasil
kdy vyssi vrstvy vyuzivaji ty nizsi k tomu, aby na vyssi urovni umoznily efektivnejsi reseni nejake podmnoziny problemu (s tim, ze efektivni reseni jine mnoziny na sve urovni znesnadni nebo znemozni)
psat ERP nebo i textovy editor v asm je samozrejme naprosta blbost vhodna mozna pro hracicky, pochybuju, ze by vyvojar, ktereho oznacujeme za "skveleho" vubec o necem takovem vazne uvazoval
Bavili jsme se o automatu na jízdenky :-)
S vrtsvami souhlasím, ty byly, jsou a budou vždycky. Jen je třeba, aby jich byl optimální počet a aby byly optimálně provázané. A fakt, že v tak úzce profilované aplikaci, jako je automat na jízdenky, potřebuji k interakci s uživatelem pomocí jednoduché jednoúčelové klávesnice a tisku jízdenky na jednoúčelové tiskárně celý multitaskový operační systém včetně loaderu a MMU je příklad zhovadilosti a nikoli optimalizace pomocí vrstev.
ta zhovadilost ale prestava byt zhovadilosti, kdyz vezmeme v uvahu nasledujici:
- ten operacni system je jiz vytvoreny, vyzkouseny, bezici na standardnim nikterak drahem HW, je mozne pro nej pomerne snadno programovat aplikace
- automat na jizdenky mozna nebude az tak neprovazany s okolim, jak by se mohlo zdat, jizdni rady, platebni a jine karty, vzdalena sprava, ... to vsechno bude vyzadovat komunikaci treba na TCP/IP
Lze. Pokud to treba delate pro Atmel ATMega 128, bezici na 20 MHz, lze to tak delat. Pameti je relativne hodne, procesor je rychly. Ve chvili, kdy mate za ukol udelat program pro maly mikrokontroler bez vnejsiho zdroje hodin - treba pouze s internim oscilatorem na 1MHz, nekolika malo kB flashe a zalezi vam na spotrebe, pochopite, ze udelat to vAssembleru je nakonec daleko lepsi i kdyz to da trochu vice prace.
To já jsem zase v letadle Airbus viděl obrázek tučňáčka (ten, co se objevuje při bootu na framebufferu), pak boot kernelu a hlášku "NFS server not responding" :)