Přejít k navigační liště

Zdroják » Různé » Konec starých programátorských časů

Konec starých programátorských časů

Články Různé

„Tak nám to programátorské řemeslo upadá,“ pravila jednoho dne zamyšleně posluhovačka paní Müllerová Josefu Švejkovi. „A dejte pokoj,“ odvětil oslovený, který si, sedě u terminálu, mazal soubory. „Zase? Co já pamatuju, tak upadalo už v roce 1955, 1968, 1973, 1985, 1991, 1995 a od roku 2000 každoročně…“

Nálepky:

Staré časy jsou oblíbeným tématem pro diskuse lidí, kteří dospěli do věku „druhé generace“. Téměř bez výjimky jsou v naší paměti staré časy spojeny s ryzími charaktery, s dobou, kdy muži byli opravdovými muži, ženy opravdovými ženami a deset deka salámu bylo nějakýho salámu. Ne jako dneska.

Od sentimentálního fňukání nad starými časy je jen krůček ke kýčovitému žehrání na mladou generaci. „Mladí se vůbec neučí, nezajímají se o svou budoucnost, řemeslo neznají, kultura jim nic neříká, jen by trávili čas radovánkami a hrami“ zní klasický leitmotiv těchto stesků už po mnoho tisíc let – ten citovaný pochází ze starobabylónské hliněné destičky a byl zapsán klínovým písmem. V antickém Římě si staří stěžovali, že mladí dnes už ani Homéra nazpaměť neznají, což je úpadek.

Ve světě výpočetní techniky se generace střídají tak rychle, že člověk ani nemusí být obzvlášť velký pamětník, aby viděl, jak se tyto stesky neustále opakují (už ani ASCII kódy nazpaměť neznají, což je úpadek) a jak jsou vždy stejně marné, liché a nesmyslné. V roce 1980 vyšla v časopise Amatérské Radio příloha „Mikroelektronika“, a v předmluvě napsal ing. Jaroslav Budínský tato slova:

Ohlasy na seriál o programování samočinných počítačů neznají zlatý střed, jsou buď jednoznačně pro, nebo jednoznačně proti. (…) Nejčastějším argumentem proti bývá „k čemu je to dobré, to nebudu do smrti potřebovat“ a další, přibližně stejná tvrzení tohoto druhu. K tomu snad jen jedno: konzervatismus je v technice stejně hluboko zakořeněn, jako v ostatních oborech lidské činnosti. Stejné argumenty jsme zaregistrovali, když jsme začali uveřejňovat články o tranzistorech (k čemu je to dobré, když jsou k dispozici mnohem dokonalejší prvky, elektronky), o integrovaných obvodech, o deskách s plošnými spoji, číslicové technice apod.

Podobný pocit mívám občas z diskusí zde na Zdrojáku (a po pravdě nejen zde). Každá nová technologie je uvítána sprškou skeptických reakcí v podobném duchu. Možná by se dala vypozorovat i nepřímá úměra: Čím silnější odpor proti nějaké novotě, tím pravděpodobnější je, že se stane na dlouhou dobu standardem.

Rozumějme si dobře – ona trocha konzervatismu ve vztahu k technologickým novinkám není na škodu. V rozumné míře přináši zdravou skepsi a odstup a brání nesmyslným výstřelkům. Je na místě se ptát, co nového daná věc přináší, k čemu bude, jak nás posune dopředu… Je na místě pochybovat a vážit argumenty. Ale taky je potřeba novinku poznat a prozkoumat; mnohé „diskuse“ vypadají jako a priori odmítnutí bez sebemenší snahy porozumět.

Nová technologie změní IT silou, která se rovná odporu vývojářů touto technologií vyvolanému. – Archimedův pravnuk

Na konci osmdesátých let jsem četl, jak se jistý inženýr elektronik ve VTM rozčiloval, že ta mladá generace „neumí derivovat, integrovat ani neumí spočítat tříbodový souběh superhetu; umí jen kouřit, hrát si hry na počítači a vyrábět předčasně děti.“ Součástí dějinného zvráceného smyslu pro humor je i to, že ta mladá generace, co nic neuměla, jen si hrála na počítači a vyráběla předčasně děti, jsou dnešní čtyřiceti- či pětačtyřicetiletí. A ti už stihli zkritizovat dnešní třicetileté (Assembler neumí… chtěl bych je vidět, packaly s céčkem, jak píšou ovladač pro komunikaci s tiskárnou Centronics do 256 bajtů, jako jsme psali my, jó to byly časy), ti stihli zkritizovat dnešní dvacetileté (Neumí Javu ani C, jen patlají weby v PHP, to nejsou programátoři), a ti již brzy zkritizují svou „mladší IT generaci“ (Pořádný CRUD v PHP nenapíšou, na všechno mají generátory kódu, bez nich by byli ztracení… Chtěl bych je vidět, jak píšou framework!)

Zkrátka pocit, že s rozvojem technických možností ubývá odbornosti, je konstantní a lineární jev. Vždy jsou nějací „starší“, kteří museli umět věci, co ti mladí ani nechápou, a kdyby to měli dělat, tak jsou ztracení, jo za nás, to byly časy…

Jen ať se ostatní moří stejně, jako jsem se mořil já!

Jenže v těchle stescích jaksi zaniká pravá podstata vývoje. Vývoj, a v IT a programování obzvlášť, slouží k ulehčení práce. Programujeme a vyvíjíme ne proto, abychom si práci přidělali (no…), ale naopak, aby jí ubylo; abychom ty nudné, nezáživné a mechanické části naší práce předali strojům. Pokrok slouží k tomu, aby ti, co přijdou po nás, nemuseli řešit stejné problémy, co jsme řešili my, a mohli místo toho stavět na výsledcích naší práce. Jinak by nešlo o pokrok, ale o samoúčelnou technologickou onanii. My vám vykopeme základy pro barák, ale nenecháme vás stavět a zase je zaházíme; vykopejte si svoje, holenkové, ať víte, jaká to je fuška!

Pokud jsem dohlédl dále než jiní, bylo to proto, že jsem stál na ramenech obrů. – Sir Isaac Newton

Líbí se mi jeden z programátorských citátů, který říká: „Nízkoúrovňový jazyk je takový, kde místo toho, co píšete, musíte řešit, jak to napsat.“ Tento citát poměrně přesně ilustruje inovace: jakmile se v nejpoužívanějším jazyce té doby začne častěji řešit to, JAK vlastně problém zapsat, napíšou ti nejlepší nové nástroje, kde se tahle JAK řešit nemusí, a místo toho se mohou programátoři soustředit zase na podstatu problému.

Výsledkem je, že zítřejší programátoři nebudou muset umět velkou část toho, co denně řešili včerejší – protože ti včerejší jim připravili cestu. Zítřejší budou muset umět jiné věci, protože jejich úkolem bude navázat na to, co už je, a posunout věci dál, pro další generaci.

A nechme prosím stranou oblíbené brblání o „základech řemesla“, všichni víme, že k základům řemesla nepatří ani pamatovat si ASCII zpaměti, ani znát SQL syntaxi pro čtyři databázové stroje nebo umět na požádání napsat ovladač grafické karty. Ne, vážně ne. Základem řemesla je umět rozložit problém na dílčí kroky, které dokáže stroj provést; říká se tomu algoritmizace. (Na druhou stranu – pokud někdo neovládá algoritmizaci, měl by se poohlédnout po kariéře v jiném oboru, než je programování.)

„Ty kluku pitomá… (ty seš celej táta)“

Takový roztomilý vedlejší efekt toho všeho je, že při vzpomínání na staré zlaté časy mohou někteří snadno podlehnout dojmu, že programátoři obecně hloupnou. Je to oblíbený klam; ve skutečnosti si už jen nemusí pamatovat balastní informace o tom, jak řešit problémy, co (vy)řešili jejich předchůdci.

Programátoři postupem času ztratili mnoho schopností – např. zadat bootloader pomocí přepínačů na předním panelu, překládat instrukce assembleru do strojového kódu pomocí tabulek, řešit optimalizaci strojového kódu a využití registrů, řešit paměťovou optimalizaci na bajty, řešit garbage collecting, pamatovat si kryptická chybová hlášení (ERROR IJK27 ON LINE 338), pracovat s děrnými štítky, vytvářet si vlastní databázové stroje, vytvářet si vlastní překladače, … Každou z těchto věcí musel svého času umět každý programátor; pak ta potřeba vyšuměla a znát je musí už jen pár opravdových systémových specialistů, pro ostatní to jsou opravdu jen balastní informace – ovšem ono to tak krásně šimrá ego, že? „My museli vědět víc o procesorech, dnešní takzvaní programátoři ani netuší, kolik má procesor registrů! Úpadek!

Není to úpadek, jen stojí na našich ramenou. Nechme je stát co nejpohodlněji; ostatně sami stojíme na ramenou jiných.

Kdyby byly stesky nad „hloupnutím programátorů“, co předvádí každá programátorská generace, pravdivé, tak by dnešní programátoři museli být už polodementní opice, co tlučou do klávesnice kamenem a vydávají skřeky, kterými kritizují ty mladé, že už ani neumí vzít pořádně kámen do pracek. No, zjevně nejsou… Navzdory steskům o hloupnutí se obor rozvíjí dál, a dokonce čím dál rychleji.

Porovnání křivky povyku (Hype Curve) s odporem vývojářů proti dané technologii. Nejprve je nízký. S popularizací technologie prudce roste a zůstává vysoký. Jakmile si technologie projde údolím obskurity, láme se odpor vývojářů, a ti novou technologii náhle milují. Postupem času ale zjišťují její nevýhody, odpor opět stoupá a nakonec je nahrazena novou technologií.

Porovnání křivky povyku (Hype Curve) s odporem vývojářů proti dané technologii. Nejprve je nízký – o technologii nikdo nic moc neví. S popularizací technologie prudce roste a zůstává vysoký. Jakmile si technologie projde údolím obskurity, láme se odpor vývojářů; ti novou technologii náhle milují a pomohou ji vyvést na „pláň produktivity“. Postupem času ale zjišťují její nevýhody a limity. Odpor opět stoupá a nakonec je nahrazena novou technologií.

Rozbijeme svoje stroje?

V IT je trochu ironické, že lidé, kteří se snaží přenést co nejvíc mechanické práce na stroje, často náhle zjišťují, že velká část právě té jejich práce, jejich „vysoce odborné činnosti“, na níž si stavěli profesní sebevědomí, je nahrazena strojovou prací. V IT se častěji než kde jinde setkáme s tím, že naše vlastní snaha a schopnost nás připraví o práci; že naši „odbornost“ najednou už nikdo nepotřebuje, protože jsme svoje know-how vložili do programů, které nás teď nahradily. Čím mechaničtější naše práce je, tím snáze bude nahrazena.

Jsou v podstatě jen dvě možnosti, jak s tímto osudem naložit. Buď své dlouho budované znalosti a schopnosti oželet ve chvíli, kdy začnou být nahraditelné, posunout se dál, naučit se něco nového, něco, co stroj hned tak nenahradí, nebo si sednout na lavičku v parku a stýskat si, jací jsme za našich mladých let byli žádaní odborníci a jak doba a znalosti upadají…

Tváří v tvář reálnému rozvoji civilizace je průběžné hořekování nad úpadkem jen tisíciletí trvající sentimentální omyl lidí, kteří byli nakonec předběhnuti dobou, protože přestali utíkat s ní. Každý bude nakonec předběhnut těmi odpočatými, kterým ušlapal cestu. Ale takový už je lidský osud.

A vývojářský jakbysmet.

Komentáře

Subscribe
Upozornit na
guest
185 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
trsek

Tak toto je pekná úvaha naozaj sa s ňou stotožňujem.
Až mi moj kolega už po 20ty krát bude vysvetľovať ako robil tester ktorý sám seba testoval tak mu to dám prečítať.

BTW: Dnešný mladý naozaj nevedia programovať ;oD

Jaro

ale nominatív množného čísla robí problémy naprieč generáciami :-)

Ctenar

Poslední dobou, když zde přečtu článek, který se mi přenáramně líbil, a kouknu se na autora, tak tam vždy vidím jen Malého Martina. Tento článek patří do stejné kategorie a musím autora jen pochválit a poděkovat za příjemně strávenou chvilku čtením jeho dílka. Jen tak dál.:)

plastique

Přidávám se, taky se vždy pobavím (nebo začnu přemýšlet).

díky

Elektron112

×10^10 :)

Teď ještě, abychom si to všichni zapamatovali a chovali se podle toho… Jak už tu někdo pode mnou napsal, tak také doufám, že jednou nepřestanu stíhat přizpůsobovat se.

Ale když tak přemýšlím nad tím pokrokem, musím si položit jednu otázku – kde se vlastně uchovávají všechny ty informace? Co potom, až nikdo nebude umět základy?
U programovacích jazyků to je jasné – knihy; Linux – jeho vlastní zdroják; základní elektronika – učebnice pro základní a střední školy; matika – učebnice (učí se to běžně ve škole od úplných základů, a i když tomu tak není, mám pocit, že znám vše potřebné k programování).
Horší už to je s mým povědomím o výrobě hardwaru. Přepokládám, že se to ještě budu učit (třebas takový tranzistor nemůže být nijak složitý), ovšem co ty nejnovější technologie? Ty si přece firmy nechávají pro sebe, nebo ne? Nebo je schraňuje patentový úřad na věky věků?
Poslední oblast, která by mne zajímala je opět matika (ta složitější). Když někdo přijde na nějaký matematický problém, tak to napíše do nějakého odborného časopisu a tím to hasne, nes pa? Existuje nějaká organizace, která schraňuje všechny matematické poznatky a udržuje je v živých jazycích?

Jerry12

Pokud ma nejaka vedomost svoji aplikaci, tak se v podstate nemuze ztratit dokud aplikace existuje. Aby si udelal procesor, tak musis rozumet tranzistoru a na tranzistor potrebujes fyzikalni a matematickej popis jeho chovani a na to potrebujes matiku a fyziku…

Pokud vazne nejaky vedomosti zanikne aplikace, tak zustanou informace roztrouseny v knizkach/internetu a cast se ztrati. Az nahradime dnesni polovodice necim lepsim, tak casem ztratime schopnost je snadno vyrabet stejne jako uz dneska nedokazeme vyrobit nektery druhy elektronek … proste to neni potreba. Dalsi takovou ukazkou ztraceny technologie je litina. Az do 2. Svetovy byla vetsina stroju postavena na litinovym ramu. Ty stroje do dneska spokojene slouzej, ale dedove co umeli odlejvat litinu jako tehda uz jsou vetsinou po smrti. Dnesni stroje jsou ze svarovanyho plechu. Je to min odolny, levnejsi a setrnejsi reseni. Urcite by sel vyrobit libovolnej litinovej ram, ale nikomu uz se to nevyplati. Podobne je to parni lokomotivou, posle velka vyrobna/opravna skoncila pred par lety v Cine. Uz se nevyplatej, diesel je lepsi.

Vubec by me neprekvapilo, kdyby za 50 let nikdo nedokazal vyrobit LCD moitor nebo dokonce dnesni procesor. Ne stejny zpusobem jako dneska. Dost mozna by na to misto opticky litografie vzal nejaky nanostroje a za tejden vyrobil jeden kus zcela idelanich vlastnosti.

vtech

to by se melo tesat :)
…ale beda, jak si nekdo bude utahovat z meho assembleru

Polish

Moc pekne napsane. Presto je dobre, kdyz programator vi co dela, co se deje v pozadi.

Hulka

Přemýšlel jsem že bych založil nové vlákno s titulkem jako „Pěkný článek“ atd., ale už bych asi nic nevymyslel :-). Takže přidávám se: +1

Takový článek tu snad ještě tolik ohlasů neměl!

8 robocops

Musim se pridat, tenhle clanek ju super !! :) :)

Honza

Souhlas, Martin píše super, vždycky to má hlavu a patu a skvěle se to čte.

David

Je sice pravda, ze pamatovat si instrukcni sady deseti ruznych procesoru a kompletni API padesati ruznych knihoven je zbytecne. „Hloupnuti“ v tomhle smeru pozoruju i sam na sobe a nijak zvlast mi nevadi – mam prece google :)
Horsi ale je, ze programatori uz dnes nevi jak to vsechno vlastne funguje. Oni uz proste „nerozumi“ pocitacum… zakladnim principum.

lobo

no rovnake problemy maju aj dnesni obuvnici, nevedia ulovit bizona, stiahnut ho z koze , vypracovat kozu, vyrezat kopyto z dreva…

David

A jsem snad chtel programatory nutit vyrabet kremikove ingoty?

Cechjos

Měli by, úplně všichi? .)

JaJa

Přesně tak! Dovoluji si odkázat na 2. díl básníků: „Jako vždycky. Všichni by chtěli operovat, ale klidně by přišili oko na prdel a ještě by chtěli, aby mrklo…“;-)

Kenn

Rozhodně krásná myšlenka, ale v dobách, kdy tohle programátoři věděli/uměli, nebyly miliony různých frameworků, které programátor ke své práci dnes rozhodě potřebuje a programovacích jazyků také bylo poněkud méně. Navíc tyhle věci mnohdy k programování vědět museli, dnes rozhodně třeba nejsou.

Podle mě naprosto přirozený vývoj.

Radovan

Frameworky určitě usnadňují práci, ale…?

„Na co se učit násobilku, když máme logaritmy!“

A dneska místo logaritmů a logaritmických pravítek kalkulačky. Přitom většina lidí neumí ani počítat procenta :-D

andrejk

na zaklade zistenia ze ludia nevedia pocitat percenta dokaze tzv. socialna tzv. demokracia vyhravat v civilizovanych krajinach uz niekolko desatroci volby

Radovan

To je pravda, akorát je nutné dodat že pravicové strany zase spoléhají na to, že jejich voliči nezvládnou ani trojčlenku ;-)

blizzboz

pekný článok.

brk

Ono to se samozřejmě pravda, ale stejně si nemůžu nostalgicky povzdechnout, když vidím, jakou má tohle „stání na ramenou“ předchozí generace ohromnou režii a jaký nárůst výpočetního a pamětí je potřeba na každý drobný krůček ve vývoji.

Na jednu stranu je dobře, že se vše tak rychle točí, ekonomika je v pohybu, ale taky to generuje obrovskou ekologickou zátěž a tady to zatím IMHO silně pokulhává.

Riny

Jop, s tímhle souhlasím; chtělo by to nějak najít tu zlatou střední cestu mezi vývojem a rychlostí programů a nástrojů – zvlášť mi to došlo, když jsem zjistil, že moje Core Duo 1,6GHz, 3GB RAM jsou naprosto nedostatečné pro QtCreator a kydsi jsem si v klidu bastlil na Celeronu 1GHz 192MB RAM…

Nebo třeba Java – ve škole vidím, jak se pomocí ní spolužáci učí daleko rychleji, než když jsem se učil na C/C++ a musel jsem se otravovat s miliony segfaultů, ale na druhou stranu programům v Javě se vyhýbám jak čert kříži, výše uvedený PC je nedostatečný, aby to pro mne bylo dost rychlé…

ja

java neni pomala, pomale programy v jave vyraveji prave rychlokvasky ze skol, kde po nich nikdo rychle programy nechce.

Riny

Hm, to je vlastně jak říkáte… Tak jako tak jsou programy v ní pomalé — a dělá jí to špatné jméno.
A fakt je ten, že po nás chtějí rychlé programy jen v případech, kdy je zadaný úkol zároveň úkolem na rychlost, např. setřídění velkého množství dat.

Ale není to jen ve škole – na praxi mi vynadali pokaždé, když jsem se snažil myslet na rychlost (a samozřejmě jsem se sakra snažil, aby to nebyla „předčasná optimalizace“, i když to samozřejmě může být sporné)…

uf

zijete v dobe javy 1.1 ? Po 1.1.8 uz to bylo lepsi, 1.3 byla super a 1.5 uz je normalni.

Riny

Hm, vlastně už delší dobou si nejsem jistý v jaké době žiji, každopádně v průběhu let, jsem – jako každý jiný – potřeboval určitou aplikaci, kterou jsem potřeboval vyřešit nový úkol. Jednou to bylo pohodlné stahování z rapidu, jindy posílání SMSek. A pokaždé, když jsem narazil na verzi v Javě, bylo to velké (a ne vždy jsem měl rychlé připojení k internetu), dlouho se to spouštělo a velmi často to mělo velmi vysoké doby reakce – a to obzvlášť na Linuxu (Ubuntu)*, takže jako uživatel jsem takřka vždy volil radši nativní program i když třeba neměl tolik možností a nevypadal tak pěkně. Navíc v době, kdy jsem běžel na notebooku s 256MB RAM – na lepší jsem neměl – (z toho 32 mega šlo grafice) jsem počítal velikost programu (v RAMce) na kilobajty a Java prostě nebyla možnost. A ano, uznávám, stal se z toho u mě trend, že jak vidím v popisu aplikace „Java“, vyhýbám se jí, takže nemám ozkoušené, zda se tento trend programů za posledních pár let změnil (ale jeden program aktivně používám – a je pomalý jako vždy). Popravdě řečeno, když jsem si před pár lety naprogramoval Tetris v J2ME na svůj mobil, byl jsem šokovaný, že to mělo takřka nepostřehnutelné doby reakce.

* A to uznávám, že pokud jde o výkon procesorových úkolů, je Linux nesrovnatelně rychlejší, než Windows. Když jsem do školy programoval softwarový 3D renderer, Windows verze měla asi 25% rychlost té Linuxové.

Riny

Vlastně jo, teď jsem si vzpomněl že jsou tu dvě Java aplikace, které jsem loni aktivně používal (SqlDeveloper a SqlModeler) a i na výkonných školních PC (hm, zvláštní slovní spojení :3) to bylo citelně pomalejší, než nativní aplikace.

Nox

Nevím no, taková práce v Netbeans je (co se týče rychlost) na Win7 nic extra – poměrně ok, ale rozhodně ne bleskové – a na Ubuntu10.10(vir­tualbox, vím, má vliv) spíše dost zlé … myslíte, že je to je nedobře napsaná aplikace? (toto není žádná narážka ale normální dotaz, s vnitřkem NB nejsem nijak seznámený)

Riny

Pokud jde o mě, tak nevím; používal jsem jej jen tak trochu a jevilo se mi to jako „standardně Javovsky pomalé“. (Teda kromě aktualizace + instalace různých pluginů, to se mi to zaseklo tak na půl hodiny.)
Nevím, jestli bych to kvůli rychlosti doporučoval na větší projekty, ale udělal jsem si v tom jednoduchou hru na J2ME a ani jsem neztrácel nervy.

Vzhledem k tomu, že je to ale docela pochvalovaný nástroj, asi bych doporučoval něco, co sám obvykle moc nedělám: zkusit si to na svém stroji (jak je to rychlé), zkusit konkurenci a zkusit odhadnout, co mi dá víc; jestli rychlejší aplikace s méně možnostmi, nebo lepší nástroj s nižší rychlostí.

František Kučera

Netbeans používám každý den, s rychlostí problém nemám (nebyla to nějaká stará verze?). Trochu horší je to s paměťovou náročností – ale je to prostě IDE se spoustou funkcí a modulů, ne obyčejný textový editor.

MW

Aktuální Netbeans (6.9.x i 7 beta) jsou na mých Win7 x64 pěkný šnek. Autocomplete trvá klidně i 5 sekund (takže si rychleji ty 4 písmenka dopíšu) a docela často bezdůvodně žere 50 % CPU, i když nic nedělám.

František Kučera

Nepoužívám Windows… díky bohu :-)

Peter

Keď som bol mladší tak na prvom väčšom projekte sme prepisovali v duchu hesla: „Pomalý nie je jazyk ale algoritmy“, pomerne dosť kódu. Nakoniec aj napriek slušnému času na vývoj sme klasicky nestíhali…
Neskôr som stretol múdreho človeka, čo na moju námietku blbého algoritmu povedal:“Predčasná optimalizácia je horšia ako predčasná ejakulácia!“
To čo tým chcel presne povedať som pochopil až neskôr…
Pomerne veľké procesné spracovanie sa po čase natiahlo na neúnosnú hranicu 8 hodín, čo nás viedlo k útoku na algoritmus. Musím uznať, že to bola už pokročilá doba reálnej prevádzky, takže sme oproti pôvodným autorom mali úplne iné know how. Výsledok? Neuveriteľných 30 minút. Všetci okolo sa vytešovali, ľudia od zákazníka nám osobne ďakovali. Úžasný pocit.
Vytriezvenie prišlo vzápätí: „Ten proces, čo ste posledne opravovali už nechodí 1 a pol minúty ale 3. Spravte s tým niečo!“
Odvtedy už neoptimalizujem ani predčasne…

Hulka

Na ekologii Vám dnes se*e pes (bohužel). Důležitej je zisk, a čas jsou peníze. Takže napište to jak chcete, jak to největší prase ale hlavně ať to nějak funguje. To že to pak užere pár desítek procent výkonu nebo paměti neřešte, počítače dnes jsou přece tak výkonné. A nečekejte že manažer ve firmě pochopí když se s „triviální“ záležitostí budete patlat hodiny.

uf

Dneska se dava duraz na architekturu, prehlednost a flexibilitu pri upravach. Rychlost se resi tam, kde je to potreba.

brk

Je to pár let, co jsme přebírali jednu malinkou školní síť po člověku, který se o to staral jako důchodce za symbolický poplatek.

Velmi příjemný starý pán, který s počítači doslova „vyrostl“. Pamatoval je od úplných počátků a měl to štěstí, že s nimi i pracoval. Moc příjemně jsem si s nim vždy popovídal, ale dnes už mu těžce „ujel vlak“. Tohle mne docela děsí, jak si představím, že jednou taky dojdu do fáze, kdy už se nebudu schopen přizpůsobovat novým trendům. :o/

martin sousek

no my pujdem do duchodu v sedmdesati a co budem delat? porad programovat?

znam stareho pravnika, ucitele a stavebniho inzenyra a avlak ujel vsem. v praci jen mlzi a stavi na svych udajnych zkusenostech, ale ve skutecnosti za ne v podstate uplne vse delaji podrizeni.

sourcer.cz

Kdo programuje po třicítce je neúspěšný programátor :) Člověk se musí změnit v architekta nebo team leadera :)

100% Lenin

Já tedy nevím, rozhodně znám jedneho architekta lehce po třicítce a žádný zázrak – rozhodně algoritmizaci nepobral.
A i já, coby senior analytik – si rád zaprogramuji. A světe div se – ve všem co mne osloví ideou rozvoje a progresivity.

Nechci rýpat, pane kolego, ale programovat můžete i v devadesáti.

Dobrý programátor tvoří. A já osobně předpokládám, že víte co to znamená.

Hulka

Zaprogramujete v rámci profese nebo spíš hobby? A jak pružně se stíháte učit nové programovací jazyky?

Biktop

> A jak pružně se stíháte učit nové programovací jazyky?

K čemu je dobrý člověk, který umí (slovo „zná“ nebo „má povědomí o“ by bylo mnohem vhodnější) 10 nových programovacích jazyků a každý týden je schopen naučit se (rozuměj „seznámit se s“) novým, ale když mu zadáte úkol, tak nemá ani rámcovou představu, z jaké strany by se do toho měl pustit?
Užitečnější by bylo, kdyby znal jeden jazyk, v němž dokáže udělat všechno, než když jich bude znát několik, ale v žádném z nich neudělá nic. Což je čím dál častější případ. Studenti na školách prskají, když na ně vyrukují s Pascalem, protože není dostatečně trendy, na základě toho tvrdí, jak je škola učí samé nepraktické věci a jak jsou vyučující mimo realitu – jako kdyby bylo na programování to nejpodstatnější, v jakém jazyku se to odehrává. Ale pak zjistíte, že nejsou schopni dát dokupy ani program na spočítání slov v textu – a nedovedou to ani v Pascalu, ani v C, ani v PHP, ani v Pythonu, ani v ničem jiném.

Hulka

Myslím že mi neodpovídáte na mou otázku. Navíc ta byla čistě směřována na 100% Lenin.

Ale teda k Vaši odpovědi – co se mi tu snažíte naznačit je problém algoritmizace libovolného problému, a máte pravdu že bez této dovednosti nejsem schopen naprogramovat nic v žádném jiném programovacím jazyku. Mě ovšem zajímalo jak takový člověk vyššího věku („senior“) je schopen se přizpůsobovat novým trendům v programování. Ono totiž naučit se nové programovací jazyky dnes neznamená ovládat pouze algoritmizaci, ale též ovládat příslušnou syntaxi a mít dobrý přehled o disponibilních funkcích, metodách, postupech atp. Naučit se efektivně pracovat v nějakém programovacím jazyku není zrovna otázka jednoho týdne a pro staršího člověka už vůbec ne.

>Užitečnější by bylo, kdyby znal jeden jazyk, v němž dokáže udělat všechno, než když jich bude znát několik, ale v žádném z nich neudělá nic.

Užitečnější pro koho? To si myslíte že i kdyby na krásně jste studenty naučil základy programování tak by toho většina do budoucna využila? Spíš se podívejte kolik z nich umí „rozumně“ pracovat s počítačem, to by bylo možná pro ně víc užitečnější. A kdo chce být programátorem tak jim bude i bez Vaši pomoci.

Biktop

A ty už jsi někdy programoval? :-)

Zaboj Campula

Ano programátor po třicítce je jako prodejná dívčina po padesátce. Nicméně vzhledem k věkovému složení, kdy se programátor stává výdělečně činným někdy ve 24 letech a odchod do důchodu je dnes v 62 letech, by to znamenalo přibližně 6 tým lýdrů na jednoho kodéra.
Je pravda, že některé zavedené nadnárodní softwarehousy se k tomuto poměru blíží…

JS

Kdyz mate nad sebou 6 lidi, kteri vam jen mluvi do toho, jak a kdy, ale sami nic neudelaji, pak se nedivte, ze vyhorite ve 30.

Jinak si myslim, ze programovat se da do velmi pokrocileho veku. Clovek vypada pro mlade konzervativni, ale az do toho veku mladi dospeji, zjisti, ze to ma sve duvody. Ja s oblibou rikam, ze vse uz bylo v IT vynalezeno do konce 70. let. Jen se trosku meni fazona.

kos

Tady jde spíš o to co je myšleno tím „programátor“. Podle mě je programátor dělník, který píše kód. Takový programátor nepotřebuje VŠ a tak začíná dříve. Kvůli nedostatku znalostí (komu by se po 30 chtělo s rodinou na krku se učit něco nového) potom dál nepostupuje (nebo jenom minimálně) a programuje celý život. To o čem píše sourcer.cz nejsou klasičtí programátoři. Jenomže člověk co vyleze ze školy může těžko dělat nějakou zodpovědnou práci, tak ho obvykle pošlou programovat, ať získá zkušenosti.

uf

Me treba psani programu bavi. Spis by me nebavilo delat reditele neceho.

uf

vsichni nemuzou sefovat. To je zakon pyramidy, ze nahore je min mista. Navic jsou lidi, kteri radsi programujou nez delaji sefa. Nekteri se zase umi predvadet lepe nez programovat.

Ivan Nový

….

Jan Pobořil

Však proč ne :-). Podívejme se kam směřují moderní frameworky, jako třeba Drupal. Tam už je možné i docela sofistikovanou webovou aplikaci naklikat s minimem nebo žádným vlastním kódem.

newman

No, zrovna drupal je doufam priklad neceho, co je globalni omyl a vyslanec pekel na Zemi :-)

Jan Pobořil

A přesně o tomto přístupu je tento článek :-)

bwpow

Tak v tom pripade tebe a vsetkym tebe podobnym, ktori suhlasia s clankom, ten Drupal z celeho srdca prajem :)

Le Papier Blanc

… i dnes existují lidé, kteří píší v assembleru ovladače pro XY.
Jenže je jich zhruba stejně jako před těmi 20ti lety, ale lidí v IT je několikanásobně víc. Jak se rozšiřuje záběr IT, tak samozřejmě klesá i potřeba hard-core guru pro běžné potřeby a tudíž je snažší narazit na odborné IT uživatele než opravdové počítačové hackery. Ti totiž stále zůstávají ve svých labech a nechodí na konference, neběhají po chodbách firem a nepijí kávu klábosíc v kuchyňce. Nezmizeli, jenom jsou míň vidět v záplavě nových „ajťáků“.

Jindru

ale to ASCII by mohli umet, staci $0-z

Čelo

Proboha proč????

Radiceta

Jen trochu OT k tomu Newtonově citátu. To o ramenou obrů prohlásil Newton pri jmenování předsedou královské vědecké společnosti. Na tomto postu vystřídal Hooka, se kterým se neměli dvakrát rádi (on Newton vycházel s málokým). No a Hook byl velmi malého vzrůstu. Proto ti obři. Tento citát se často vytržen z kontextu používá k ilustraci nezměrné skromnosti velkého génia, nicméně pravda je trochu jinde.

oldman

Ale za nás se psali lepší články na tohle téma! Úpadek!

Fenix

Ne, většina lidí opravdu nerozumí tomu, co je „vespod“. Ale pár jich tu je, těch kteří dělají, kernely, operační systémy, ovladače. Aspoň doufám.

No a my ostatní se na ně spoléháme a věříme, že nedopadneme jako bankéři před dvěma lety. Ti také věřili, že vytvořili nástroje, které jim báječně pomáhají bohatnout, eliminovat riziko a když praskla bublina, pocítili jsme to všichni. V IT by to nejspíš byl krach bezpečnostní, ale jsme si jistí, že víme, co za nás všechny generátory, optimizéry a kompilery dělají a že každý se sebou neposílá do uživatelských počítačů nějakou skrytou díru nebo červené tlačítko STOP?

Hulka

„Ti také věřili, že vytvořili nástroje, které jim báječně pomáhají bohatnout, eliminovat riziko a když praskla bublina, pocítili jsme to všichni.“

Je to sice mimo mísu ale za tím nafukováním bublin bych hledal i někoho jiného. Viz. odstavec o hypotékách.

uf

V bankach byla chyba v lidech. Chteli nahrabat vic a soustredili se na vstvu, ktera na to nemela. U nas se deje to same. Nejvynosnejsi je dnes delat exekutora. To je beztrestne okradani veritelu i dluzniku. Nevim, koho vic.

Pavel Křivánek

Aby někdo stál na ramenech obrů, musí na ně nejdříve vylézt. Po novém roce jsem se bavil s jedním druhákem ze střední školy zaměřené na programování. Ve snaze najít dno jeho znalostí, od kterého bych se mohl odrazit, jsem mu kladl záludné otázky, jako třeba: „Co je to počítač?“ „Představ si, že ses dostal do 19. století, bavíš se s nějakým šikovným dobovým technikem a chceš po něm, aby ti nějaký počítač vytvořil. Co bys mu řekl? Jak vlastně funguje?“ „Jak by sis vyrobil elektrický proud? Jak funguje generátor a elektromotor?“ „Jak bys udělal alespoň galvanický článek?“ „Jak vlastně funguje parní stroj?“ „Jak by sis udělal látku na oblečení? Ze lnu? Jak vypadá, jak se z toho ta látka udělá?“ „Jak by sis vyrobil provaz?“ „Představ si, že jsi v době kamenné, člověk z 21. století, jak by sis udělal díru do kamene, aby sis vyrobil kamennou sekeru?“ „Jak by sis rozdělal oheň?“

Ani na jeden dotaz nebyl schopen odpovědět. Asi před rokem mi jeden kolega říkal, jak seděl na záchodě, kladl si podobné otázky a byl naprosto zdrcen zjištěním, že by si nedokázal zdaleka vyrobit ani ten toaletní papír.

Přitom vůbec není potřeba si muset projít vším osobně. Třeba u toho parního stroje stačí jeden pohled na animovaný obrázek na Wikipedii, aby to člověk pochopil. Dnes má člověk k dispozici neuvěřitelně snadný přístup k informacím, ale málokoho napadne si tyhle otázky vůbec položit. A náš vzdělávací systém a veřejnoprávní média k tomu vůbec nevedou.

Nedávno mi jedna známá říkala, že jí základní škola vlastně vůbec nic nedala. Číst a počítat uměla už před tím a všechno ostatní už v podstatě zapomněla. Já vím, vzdělání je to, co vám zůstane po tom, co zapomenete všechno, co jste se naučili ve škole, ale… Pokud by cílem základní školy bylo mimo jiné to, aby studenti byli v podstatě schopni zrekonstruovat technický vývoj civilizace řekněme do 19. století, alespoň by viděli, že věci, co se učí, k něčemu jsou.

Frykulín Freecoolin

Pane, vy jste internetový troll a váš vrásčitý obličej skřivený do škodolibého úsměvu mě děsí ze spaní. Co je to prohoba za otázky? Proč jste se neptal na Facebook API, Twitter API, nějaký nadupaný PHP framework, Flash? Co tady na nás vytahujete elektromotor? Pche :D

Jenda

„Ale po pravdě řečeno jsou tyhle informace pro běžný život užitečné snad pouze v situacích, kdy se svými kamarády ztroskotáte v balónu na ostrůvku v Tichém oceánu a potřebujete vyhodit do povětří žulovou skálu. ;)“

Jasně, ale některým podivínům (jako jsem já) to přijde strašně zajímavé a nedokázali by se na LCD panel dívat jako na magickou destičku, na které se ukazují obrázky :-). Těžko říct, jestli zrovna tohle vyučovat ve školách (i když polarizaci světla a další takové jevy by snad na střední mohli studenti vstřebat), ale alespoň nějaký základ a úvod do fungování světa kolem nás by se určitě všem hodil – zdá se mi, že lidé, kteří nedokáží popsat fungování např. suchého článku nebo žárovky, mají mnohem větší šanci, že naletí různým podvodníkům, kteří třeba prodávají magické proutěné koše vysušující zdivo (hledejte „aquapol“), samolepky na mobily odrušující elektromagnetické záření či pleťovou vodu s magnetickým komplexem pro ochranu proti elektrosmogu (to jsem fakt viděl).

Anyway, googlete „fyzika prekoncepce“ a ponořte se do bájného světa, ve kterém polovina absolventů středoškolské fyziky nedokáže vytvořit světlo, mají-li k dispozici suchý článek, žárovku a dva dráty.

bwpow

A zabudli ste na filtre do zasuviek, ktore odfiltruju elektrony pochadzajuce z jadrovych elektrarni :)

pankreas

…coz byl od pocatku vtip, na ktery se vsak chytli predevsim Cesi.

Vinicius

Někdy si říkám, že bych své vzdělání z 21.století vyměnil za to, co uměl Cyrus Smith. Nebo Marcel Camaret :-)

Naith_cz

Trošku mi to připomnělo můj sen, v němž jsem se nedopatřením vrátil o 25let zpět. Tam mi jeden člověk taky říkal, že je to báječné, jak můžu krásně napravit všechny omyly a vytvořit si lepší budoucnost… sotva… Když se nad tím člověk zamyslí, tak zjistí, že těžko může napravovat něco před 25lety, když si pořádně nepamatujeme co, jsme dělali přesně před měsícem. Takže to nejlepší, co bychom mohli udělat, je dostat se co nejrychleji od svého mladšího já co nejdále a snažit se být co neméně nápadní a vybrat si tu nejméně významnou úlohu, tak, aby do minulosti zasáhl co nejméně.

MartinX

Papier som si raz vyrabal, ked som si ako 10 rocny precital knizku o papierenskom priemysle. Samozrejme, pouzitelne to mohlo byt maximalne na toaletny paier, pisat sa na to nedalo :-)
Ja osobne povazujem za samozrejme, ze ako technicky vzdelany clovek mam aspon ramcovu predstavu o tom, ako funguje technicka civilizacia – teda vyroba zeleza, cementu, stavba domov, spalovaci motor, vyroba elektriny, vyroba tkanin …. Samozrejme viem ako funguje vyroba integrovanych obvodov a inych polovodicovych suciastok (to som dokonca studoval ) a v neposlednom rade viem, ako funguje pocitac (kedze sa pocitacmi zivim).
V detstve ma fascinovala kniha „Tajomny ostrov“ od J. Verna, kde si vybuduje trojica stroskotancov technicku civilizaciu (napriklad vyrabaju kyselinu sirovu a dusicnu a pomocou nich nitroglycerin) len na zaklade znalosti jedneho inziniera.
A momentalne si vyrabam vlastnu programovatelnu kalkulacku, tie co su na trhu uz nie su ono :-)

Jenda

„V detstve ma fascinovala kniha „Tajomny ostrov“ od J. Verna, kde si vybuduje trojica stroskotancov technicku civilizaciu (napriklad vyrabaju kyselinu sirovu a dusicnu a pomocou nich nitroglycerin) len na zaklade znalosti jedneho inziniera.“

Ó, díky za tip na dobré čtivo, nitroglycerin bych asi na pustém ostrově vyrobit nedokázal.

JS

Jo jo, to je dobra knizka, i kdyz jsem ji jako maly nedocetl. Nekdo by to mohl zmodernizovat, vyhazet tu omacku s kapitanem Nemem, to by bylo zajimave.

Apropos: Pokud nekdo budete cestovat casem do stredoveku, doporucuji vzit si serii knizek od http://en.wikipedia.org/wiki/David_J._Gingery

Pavel Křivánek

Díky za tip. Já si vždycky spojoval vysokou energetickou náročnost výroby hliníku také s teplotou tání, která je ale ve skutečnosti poloviční než u železa, takže mě ani nenapadlo, že by ho šlo v primitivních domácích podmínkách odlévat.

uf

Jenže Cyrus Smith měl univerzální znalosti. I když tehdá to šlo. Sherlock Holmes a lide z televiznich seriálů taky dokážou věci, které nikdo neumí. A McGyver je uplny machr.

bark

No, já taky ne – uvedeným způsobem – a to jsem původně chemik. Glycerintrinitrát poprvé vyrobil Sobrero někdy 1800 + nějaké drobné a mohu Vás ujistit, že za Verneových časů se jednalo o horkou novinku, o které on sám moc nevěděl a v oboru exploziv to byla hodně velká neznámá.
No – a výroba kyseliny sírové a dusičné v jejich podmínkách a potřebné koncentraci považuji za sci-fi. Jen uváděný nordhausenský způsob vyžaduje poněkud více, než je uvedeno. A výroba kyseliny dusičné z ledku je možná, ale Verne se elegantně vyhnul základnímu problému – jak to celé vyčistit (vzniká směs síranu sodného a vápenatého, různých komplexních solí, protože se jedná o přírodní ledek…).
Uvedený způsob roznětu je navíc krajně nevhodný, v lepším případě by skončil deflagrací. Jenže třaskaviny by na tom ostrově asi nevyrobili – neměli z čeho.
I popisovaná výroba nitrátu celulosy by asi skončila pořádným požárem, protože ji při sušení nestabilizovali.

Ale taky jsem tu knížku hltal…a naladila mne na to.

uf

Na druhou stranu: Jezdite autem a vite, jak funguje motor? Koukate na televizi a vite, jak je nasnimany obraz zakodovan do signalu a dekodovan?

Radovan

Funkce motoru se donedávna vyučovala v autoškolách jako jedna za základních věcí, které musí řidič znát ;-)

Jenda

Ale jó, docela jo. Tedy, přiznám se, že zrovna detaily kódování MPEG-2 mi zatím zůstávají utajeny, ale principu celkem rozumím.

Oxymoron

No, televizi a auto většinou nepoužíváte jako základ pro něco dalšího, takže u televize znalosti o jejím fungování zas tak potřebné nejsou. U motoru auta je přece jenom jisté znalosti mít, aby člověk nebral na lehkou váhu, když mu bliká nějaká červená kontrolka … třeba nedostatek oleje … ale detailní rovnice proudění výfukových plynů asi také málokdo studuje.

Biktop

Ano a překvapuje mne, že na tomto serveru se vyskytují lidé, kteří to nevědí. :-)

markoniuss

To mi připomíná, jak jsem před lety nutil programátory v PHP používat šablonovací systém, to bylo keců, stejně tak abstraktní vrstva. A podívejme se dneska, co se používá, každý má nějaký ten framework. Tak jsem se rozhodl, že se naučím Symfony.

A o Symfony furt slyším, že je to moloch že je to těžkopádný framework atd… což je prostě blbost. Je to stejné jako s každou novou verzí Windows, o které se říká, jaký je to moloch, ale vždy když se vezme aktuální hardware, tak to tak není.

Podle mě evoluci zažijí i hostingy. To co je dneska standardem – ASP.NET či PHP hosting podle mě velmi brzo nahradí VPS hostingy. Je fakt, že VPS je dražší, ale lidská práce je vždy ta největší položka, a jak už nás historie několikrát přesvědčila, čas je cennější než peníze.

Každý se sice snaží ušetřit kde to jen jde, ale když je cena VPS u Linuxu 100 Kč / měsíc (Wedos) a cena hostingu PHP 27 Kč měsíc, tak to už si raději zaplatím hosting celého serveru.

A to je třeba nevýhoda u frameworku Symfony, která se často opakuje, že de fakto potřebujete minimálně VPS. I když kdo dneska nepracuje se SVN je podle mě out a SVN musíte také někde hostovat. Když jsem začínával programovat já, tak se zásadně používalo CVS.

Stejné je to i se sítěma, když jsem začínával se sítěma, tak se jelo zásadně Cisco a konkurence de fakto neexistovala. A dneska, dneska jede Mikrotik, sice jen na menší sítě, ale i to často stačí.

Pindal

SVN? No to jste dost out. Dnes se používají DVCS. A z nich nejlíp git.

A ten hlod o VPS? Zaplatím víc a ještě to budu muset nebo někdo mi to bude muset spravovat. Kde je jako to ušetření času/práce?

A Cisco doporučovali asi už staří Římané ne? Trochu rozhledu.

kk

> I když kdo dneska nepracuje se SVN je podle mě out

SVN dneska? To vam teda ujel vlak! :D

> Je fakt, že VPS je dražší, ale lidská práce je vždy ta největší položka …

No jasne a sprava VPS (OS a tak) zadarmo bude?

kk

Prisaham, ze jsem prispevek od kolegy Pindala vyse nejak prehledl :D

Michal Zahradnicek

Heh,…

p. Maly je to pre mna cest ak Vas moj nostalgicky prispevok priviedol na myslienku napisat tento clanok…

Tym hlupnutim som mal na mysli presne to, co tu uz niekto napisal – ze dnesny programatori nepoznaju ako funguje pocitac, pripadne co sa deje v kompilatore s ich kodom…… …a potom tie programy tak vyzeraju(napr. take Widly).

Mimochodom velmi pekny clanok.

Zilogat0r

… ale zapomina na jednu ZAKLADNI VEC,a sice UDRZITELNOST VYVOJE.

to, ze (zejmena) v tomto oboru kazdy stoji jen na tech nejblizsich ramenou, a jeho vazby smerem nize jsou velmi melke (holt omezena kapacita lidske mysli), znamena, ze tu roste velmi nestabilni pyramida, kde kolaps kazde vrstvy muze mit nedozirne nasledky – uz jen proto, ze aktualne produktivni generace nebude tusit, kde, co a proc se hrouti.

A dalsi vec jsou zaklady vedy. Programovani je VEDA, a pak az teprve sluzba, a sva pravidla ma a mit musi. Ve skole se v matematice tez neucime rovnou integrovat, jen proto, ze klasicka aritmetika je znama uz od staroveku. Kazda nadstavba dava smysl jen vuci tomu, co rozsiruje – a jeji slepe pouzivani bez znalosti smyslu/ucelu/za­kladu a tehle „filozofie“ za, je velice kratkozraka a dost nebezpecna vec.

Nastesti jsou ale mezi nami stale jeste lide, ktere zajima, jak veci funguji, a o ne se budeme muset v pripade jakehokoli problemu podel teto zbesile pyramidy „vyvoje“ oprit – tedy jsou velmi duleziti. A takovehle clanky si nezaslouzi, protoze narozdil od nazoru jako ma Martin Maly, jejich pristup stabilizuje a dava jistou nadeji, ze se jednou nevratime zpet ke klacku. To az v Jave psany ridici system reaktoru hodi vyjimku, neb 256TB pameti bude zabloatovano.

marwyn

+1 !

jj

a) Programovani neni veda. Mozna si to pletete s informatikou …

b) treba takova matematika se vyviji uz stovky let, nezda se, ze by se hroutila, protoze nikdo nezna vsechno

c) vzdycky jsou lide, kteri se zhruba orientuji ve „vsem“. Casto je to jejich prace, musi shromazdovat a interpretovat poznatky z vice (pod)oboru. Na druhou stranu se nutne nemuzou venovat svym oborum tak do hloubky jako specialista. Tento princip je az trapne znamy …

Michal Augustýn

b) treba takova matematika se vyviji uz stovky let, nezda se, ze by se hroutila, protoze nikdo nezna vsechno
Vtip je ale v tom, že se každý učí ty základy (sčítání, odčítání).

bwpow

A nie len to, ale hoci je naozaj pravda, ze matematika tvori velky kosaty strom, nikto sa nedostane k listom najvyssieho poznania bez toho, aby sa najprv nemusel vysplhat pekne od korena po jednotlivych konaroch. Kym dnesni programatori su lenivi prejst tu cestu od korena a rovno by najradsej oberali plody.

kk

Stejne tak se v zakladnim kurzu programovani uci promenne a cykly. Kde je rozdil?

Ondřej Mirtes

Autor prispevku si nejspis stezuje na to, ze se tam neuci strojovy kod.

Cermi

Jenže základy matiky jsou někde jinde – logika, algebra, teorie množin atd. Stejně jako kus kódu v C# přeložíš postupně přes IL, asm až do strojáku (spíš obrazně řečeno, nechytejtě mě prosím za slovo), tak sečtení svou čísel stojí na smečce definific a pravidel z analýzy, algebry, logiky a bůhvíčem ještě.
A tyhlety věci se dneska už taky moc neučí, resp. málokdo je umí.

To sčítání a odčítání bych spíš přirovnal k napsání if podmínky, for cyklu nebo nějakého jiného primitiva, které je ale až ve _vyšším_ jazyce. Pravé základy (tj asm a stroják) umějí tak akorát skákání sem a tam :)

bark

No ano. Řidič F1 se učí taky – tady je volant a tady plyn. Nijak jej netankuje princip spalovacího motoru a stejně – i když to víte vy – se mu nevyrovnáte :)

Zilogat0r

a) dovzdelejte se: http://www.cs.utexas.edu/users/EWD/transcriptions/EWD05xx/EWD566.html

b) nelze ani chapat, natoz rozvijet danou specifickou matematickou disciplinu, aniz byste znal VESKERE zaklady, na nichz stavi. lze ji pouze tupe vyuzivat coby „nastroje“, bez chapani pricin a souvislosti. tedy nekreativne, neefektivne a nebezpecne – tedy stejne atributy, jako ma zminene „takyprogramovani“.

c) ne ve vsem, ale alespon by meli znat svuj obor od jeho zakladu. coz evidentne vas pripad neni.

Michal Augustýn

A udržitelnost vývoje jde v ruku v ruce s ekologií. Na to se často zapomíná…

k3b

Vystizne a vtipne napsany clanek, pochvala :).

Oldřich Vetešník

Opět parádní glosa, díky. :)

mat

Opravdu skvele, po dlouhe neco co me fakt pobavilo a zaroven souhlasim. Ten generacni rozdil je asi prirozena vec (viz odkaz na rimany), nicmene u IT oboru je to jeste posileno tim, ze IT lide nejsou prilis „trendy“ a maji vetsi tendenci lpet na „starotach“. Poslouchaji divnou hudbu, nosi divny hadry a tak…..

Preston Pigglesworth

Velmi pěkně napsaný článek, ale dovolím si nesouhlasit s tvrzením, že jde o správný směr vývoje. Myslím, že v každém oboru lidské činnosti je přímo nutnost znát principy co, proč, jak a proč ne jinak. Jde o to, že pokud nejste nuceni vědet proč, tak se z vás časem stane ta polodementní opice. Navíc z takové činosti nebudete mít žadný požitek. Nebo naopak budete, ale v okamžiku, kdy zjistíte, že jste znovuvynalezli kolo.
Jako praktický příkladu uvedu něco mimo IT, ale problém je stale stejný. Dnešní profesionální piloti nejsou nuceni znát tolik, co jejich předchůdci v 50-letech. V podstatě je jim ve stručnosti řečeno, proč to vlastně leti, a nejvíce se učí o obsluze palubních počítaču. Nemají mnoho praxe v navigaci podle mapy, ani pořádně vyvinutý smysl pro prostorovou orientaci. Jednou kdosi řekl, že nejhorší je posadit kapitána dopravního letadla do stroje, který se musí řídit ručně.
Jejich dení rutina je tedy “ pouze naprogramovat počítač“, sem tam nacvičit kritické situace na simulátoru. Vývoj je to logický, vynucený potřebou zhuštovat dopravu, otázkou je, zda nestačí nahradit „piloty“ programátory. V kritické situaci bude výsledek úplně stejný, protože nikdo z nich nebude létaní rozumět.
Podobně to vydím i v IT, počítač mi dá špatný výsledek a já nebudu vědet proč. To protože nerozumím assembleru..
Navíc v dnešní době počítače spíše práci lidem ztěžují, ale to je vina spíše jejich nevhodného nasazování na místa, kde vůbec nejsou potřeba. Takový praktický příklad: za 2.sv.v. stačilo gestapu na řízení říše 400 úředníků a pár strojů na děrné štítky od IBM. Dnes 400 úředníků nedokáže řídit ani magistrát většího města.. NENÍ CHYBA NĚKDE JINDE?!?!
Není spíš pravda, že programy a počítače jsou vyráběny především za účelem vlastního zisku, který je dán hloupostí kupujícího, který si myslí, že mu to ušetří čas a práci, i když většinou je tomu naopak?

A.S.Pergill

Pořád to, co „počítá“ je procesor (baterie procesorů) „chroustající“ strojový kód. A nové a nové programátorské techniky mezi ten výsledný strojový kód, co se jím krmí procesor, a mezi to, co píše (nebo dokonce nějakým grafickým frontedem vytváří) programátor, cpou další a další mezivrstvy. Ty mnohdy „inteligentně odhadují“, „co chtěl programátor říci“. A mají šílenou režii (zejména v situaci, kdy je těch „mezivrstev“ více na sobě). Takže animace, jaká jako úvod do hry bezproblémově běžela na procesoru 286 a 640 kB RAM (ovšem, psaná ve strojovém kódu) dnes dokáže (protože ji děláme ve flashi) zahltit procesor na 1 GHz, mající k dispozici 2 GB RAM.

Autor také nemá zcela pravdu v tom, že by assembler apod. byly už „zastaralé a nepoužívané“. Řada moderních her má sice „herní logiku“ v nějakém „vysokoúrovňovém“ jazyce, ale kritické funkce (hlavně takové, které se mnohonásobně opakují, třeba ve vnořených cyklech) bývají psány v C nebo dokonce i v tom assembleru.

kk

Psani assembleru do casto poustenych rutin je dneska(!) uz velmi vzacne, protoze to chce fakt fest odbornika, aby dokazal optimalizovat kod lip nez prekladac.

(Pred par lety jsem nicmene potkal cloveka, ktery lidem radil, aby psali i++;i++; misto i+=2; protoze je to rychlejsi [dotycny ucil programovani na stredni skole]).

Tisnovsky

Jasne, to je typicky priklad cloveka, kteremu sice zrovna nemusel ujet vlak, ale zustal nekde u prekladacu z 80. let (a navic se asi nepodival, co prekladac ve skutecnosti generuje a proc to takto generuje, tj. je to o level nize, nez poklada za nutne vedet, o cemz je vlastne tento clanek).

A. S. Pergill

Faktem je, že byly doby, kdy tento postup byl rychlejší. Faktem taky je, že překladač, který „myslí“ a dooptimalizuje konkrétně to přičení dvou, může vojtit zase něco jiného, na vyšší úrovni, a tudíž v důsledku i horšího. Zatím pořád neexistuje překladač, který by dokázal vidět program jako celek, tak, jak ho dokáže vidět (a tudíž i „ručně optimalizovat“) člověk. A na druhé straně řada programátorských technik (typicky OOP) dělá sice programování snadnějším, ale za cenu dvou průšvihů:
1. programuje, či spíš „programuje“ kdejaké kopyto
2. vzniká kód zatížený spoustou balastu (vytváří se „objekt“ např. jen proto, aby se z něj použila jedna z desítek funkcí, které umí, a takových objektů program vyrobí řadu a totálně jimi zaplácá paměť, případně začne i při velkých pamětech swapovat)

Staon

Faktem je, že ani člověk nedokáže program vidět jako celek, a už vůbec ho nedokáže optimalizovat jako celek. Takže mu nezbývá, než program dělit do malých samostatných celků, které dokáže v hlavě udržet. To je standardní přístup známý z libovolného inženýrského oboru.

OOP (a jiné další techniky vyšší než assembler) v žádném případě nedělá programování snadnějším, právě naopak. Pouze neskutečným způsobem rozšiřuje možnosti programátora. Stát se dobrým objektovým programátorem je běh na podstatně delší trať než se naučit instrukční sadu procesoru.

ad 1) to nijak nesouvisí s vyššími technikami. Navíc „kopyto“ v OOP napáchá podstatně větší škody než v assembleru, což je dané tím, že programování ve vyšším jazyce si dává také podstatně vyšší cíle (funkčnost, rozšiřitelnost, škálovatelnost, atd.).

ad 2) to je takový obecně rozšířený omyl. Skutečnost je taková, že pokud píšete v něčem nižším (bližším assembleru), tak při určité velikosti projektu si začnete vyšší funkce jazyka sami implementovat, tady si tam ten balast sami dopíšete. Důvod je, že s možnostmi, které vám nižší jazyk poskytuje, už nejste schopný efektivně kód udržovat a hlavně rozšiřovat. Krásným příkladem je např. GUI toolkit GTK, který je sice napsaný v čistém C, ale dost komplikovaným způsobem si implementuje objekty.

Instance objektů se nevytváří kvůli funkcím, ale kvůli datům, což je princip, který platí ve všech objektových jazycích, které jsem viděl (od C++ přes Javu ke Smalltalku). Pokud jste použil jednu z desítek funkcí, tak funkce používala data uložená v objektu. Ta data byste v paměti musel reprezentovat tak jako tak, ať už jste použil objekty nebo assembler, protože jinak by funkce neměla s čím pracovat. Pokud jimi zaplácá paměť, pak je to buď chyba programátora, což nemá ani nejmenší souvislost s OOP, nebo vstupních dat je mnohonásobně víc než se čekalo, což opět nemá souvislost s OOP.

A. S. Pergill

Zjednodušeně:
Pokud programuji v assembleru něco, co potřebuje počítat nějakou (jednu konkrétní) goniometrickou funkci, tak si ji buď naprogramuji sám, nebo si ji vytáhnu z nějaké „kuchařky“
Dělám-li totéž v Pythonu nevo Javě, tak v prvním případě importuji příslušný modul (nejspíš math), s desítkami dalších funkcí, tedy balastem, zabírajícím místo v paměti, ve druhém případě vytvářím reprezentaci příslušné třídy (obsahující rovněž hafo funkcí). Navíc je dobré se u té Javy modlit, aby se našla staticky vytvořitelná třída s příslušnou metodou; řada tříd v Javě může být vytvářena jen dynamicky, takže se v paměti vytvářejí desítky, stovky nebo tisíce objektů, se spoustou balastu okolo, z nichž voláte pokaždé jen tu jedinou metodu, co potřebujete (a nedá se to v důsledku vlastností samotného jazyka nijak obejít – když např. potřebuji počítat tu funkci uvnitř nějakého vnořeného cyklu, což je např. u grafiky docela často).
Jinak data nepotřebuji v paměti reprezentovat, data se mají načíst po co nejmenších smysluplných celcích, zpracovat, uložit a nabrat další.

František Kučera

1) importy balíčků v Javě fungují jinak než třeba includy v C/C++ …

2) Co myslíš tím „vytvářením tříd“? (viz třída vs. objekt, základy OOP…).

Pokud je potřeba vytvářet objekt (místo použití statické metody ~ funkce), je k tomu obvykle nějaký důvod – nejedná se o funkci, ale o metodu, která závisí i na stavu „svého“ objektu. S cyklem není problém – instanci vytvoříš jednoduše před jeho započetím (místo abys vytvářel nové objekty a hned je zahazoval při každém průchodu cyklem).

Hlavně je potřeba nevnímat třídy jako nějaké nutné zlo a pouhé přepravky na funkce, jmenné prostory* (tohle nepochopení OOP jsem viděl u víc lidí).

*) aneb „když je jich tam moc, udělám si novou třídu a do ní dávám další funkce“

A. S. Pergill

Objekt vytvořený uvnitř cyklu se nedomluví s objektem vytvořeným vně cyklu, Statický objekt se nedomluví s dynamickým. Alespoň ne v Javě. Opustil jsem ji právě proto, že jsem trávil při psaní reálných programů řešících reálné problémy a potřeby cca 80 – 90 % času tím, že jsem zjišťoval, jak obejít různá naprosto nesmyslná syntaktická omezení spojená s „objektovostí“.
Přešel jsem k perlu, kde tyhle nesmysly nejsou a vše funguje, jak má.

Michal Kára

> Objekt vytvořený uvnitř cyklu se nedomluví s objektem vytvořeným vně cyklu,
> Statický objekt se nedomluví s dynamickým. Alespoň ne v Javě.

Nevím jaký jazyk jste zkoušel, ale podle popisu to Java rozhodně nebyla :-D

Biktop

Je třeba si uvědomit, že ty stesky na hliněných destičkách nebyly neopodstatněné… Skutečně ty dané civilisace čekal totiž bezprostřední úpadek. Utěšujeme se tím, že už Římané si stěžovali na novou generaci, že v amfiteátrech místo Homéra hrají péčka (bez přehánění) – ale on ten Řím taky v té době upadal. Totéž Babylón a jiné civilisace.
Jejich místo pak zaujala nějaká nová krev, která nebyla líná a pokud si něco chtěla zjednodušit, tak ne z čiré lenosti, ale aby mohla svou energii využít účinněji. Ale obvykle mezi tím byla nějaká doba temna, kdy se spadlo kamsi do propasti a nějakou dobu trvalo, než se z té propasti vylezlo alespoň na úroveň těsně před úpadkem předešlé civilisace – ale to už byli jiní lidé.

Jinak „úpadek řemesla“ nemusí sám o sobě představovat vážnou tragédii – ale je hloupost tvrdit, že o žádný úpadek nejde, protože to tak tvrdí každá generace. Dnešní tesař těžko dokáže širočinou z pokáceného kmenu vytesat trámy, naštípat prkna a pak z toho stlouci několikapatrovou stavbu bez použití jediného hřebíku, s trvanlivostí několika staletí. Tzn. ovšemže dnešní tesař je horším řemeslníkem, než ten někdejší. Ale proč on by musel umět tohle vše, když hřebíky jsou za babku a máme katry, na nichž si nakoupí mnohem dokonalejší trámy a prkna, než jaké by si dovedl sám vyrobit? Určitý problém by představovalo, kdyby ani s těmito technologiemi nedokázal vybudovat víc, než přízemní kůlničku na dříví – ale taky někdo může argumentovat „a proč by měl umět nekolikapatrový dům, když ten můžeme postavit z betonu?“
Jinými slovy – jeho nutné spektrum dovedností a schopností se zužuje – prokazatelně. Otázkou je, jak využívá ty svoje ušetřené kapacity a na kolik vyjde stavba realizovaná s těmi „novými“ technologiemi v porovnání s těmi starými. Tady se totiž naskýtá ještě jedna analogie – zavedení prefabrikovaných dílců do stavebnictví: Počítalo se, že výrobou unifikovaných panelů a dalších součástí se celá stavba urychlí, zkvalitní a zlevní. Realita byla nakonec taková, že urychlení nebylo příliš významné, kvalita naopak poklesla a místo očekávaného zlevnění to bylo ve výsledku dražší, než klasické technologie.

A s IT je to zrovna tak. Nemá cenu se přít o „řemeslo“. Má cenu ale posuzovat, jestli fakt vyjde levněji zaměstnat 15 (relativně) levných lam, co toho umějí málo, koupit jim nástroje a knihovny za statisíce a nechat je vyvíjet aplikaci „po novu“ a pak platit velmi drahou údržbu, nebo jestli by 3 drazí fachmani, kterým postačí mnohem jednodušší vybavení a budou pracovat „po staru“, nevytvořili celé dílo ve výsledku (se započítáním všech vícenákladů a víceprací) mnohem levněji a do funkčního stavu ho nedotáhli rychleji.

Zilogat0r

Ma pravdu, Biktop. Juchani nad samoucelnym technologickym pokrokem, kdy zapominame, co a jak vlastne funguje, je obdoba kapely na titaniku. Pry hrali docela obstojne.

Naith_cz

Souhlasím. Problém je v tom, že se jaksi automaticky předpokládá, že vývoj půjde pořád nahoru, ale sám jste zmínil,že to tak nemusí být a pak bude záležet na tom, co vlastně doopravdy umíme.

Je to dva měsíce co jsem zase kdesi četl, že dnes už nemusíme počítat programy na byte a snažit se optimalizovat, neboť paměti a výkonu je dost…

No jak kdy. Já měl zrovna za sebou předělávku kódu tak, aby jména proměnných neměly více jak 5byte. Ono když zjistíte, že pro jména proměnných, jejich fyzické umístěni, včetně polí, 2x 10kb pro TCP/IP stack a ještě potřebujete asi 10x 1kB bufferů pro web server + systémové proměnné RTOSu máte k dispozici 64KB, tak nad takovým článkem jen kroutíte hlavou.

Na druhou stranu mi řekněte, jaký pokrok vlastně přinesly nové verze aplikací, třeba kancelářských balíků od doby Office 95/2000 aby to ospravedlnilo ty šílené nároky těch dnešních.

Jasně některé věci rychlý HW prostě vyžadují už z principu dekódování videa, hudby a pod.

Tisnovsky

Nj, vyvoj jde spise po spirale nez primo vzhuru, takze se postupne preslo od mainframu s ovladacim panelem k mainframum a minipocitacum s konzolemi (CRT+klavesnice).

Potom se reklo, ze je to uplne spatne a nastoupily nezasitovana PCcka, dneska PCcka – uz zasitovana – postupne konvertuji zase na trosku inteligentnejsi terminaly (jak Martin nedavno psal), nad temito inteligentnejsimi terminaly se vytvari vrstva pro psani „skutecnych aplikaci“ a jede se dal.

Asi to tak ma byt…

Naith_cz

Tak zrovna v tomto případě je to trošku složitější. Mainframe přepínací panel -> na terminal ano. To je jasné.

Ale dál byl trošku problém. Ono terminál byl jednoduchá záležitost na zobrazovaní textu a odesílání textu. Jenže jak se objevila grafika a komplexnější ovládání, tak to bylo stále řešitelné v rámci budovy s pevnou sítí, ale doma jste už nepochodil. Ono totiž tlačit to přes telefonní linku jaksi nešlo dost rychle. Proto dedikované počítače. Prostě bylo jednodušší si vzít 4 diskety z práce a pokračovat na tom doma, než to tlačit přes telefon rychlostí 9600baudů v lepším případě (pravidlo bylo 1200 a 2400).

Telekomunikace se vyvinuly a je internet a počítače se propojily no a pro část úloh je už je klasické PC zase zbytečně výkonné a složité.

Je tu jeden problém. Pokud by většina počítačů zmizela a zůstaly jen terminály, tak by to komunikační infrastruktura nezvládla. Už teď řvou mobilní operátoři, že nestačí ty sítě modernizovat. No neumím si představit, že by třeba jen na 5 procentech PC v našem městě jely moderní střílečky, které by se renderovaly někde v cloudu. Neodeslal bych ani email.

Tisnovsky

No já taky netvrdím, že současný trend přelít všechny aplikace a data na web/do cloudu je mi nějak blízký, spíše naopak :-)

Po počátečním nadšení z web 2.0 aplikací (mimochodem pěkný buzzword) jsem k tomuto řešení spíše skeptický a nevidím moc prospěchu z toho, že mi například engine tabulkového procesoru poběží někde na serverech googlu a u mě na počítači bude „jen“ JavaScriptové GUI (mimochodem náročnější než plnohotnotný spreadsheet).

Sdílení dat v rozumné a KONTROLOVATELNÉ míře: ano, ale vytažení všech dat a aplikací někam k poloanonymním společnostem je cesta, která IMHO dost zavání problémy, třeba už jen z toho důvodu, že tyto společnosti jsou (samozřejmě) náchylné k politickým a ekonomickým zájmům.

S tou grafikou máte samozřejmě pravdu, protože i s X-protokolem či vnc je realtime grafika mimo jednu budovu (či rychlou síť s definovanými lagy) dost problematická. Ani Sun Ray neuspěl, i když to bylo technologicky moc pěkné řešení.

Tisnovsky

S tim poslednim odstavcem bude problem: ti nabuseni fachmani budou asi pracovat s nastroji jejichz jmena neobsahuji soucasna „buzz words“, takze jejich nabidka nema sanci projit pres vyssi a stredni management :-(

Btw – je fakt strasna „zabava“ kdyz nejaky drahy a prosazovany nastroj (nebojme se ho nazvat Oracle Forms :-) nefunguje tak jak ma – potom musi nastoupit fachman, ktery vykouma z binarniho balastu co chodi po siti (zadne HTTP nebo neco podobne testovatelneho!), co je vlastne spatne.

petrib

sorry, ale s tou stavební analogií to nesedí. prefabrikace ve stavebnictví opravdu urychluje a zlevňuje realizaci. jinak by se nepoužívala. teda kromě socialistických paneláků, kde to bylo dokladem vědecko-technického pokroku lidově-socialistického stavebnictví. spíš to někdy s nasazováním frameworků a dalších technologií vypadá jak s tím socialistickým stavebnicvím – aby bylo vidět, že na to máme ať to stojí co to stojí, hlavně když se to někomu rychle prodá. to už je ale marketing a ne programování ;)

Biktop

Však ona se už taky nepoužívá v takovém rozsahu, jako dříve. :-) Právě ty socialistické paneláky jsem měl na mysli. Dnes se používají prefabrikované nosníky, překlady atp., ale nevím o tom, že by někdo dnes lil dílec P1.1-6543a pro sekci s lodžií, P1.1-6234a-var.HK pro vstup atp. Ale docela věřím tomu, že kdyby do stavebnictví lezl taky každý, kdo když zvládne napsat dopis mamince ve Wordu, propadne přesvědčení, že je z něj IT expert, a pokud si umí spočítat (to je silné slovo, ale řekněme, že si pamatuje na) příklady ze základní školy typu „dva dělníci vykoupou výkop za týden, za jak dlouho ho vykopou tři,“ tak má dojem, že může dělat managera, tak by se dnes stavěly panelové obludnosti, v nichž jakákoli nutná nestandardnost by představovala bludiště, jež by bylo preventivně vydáváno za přednost, aby někoho nenapadlo si pomyslet, že je to na …

Takže jo – souhlas – to je marketing, ne programování. A pokud se zase někdy vláda věcí našich k nám se navrátí, ty současné manažery vyženeme tam, kde je jejich místo (tj. do těch výkopů), tak třeba zas někdy rozum zavládne v našich vodách. Ukažte mi dnes nějakého managera, který rozumí tomu, co má managovat. Ostatní technické obory se ještě jakž-takš drží, ale IT se dnes bere už pomalu jako humanitní obor a podle toho to taky vypadá.

A. S. Pergill

V tom stavebnictví jde spíš o to, že jsou na tom zaháčkované různé lobby, které závisejí na aplikování určitých konkrétních technologií a nepřipustí používání technologií klasických, bez ohledu na cenu a kvalitu výsledku. Proto např. není možné postavit z „veřejných peněz“ jinou budovu než betonový shit, přestože by budova podobných parametrů z klasických materiálů stála něco přes polovinu a kvalita by byla nesrovnatelně vyšší. Je zajímavé, že když si architekti podobných monster stavějí za své a pro sebe a své rodiny, tak většinou sáhnou ke tradičním materiálům a postupům.

Tsch

Článek se mi velmi líbil, ale dovolím si podotknout, že tyto problémy se řeší po celou dobu existence počítačů. Přečtěte si článek „Opravdoví programátoři nepoužívají Pascal“, který rozvířil programátorské vody v roce 1983. Našel jsem ho např. na http://www.logix.cz/michal/humornik/Pojidaci.Kolacu.xp

Radovan

Jo, to je klasika, ještě bych k tomu přidal The Story of Mel, a Real Programmer. Někde jsem viděl i český překlad, ale nepřipadal mi tak dobrý.

ITLover

Pekné a trefné :)

Tom5

…stojí na ramenou obra ….

…nezdržují se základy, používají moderní nástroje…

Mne by ale zajímalo, co ta nová generace vlastně ale umí. Sice mají nástroje na programování, mají mraky informací, dalo by se říci ideální podmínky. Ale kde je výsledek? Že zná Tonda Facebook API? No a? To není výsledek.

Primární problém není to, že neznají základy. Klíčový problém je, že když dostanou zádání, tak ho nedokážou vyřešit (zaplať pánbůh za výjimky). A tím nemyslím vyřešit sami, ale protože nejsou schopni (nebo spíš zvyklí) o věcech přemýšlet, tak to nedokážou ani kdyby měli tým specialistů.

jehovista

kecy

Tom5

sice nevím, co jste za generaci, ale právě jste se zařadil do skupiny, co neumí napsat ani mysluplnou větu v diskusi. Takže jste mi částečně potvrdil to, co jsem psal.

backup

na druhou stranu, kolik lidi by napsalo ‚keci‘. Vlastne to vystihuje velmi dobre probiranou problematiku.

Budto jehovista ‚jenom‘ vi, ze kecy se pise s ‚y‘ a nebo dokaze aplikovat nejaka pravidla a pak napise spravne i ‚tácy‘ nebo ‚k rukám pana Mácy‘. Ja chci videt lidi pozitivne a proto vychazim z toho, ze jehovista chtel upozornit na to, ze je to vsechno asi komplikovanejsi.

jehovista

Chvili jsem daval dohromady odpoved, ale pak jsem si rekl, ze to snad ani nestoji za namahu. Koukam ale, ze musim reagovat, abych nebyl za prostacka.
Schopnych lidi, kteri umi resit problemy je podle me porad +/- stejne a tak ten zcestny vykrik do tmy prikladam tomu, ze do IT dneska dela o nekolik radu vice lidi, nez pred 30 lety, coz logicky snizuje prumerne IQ(tedy schopnost resit problemy) v oboru. Neznamena to ale, ze by vymizeli schopni programatori. Taky nevim, co jste za generaci, ale podle prispevku bych to sacoval na nejakeho zasekleho „odbornika“, pro ktereho predstavuje prave programovani assembler a reseni problemu znamena jak optimalne vyuzit registry procesoru.
Pred triceti lety jeste clovek dokazal obsahnout(nebo alespon nahlednout pod povrch) vetsinu pouzivanych technologii, ale to je dnes prakticky nemozne. Odbornik proste nemuze znat vsechno. To jde mozna v oborech, ktere nejsou tak dynamicke a kde se kazdych pet let nemeni paradigma.
Jsem jen blby javista(EE) s nemnoha zkusenostmi, ale nemam pocit, ze bych nemusel v praxi resit zadne problemy. Jen ty problemy jsou o par urovni vyse. Vysoka mira abstrakce nastroju, ktere pouzivam, rozhodne nedela z programovani nejakou mene narocnou profesi. Mozna spis naopak.

Tom5

Absolutní počet schopných programátorů je na nic. Počítá se relativní číslo: pokud mi odvětví roste (požadavky, objem..), musí s tím růst i vše ostatní, jinak to zaostává. Přičemž neříkám, že ten růst musí být stejně rychlý.

Myslím, že jsem napsal dostatečně jasně, že nevidím problém primárně v těch znalostech, ale v systému myšlení, kdy dnes převládá „konzumace“, nikoli inovace. Jenže pro inovace je potřeba mít přehled a dávat si věci do souvislostí.

To, že vy do té skupiny konzumentů nepatříte z vás dělá výjimku. Jedna vlaštovka ale jaro nedělá.

BTW za zaseklého se opravdu nepovažuju používaje poměrně nové jazyky a technologie obecně a optimalizace na úrovni registrů fakt nedělám, to je úplně jiné téma

jehovista

Ja jsem nerekl, ze do te skupiny nepatrim, protoze ani nevim, co si pod tou skupinou predstavujete.
„nevidím problém primárně v těch znalostech, ale v systému myšlení, kdy dnes převládá „konzumace“, nikoli inovace“
Tohle je ale nicim nepodlozena fraze. Ja si skutecne nedokazu predstavit programatora jako konzumenta. Programatori vzdy staveli na praci jinych lidi, ale vzdy vznika neco noveho a obor se posouva dal. V cem spociva ta konzumace, ktera udajne dnes prevlada?

Biktop

> Jen ty problemy jsou o par urovni vyse.

Myslíte? A v čem? :-)

jehovista

Tak treba v dobach programovani v assembleru byl o urovni niz strojovy kod. V dobe frameworku, navrhovych vzoru a hromady cizich api je o uroven niz vyssi programovaci jazyk, ve kterem je framework napsan. Ten vysokourovnovy vyvojar nepotrebuje vedet, jak se jeho aplikace, ktera vzninkla prohnanim/slin­kovanim/janevim­cim s nejakym frameworkem, prelozi do bajtkodu a jak se dale instrukce virtualniho stroje vykonavaji na stroji fyzickem. Je to jako chtit po programatorovi v assembleru, aby se staral, jak se mu v procesoru preklapi ktery tranzistor.
Vys je uroven abstrakce a tedy i problemy, ktere se resi.

Flasi

Přesně tak.
To bych mohl za pojídače koláčů označit programátory v assembleru a céčku, protože co se děje v procesoru mají jenom přibližné tušení.
A klidně si zavolají třeba 50 instrukcí, aby to udělalo, co má – místo aby se zamysleli a vytvořili instrukce vlastní – a procesor by potom k témuž výsledku dospěl třeba jenom na 5 instrukcí.
Takže to za ně musí dělat „praví muži“ elektrikáři, co navrhují procesory. A tak jako se „nedoukům“ ve vyšších programovacích jazycích musí dát pod nos knihovna nebo framework, tak se musí „nedoukovi“ – nízkoúrovňovému programátorovi dát pod nos hotová instrukční sada třeba univerzálního procesoru (např. x86), procesoru s instrukcemi zaměřenými na zpracování signálu (DSP), nebo procesoru specializovaného na grafiku (GPU). Oni se ti assembleristi a céčkaři vymlouvají, že je to tak rychlejší, levnější a celkově lepší používat hotové a sériově vyráběné procesory, než si v hradlovém poli sestavit vlastní instrukce. Ale to určitě říkají jenom proto, že to neumí.
:-D

Zilogat0r

Dovolil bych si te upozornit, ze o tom, co se deje v procesoru, mam podstatne lepsi, nez priblizne, tuseni. Jako vetsina assembleristu. Ono ter abstrakce mezi hradly a instrukcemi jako takovymi neni zas az tak moc, aby clovek „netusil“. Assemblerista VI. Takze laskave neprenasej vase hllmatlacke mindraky na ostatni, v zajmu jakehosi pochybneho relativizovani.

Flasi

Pokud rozumíte tomu, co se děje v procesoru na elektrické úrovni, tak rozhodně nejste typický programátor v assembleru (tak jak je potkávám já).

Drtivá většina nízkoúrovňových programátorů, kteří se věnují x86 platformě vystudovali nějaký IT obor a elektronické předměty sice měli, ale částečně je prolezli s odporem a částečně už to zapomněli, protože to k programování potřebují zcela zřídka.
Takoví lidí rozumí procesoru pouze na úrovni schémat typu jedna krabička registr, druhá krabička program counter, třetí krabička ALU. Pokud mluví o hradlech, tak je většinou chápou jako logické krabičky a pokud výjimečně programují nějaký FPGA obvod, tak za tím tu elektriku moc nevidí.
V cěčku píší častěji, než v assembleru, ale pořád píší v assembleru dost, aby se tam dali počítat

Lidé s hlubšími elektronickými vědomostmi o procesorech se často věnují jiným než x86 (a podobným) platformám a mají obvykle spíše elektrotechnické vzdělání a jsou v práci obvykle vedeni jako elektrikáři.
V céčku píší méně často, než v assembleru.

Řekl bych, že 90% lidí, co programují v assembleru se dá zařadit do jedné z těchto dvou skupin (a je poměrně logické, že jestli se tu někdo ozve, tak to bude spíš člověk, co do této taxonomie nezapadá, než ten co zapadá).
Já považuji za assembleristy lidi z obou skupin (s tím, že ta první je podstatně početnější). Pokud je pro vás assemblerista jenom člověk z té druhé skupiny, tak se naše definice liší a je mi to úplně jedno.

Že bych měl nějaké midráky, toho si vědom nejsem. Co je hllmatlácký midrák nevím. Jestli to má být htmlácký mindrák, tak ten mít ani nemoho, protože se věnuji částečně programování v assembleru (nejčastěji PLCček) a propojování řídících systémů s .NET světem. HTML front tvoří zanedbatelný podíl mé práce.

Biktop

Já už jsem asi definitivně „stará škola“, jak se zdá… Ale mě opravdu překvapuje, že tyhle věci dnešní absolveni příslušných oborů neznají. A stále jsem nepřišel na to, jakou jinou kvalitou tyto znalosti a schopnosti nahradili. Museli jsme umět matematickou analýzu, lineární algebru, diferenciální rovnice, numerickou matematiku, statistiku, fyziku, teorii elmag. pole, fyziku polovodičů, teorii obvodů, teorii signálů, teorii jazyků jako když bičem mrská, jako cvičení každý dostal za úkol vytvořit nějakou instrukci v mikrokódové paměti modelového procesoru (z toho plyne, že SAMOZŘEJMĚ jsme museli chápat, jak funguje instrukční řadič, jak jsou poskládány registry, jak funguje ALU – obzvláště když sestavení ALU z hradel řady 74xx byl jeden ze semestrálních projektů), další semestr zase ročníkový úkol – napsat v Assembleru interpret takového zjednodušeného Pascalu, další semestr – napsat jádro OS které bude mít předepsané vlastnosti (procvičovala se implementace multitaskingu, IPC atp.), programovalo se především pomocí pera a papíru, učili jsme se o počítačových sítích a počítačích, které jsme v životě neviděli naživo, zkoušeli nás z UNIXu, který jsme znali jen ze skript… Ale, světe div se, ono se to všechno dalo zvládnout! Dnes programuji převážně v C++, ale v podstatě na tom vůbec nesejde, protože už jsem za ta léta taky dělal ve všem možném i nemožném a ty jazyky jsou si – až na výjimky vypočitatelné na prstech jedné ruky – dohromady všechny podobné a zvládnout je je detail, který se za našich dob bral opravdu jen jako detail: znáte obecné principy, vše ostatní je už jen jejich specifická implementace.

Ale na co jsem opravdu ještě nepřišel – co jiného užitečného znají dnešní absolventi oproti naší generaci, když 80% toho, co jsem tu vyjmenoval, považují za zbytečné? Když mi dá někdo za úkol seznámit se s nějakým webovým frameworkem, tak si k tomu na týden zalezu, ochmatám si to a můžu v tom dělat. A může to být založené třeba na Brainfucku – je mi to fuk. Ale koukám jak blázen, když tu čtu o tom, jak současní ajťáci nemají tušení, co to je J-K klopný obvod, D-klopný obvod, jak funguje sčítačka, jak by z těch KO sestavili registr, co to je Huffmannův kód, Greyův kód, jak funguje JPEG, MPEG, co to je bezkontextová gramatika a jak se liší od regulární, na co je dobrá Fourierova, Laplaceova a z-transformace a jak funguje kompilátor. Nebo jak funguje Dieselův motor nebo asynchronní motor. :-) A ještě se jim to zdá úplně normální – „přece to po nás nikdo nemůže chtít!“ Ale já se ptám – a proč ne? Co umíte místo toho?

Samozřejmě že se nedá postihnout vše. Ale já mám pocit, že na to někteří (dnes už spíše většina) jedinců rezignuje do té míry, že se raději nepokoušejí naučit vůbec nic.

jehovista

„Ale koukám jak blázen, když tu čtu o tom, jak současní ajťáci nemají tušení, co to je J-K klopný obvod, D-klopný obvod, jak funguje sčítačka…“
No jestli to nebude tim, ze v davnych dobach bylo programovani domenou absolventu technickych VS, protoze to tehdy byla skutecne tak trochu magie a tak meli vsichni programatori tebou popisovane znalosti. Dneska ma pocitac doma kazdy a materialu pro vyuku programovani je spousta i zdarma.

P.S. Na FELu se to co jmenujes uci studenti porad. Loni jsem FEL na CVUTu dokoncil a na vsechny ty tve otazky ti z hlavy odpovim(mozna az na ten asynchronni motor – silnoproudu jsem moc nedal). To mi ale nebrani v tvrzeni, ze programatorovi je tohle vsechno k nicemu. Jsem vicemene cerstvy absolvent, na chleba si vydelavam programovanim a muzu s klidem rict, ze algebra u Olsaka(na poprve za jedna:) byla sranda oproti tomu, co si musim doplnovat ted samostudiem.
P.P.S. Tobe asi vadi, ze mas plnou hlavu zbytecnych znalosti a mladi, nezatizeni programatori ti slapou na paty :D (no flame)

Biktop

Ale ono by to doménou techniků přeci mělo být. Je chyba, že už to není doména techniků – a všechny problémy, které se ubjevují, jsou toho jen důsledkem. protože to prostě dělají lidé, kteří nemají technické myšlení, nejsou technikové.

Milý příteli, že to jsou zbytečnosti, to jsem si myslel jako student. Ale čím víc mi je, tím víc vidím, že to zbytečnosti nebyly. A pokud jde o to šlapání na paty – mě spíše děsí, že nic takového nepozoruji ani v náznacích. Děsí mě, že o tolik mladší lidé mají o tolik větší problémy zorientovat se v nějakém problému, přeorientovat se na jinou technologii, brát věci tak jak jsou a najít řešení v jejich rámci…

jehovista

To slapani na paty byl spis vtip:) Technicka VS je urcite dobrou cestou, jak si zlepsit logicke uvazovani a schopnost resit technicke problemy, ale podle me je to spis v cloveku uz pred nastupem na VS a prave proto si techniku vybere. Ne, ze az na technice ziska zajem o reseni problemu. Nektere predmety na VS mohou dat programatorovi hodne(algebra, diferencialni pocet, teorie grafu, slozitosti, …), ale rozhodne si nemyslim, ze rozdil mezi dobrym a spatnym programatorem je ve znalosti asynchronniho motoru a TTL logiky.

Zilogat0r

Neslapou na paty, a ani slapat nemohou – protoze neznaji principy. A znalost principu (namisto pouheho nasazeni/pouziti) je nutna k jedne kouzelne veci – optimalizaci a aplikaci triku. Coz je presne to, co odlisuje dobry program od podprumerneho.

A tak jsou tito „takyabsolventi“, co nebyli nuceni znat a rozumet, jen jim stacilo prebirat a pouzivat, konkurence v podstate neschopni, jejich program bude vzdy podprumerny.

Ano, bude hotovy rychle – protoze znaly programator by to tak fusersky nenaplacal, stydel by se timto stylem vymenovat rychlost tvorby za pokles kvality. Ale je jen otazka casu, kdy trh zmoudri, a zacne rozlisovat mzi bloatem a rozumnou implementaci za pouziti adekvatnich nastroju.

May’s Law: „Software efficiency halves every 18 month, compensating Moore’s Law“. <- smutne.

Zilogat0r

Je tu jeden rozdil – rok 1984 byl ve znameni skokoveho narustu vykonu (prechod k 32bitum, padla hranice 20MHz, prvni virtualizace pameti), padu cen pameti, a vubec, cekala se „ruzova budoucnost“. Energie bylo dost, neumela se vyuzit.

Dnes je situace opacna – frekvence procesoru uz nejakych par let stagnuje,
pametove kapacity sice stoupaji, ale prichod mobilnich zarizeni diktuje neuprosny pozadavek na vydrz baterii – coz by opet melo tlacit autory systemu k omezeni bloatu. V roce 1995 bezel jakysi vyzkum efektivity implementaci, a zjistilo se, ze uzitecnou cinnost vykonava 5-10% (!) instrukci, zbytek jsou ruzne validace, testy, upravy argumentu na interfaces, rezie okolo. Kolikpak by to bylo dneska?

A chceme, aby nam netbook vydrzel 10 hodin, nebo 50 hodin?

Zilogat0r

… a az o mne budete chtit nekam neco psat, tak mi to muzete rici rovnou, at se to nedozvidam z druhe a pripadne dalsi ruky. rad si sve postoje obhajim :P.

František Kučera

Ad „Ale je jen otazka casu, kdy trh zmoudri, a zacne rozlisovat mzi bloatem a rozumnou implementaci za pouziti adekvatnich nastroju.“

Obecně souhlas, ale jsou oblasti, kde je software více méně spotřební zboží – rychle vyrobit, chvíli používat a pak zahodit – často se to týká webů. Tam je možná „trh* dost moudrý už teď“ – protože nekvalitní (očima perfekcionisty), ale dostatečně použitelné (očima zákazníka a pragmatika) je to nejefektivnější řešení. Asi tu prostě nelze mít stejné nároky na kvalitu v oborech, kde software běží deset a více let a musí fungovat na 100%.

*) resp. trh ve smyslu „odběratelé“ – ne trh jako takový (ten nemůže být ani moudrý, ani hloupý).

Zilogat0r

Nesouhlasim. Program ma oproti jinym vyrobkum (kde paradoxne tato idea vymeny upadku kvality za laci a masovost, v pripade uzenin bezmasovost, nedosahla takovych rozmeru), jednu vyhodu:

– pise se jednou
– pouziva se mnohokrat
– vyroba kopii nebo opakovane pouziti ma v podstate nulove naklady

Takze je nemoudre srovnavat vynalozeny cas/cenu programatora vuci efektivite jedineho behu jedine instance. Uvedu priklad:

Na prumernem pocitaci trva nacteni portalu, jako idnes.cz, rekneme pres 6 sekund (mam zde rychlou sit a rychly stroj, a trva mi presne 5 s.).
Denne jej takto navstivi, odhadem 700 000 lidi. Jde tedy o ztratu 40 dni casu. Jejich pocitace za tu dobu propalily 500,- Kc jen natazenim stranky (naklady na blikajici flashoviny nepocitam, zde se pak dostavame do stovek tisic), zrovnatak cenu prenesenych dat.

Vazne mate pocit, ze ~100000 denne by nestacilo k lepsi optimalizaci portalu, ze se to „nevyplati“? Tyto naklady, pachane neoptimalnim software, jsou totiz vetsinou dobre rozdistribuovany a tim i skryty, a tak se nad nimi mavne rukou – coz ale neznamena, ze neexistuji.

Software s trim, jaky ma potencial reusovatelnosti a snadneho kopirovani, by mel o optimalitu usilovat ze vsech oblasti lidske cinnosti NEJVICE. A je jen prokletim poslednich desetileti, ze vykon hadrwaru exponencialne narustal, a hrichy proti tomuto pristupu tak uspesne maskoval a dovoloval zamest pod koberec. Nicmene, dnesni generace uz je pod tim kobercem ani nevidi, takze nelze cekat, ze by je odtamtud vymetla. Hrbolaty zapachajici koberec je povazovan za „standard“ :(.

Flasi

Doteď jste v diskuzi vypadal jako vzděláním a zkušenostmi ošlehaný mazák a teď napíšete příspěvek, jako student střední školy.

Berete celých 6 sekund jako ztrátu, jako kdyby se ten čas dal teoreticky zoptimalizovat na 0.
Portál idnes prostě nabízí bohatý obsah, to je jeho účel, proto tam lidé chodí. Takový portál na běžném počítači a lince těžko načtete pod 2 sekundy i kdyby se programátoři rozkrájeli.
Ano, je tam plno reklam. Mnoho z nich ve flashi. A mnoho z nich je určitě větši, než by bylo nezbytně nutné – ale opět ty reklamy, které pravděpodobně tvoří většinu datového objemu stránky (odhaduji, nepočítal jsem to) jsou nutnou součástí jejich obchodního modelu, bez kterého by to nefungovalo vůbec.

Čili bohatý portál s hromadou reklamy jsou výchozí požadavky. Jak to chcete nějak zásadně optimalizovat, abyste to třeba dostal na 2 nebo na 3 sekundy?

A co tím vlastně ušetříte? Především cizí peníze, ne vlastní. Idnes je portál v konkurenčním prostředí ostatních portálů, ne společnost pro veřejné blaho. S pořádnou optimalizací portálu by měli značné náklady. Jak se jim to vyplatí? Ocení to zákazníci, že jim to ušetří zlomky haléřů denně? Těžko? Ocení zákazníci to pohodlí, že to budou mít načtené rychleji. To mohou. Ale v praxi to bude tak, že když to nebude kriticky pomalé, tak je bude zajímat hlavně obsah.
No a máte pocit, že ty sekundy by se opravdu ušetřily? Spousta lidí má stejně spuštěný počítač celý den. Nebo po pevně danou dobu. Na počítači neděláme jenom prohlížení idnes, takže čas ušetřený načítáním idnesu by se stejně musel krátit nějakou značnou konstantou.

K vašemu číselnému výpočtu se moc vyjadřovat nechci, protože netuším, co jste do toho započítal, abyste se dostal na těch 100 000 Kč denně.
Pokud bych bral těch vašich 5 sekund (jim odpovídá těch 40 dnů), tak to máme při 200 W odběru počítače a 5 Kč za 1 kWh celkem 960 Kč.
Čili 960 Kč by byla teoretická úspora za den, kdyby idnes dostala načtení homepage na 0 sekund a kdyby kvůli tomu každý čtenář vypnul počítač o těch 5 sekund dříve. Dělá to 14 setin haléře na čtenáře denně.

Tohle jsou prostě drobné, to se prostě nevyplatí. Tím spíš, že nejpozději za 5 let bude potřeba celý portál předělat, protože jinak nevděční zákazníci, kteří neocení 0,0014 Kč denně, přejdou jinam.

Zilogat0r

No, necekal jsem, ze tuto trivialitu budu muset vysvetlovat, ale budiz:

– nactenim aktivniho obsahu stranky kolotoc zbytecne spotreby teprve zacina. pokud uvadim 100000,-, pak SILNE PODHODNOCUJI. napr. jen implementace flashoveho pluginu je natolik zoufala, ze si dovoluji tvrdit, ze minimalne 95% spotreby z brouzdani zminenym idnes.cz pada na promrhany vykon CPU v tomto pluginu. pustte si nekdy top nebo obdobnou utilitu, a porovnejte vytizeni systemu s nactenym idnes.cz a bez.

– na webovy portal chodime kvuli informacim. primarne. v soucasne dobe jsem napr. videl mnoho lidi, jak davaji prednost britskym listum, co se informaci o deni na blizkem vychode tyce. proc? je to nactene okamzite, kyzenych informaci tam bylo n-nasobne vice, tedy neni co resit. bez flashe, bez dukatu, bez blikajiciho opruzu. uz mi rozumite? pozadavky zakaznika a zadavatele reklamy jsou zde v prikrem rozporu.

Flasi

Takže číslo 100 000 jste si prostě jenom tak vytáhl z pozadí? Aha.
Flash je hodně žravá technologie. Ale co s tím? Flash donedávna nabízel možnosti a pokrytí u uživatelů o kterých se ostatním technologiím mohlo jenom zdát. A proto se prosadil na webu jako formát pro reklamy, infografiku a video.
Klidně s vámi můžu souhlasit, že flash je děs. Ale nabízí věci, který lidé chtějí a to za akceptovatelnou cenu. A pro koho za neakcepotovatelnou, tak si ho může nějak blokovat, nebo jít jinam. Ale většina to není.
To bysme se tu mohli klidně i shodnout jak je energeticky zoufale neefektivní individuální motorismus. Ale lidé to za ty peníze chtějí, tak holt nastartujeme 50 kW motor a spálíme megajouly z benzínu, abysme si přivezli 10 kg nákup. Proti tomu je nějaký flash úplná legrace.

Jestli někdo chodí na blisty, tak to, že se to rychleji načte, je IMHO asi tak sedmnáctý důvod v pořadí. Navíc absolutně nechápu, proč se pouštíte do srovnávání komplexního portálu (idnes) s víceméně názorovým blogem (blisty).

Zilogator

Kde jsem cislo ziskal a jak je nepodstatne, pokud jde o dolni odhad, co je pritom stale n-nasobne vetsi, nez zminene naklady…

Pokud jde o kyzenou informaci, nemusi byt portal komplexni, textovy derivat obsahu idnes (mobile idnes etc.) preci prinasi tutez informaci, jen s omezenou mirou balastu. proc? na mobilnich platformach byl neunosny.

Flasi

Takže vy hodíte do placu číslo a neřeknete jak se k němu dojde. Je to prostě nějaká úspora. A je prostě n-násobně menší, než něco. Ale co? Vašeho příkladu (idnes a jeden den) se netýká, protože to (jak jsem ukázal na svých číslech) by bylo o mnoho řádů větší.
Takže to má být úspora všech serverů v Česku za den? Za rok? Nebo na celém světě od vzniku flashe? Z vaší strany je to debata ne na úrovni střední, ale základní školy.

To má být nějaký argument? Spoustu serverů má nějakou mobilní verzi. Ale zatím jsem tedy nikde nečetl, že by tam chodila nějaká významná skupina z „normálních“ počítačů. Většině lidí to na „normálním“ počítaci únosné připadá a preferuje tu celkovou grafickou a obsahovou bohatost před úsporností a strohostí mobilních/textových verzí. Opět – tato část diskuze začala nesmyslným srovnáním a nikam se nevyvíjí.

Zilogat0r

Jasne jsem napsal, ze dolni odhad je n-nasobne vetsi. Chapete takto ostrou nerovnost? A chapete, ze v takovem pripade je uplne jedno, ze Vam vyslo cislo vetsi, protoze tim spis je me tvrzeni relevantni? A nebo maminka ve 4 letech cosi zanedbala… a nevysvetlila, co vysvetlil mela…

Flasi

Ne, nechápu to vůbec. Tu zmíněnou větu:
„Vašeho příkladu (idnes a jeden den) se netýká, protože to (jak jsem ukázal na svých číslech) by bylo o mnoho řádů větší.“
jsem možná napsal trochu kostrbatě, ale předchozí výpočet snad byl jasný.
Pro jistotu znova a velmi podrobně:
Počítač berme s příkonem 200 W. Cenu za 1 kWh elektřiny 5 Kč.
5 sekund načítání * 700 000 uživatelů = 972 hodin (čili těch 40 dní)
972 hodin * 0,2 kW = 194,5 kWh
194,5 kWh * 5 Kč = 972 Kč.
Čili necelá tisícovka. (Na jednoho člověka se to podělí těmi 700 000 a vyjde nám těch 14 setin haléře.)

Čili vaše číslo (100 000 Kč) je o tři řády vyšší než můj výpočet. Co tedy vaše číslo znamená?

Vy prostě máte nějaké číslo o tři řády větší. A tvrdíte, že dolní odhad (čeho? skutečných nákladů?) je n-násobně větší než náklady (zřejmě ty spočtené).
Proč by měly být skutečné náklady n-násobně větší? Třeba jo, třeba je tam potřeba započítat spoustu dalších věcí.
Ale vůbec nezmínit jaké věci – a ještě se tvářit, že když mi vyšlo malé číslo, že to tím pádem potvrzuje vaše tvrzení. A ještě si hrát na sarkastického. Jak to nazvat?
Milý pane, to je chování manažerského fracka a ne vzdělaného technika.

Zilogat0r

Porovnavame zde preci naklady na optimalizaci versus uspory, vznikle optimalizaci. Proto nechapu, proc sumu uspor DELITE poctem uzivatelu, a co nechapete na tom, ze pokud samotny load stranky spotrebuje ~1000,-, tak naroky jejiho vlastniho behu po cas prohlizeni muze byt cislo 100x vyssi. Predpokladam, ze 500 sekund, tj. 8 minut, neni jako cas procitani portalu az tak nadnesene cislo.

Nejste vy nahodou nejaky Java guru? :)

Flasi

Ok. Takže se konečně někam dostáváme. Už to není nedůležité, už jste napsal, že to navíc je další prohlížení stránek.
Dělím to proto, abych viděl, kolik to přinese jednomu člověku. Protože to jsou úspory, které by se teoreticky daly uživateli „prodat“. Protože jinak porovnáváme MOJE náklady na optimalizaci versus úplně CIZÍ úspory. Jestli máte šéfa, který tohle akceptuje, tak se radujte, většina lidí ho nemá.

Ale zpět k číslům. Tak jsem si spustil idnes s flashem a proklikal pár stránek. Načítání každé stránky znamenalo procesor na 100% na pár sekund. Po ukončení načítání se vytížení procesoru mého obstarožního notebooku s jednojádrovým celeronem pohybovalo střídavě na nula až 20%. Ať počítám jak počítám, tak těch 500 sekund navíc oproti teoretickému ideálnímu stavu fakt nevidím. To bych musel být na tom idnesu pár hodin, abych nabral těch zbytečných 8 minut.

A pro jistotu zopakuji, že „okamžitý“ load mají tak možná statické stránky na lokálním serveru. Obsahově bohatá stránka na internetu se prostě vždycky pár sekund načítat bude. A značná část uživatelů nevypne počítač o ty ušetřené sekundy/minuty dříve. Čili jestli chcete docílit snížení celkové spotřeby elektřiny v zemi (přesněji bych měl napsat zmírnění růstu spotřeby, ale to je teď fuk), tak tady prostě moc velký prostor nemáte.

Vy prostě ušetříte uživateli maximálně pár desítek sekund na idnesu a on si potom pustí hru, nebo HD video a bude to mít zapnuté hodinu, dvě s procesorem na 100%. A ještě bude u té hry/videa tolik zabraný, že si neuvědomí, že je mu celkem teplo a mohl na regulátoru topení v bytě sundat stupeň nebo i dva (čímž za tu hodinu až dvě zbytečně spálil asi tolik elektřiny kolik by mu vaše supernenáročná idnes ušetřila možná za měsíce).

Lidem, kteří počítali kolik na celé zeměkouli prokape vody ve špatných kohoutcích (aby si pak dali sprchu, protože si byli „jen tak“ zacvičit) jsem nikdy nechápal, a tudíž nechápu ani vás.

backup

….co jiného užitečného znají dnešní absolventi oproti naší generaci,…

jsem take stara struktura. U nas v rodine se provozuje IT uz v druhe generaci. Na zaklade dnes a dennich zkusenosti Vam proto mohu Vasi otazku zodpovedet.

Dnesni generace vas jednoduse ‚ukeca‘ na jednanich. Moje deti vsechny vystudovaly (studuji) tu informatiku a cely den sedi jen na jednanich a schuzich, kde se vytvareji papiry , plany , grafy a vsichni vsem posilaji maily, ktere obsahuji vsechny predchozi maily a neustale se zanasi do excelu nejake terminy. Jednou za mesic se sejdou ve volnem case na akcich slouzicich k utuzeni kolektivu, aby se i nadale vsichni meli radi.

V ramci vsech techto aktivit se _take_ okrajove nekdy jedna o programech, ale to jenom v ramci toho, jak dalece jsou s planovanymi ulohami programatori v Indii, Petrohradu, Minsku nebo v Brne. Nejdulezitejsi je, kdy bude jaky rollout a kdy se budou príste vsichni commiten. Ty dovednosti, ktere jste popsal, jsou dnes skutecne k smichu.

Biktop

Tak to jsem asi nepochopil. Já jsem měl za to, že mluvíte o problémech, jež se řeší. Přeci jen – jazyk je pro mne pouhým nástrojem. A problémy se řeší v podstatě ty samé stále dokola už od 60. let takže na to jsem reagoval a to jsem měl na mysli tím, že ta úroveň abstrakce je ve výsledku stále stejná.

jehovista

Ja uz nevim, jak to lepe vysvetlit. Vidim rozdil mezi paskovou mechanikou a parserem v cecku a treba webservicou s wsdl, xsd apod. Proste to je podle me vyssi stupen abstrakce. Mene casu se travi se samotnymi daty/funkcemi oproti casu, ktery se stravi s jejich cim dal vice abstraktnimi reprezentacemi.

I/O

Podle mě máte o těch dobách páskových jednotek dost zjednodušené představy.

jehovista

Mozna mam, mozna nemam. Urcite ale vim, ze takova abstrakce dat a jejich toku jako je dnes pred triceti lety nebyla.

Oxymoron

Na jednu stranu s článkem souhlasím, na druhou stranu nikoliv.
Je pravda, že s dobou některé nástroje mizí (např. ony děrné štítky), takže už není nutné je umět ovládat. Na druhou stranu, pokud někdo staví na výsledcích někoho jiného, měl by mít přehled, proč a jak to něco funguje. Typicky se nedostatek přehledu základů projevuje v tom, že nástroje určené k nějakému účelu jsou používány i k účelům jiným, někdy i naprosto nevhodným. A to díky tomu, že nástroje se používají ne proto, že by jejich použití bylo vhodné, ale proto, že dotyčný už nic jiného neovládá, nebo prostě proto, že daný nástroj „používá prostě každý“.

V diskusi padlo přirovnání, že nové Windows jsou pomalé, ale když se použijí na novějším, výkonnějším hardwaru, že běží dobře. Na jednu stranu ano, na druhou stranu se nabízí otázka, proč kvůli novým Windows kupovat nový počítač, když na tom starém se starými Windows dosáhnu stejného efektu. Můj oblíbený vtip na toto téma: Máme stále rychlejší a rychlejší procesory, máme více a více paměti, máme výkonnější a výkonnější disky … tak proč se ten blbej Word spouští pořád stejně pomalu.

Tím chci říct, s používáním nástrojů založených na jiných nástrojích založených na jiných nástrojích založených na jiných nástrojích založených na jiných nástrojích založených na jiných nástrojích … přibývá něco, čemu já říkám režie. Vývojový framework spotřebuje nějaký strojový čas na interpretaci některých příkazů, kompiler Céčka má několik schémat, jak kompilovat daný příkaz a i kdyby v nějakém případě bylo možné napsat část algoritmu např. v assembleru podstatně lépe, kompiler přiložín hromadu balastu okolo. A dovolím si tvrdit, že čím dál výkonnější hardware, čím dál více paměti, atd. potřebujeme z větší části právě kvůli tomu balastu. Pamatuji se, že dávné pekladače Turbo Pascalu uměli vkládat do programu i assembler.

Dovolím si jedno porovnání: Windows 98, Windows 7 a Kolibri OS 0.7. Všechno to jsou operační systémy. Windows 98 zabíral na disku asi 200 MiB, Windows 7 zabírá tuším asi 2 GiB. A přitom toho z mého uživatelsého pohledu moc navíc neumí. Pokus vezmu KolibriOS, tak jeho instalace má asi 3 MiB (ano, tři MiB) – je menší následně i rychlejší, rychleji bootuje, protože obsahuje podstatně méně balastu.

Michal Augustýn

Naprostý souhlas.

To s těmi děrnými štítky mi přijde, že jde proti duchu zbytku článku. To totiž není technicky základ, na kterém by stavěly nástupnické technologie (tj. nejde o vrstvení). Principielně ale ano – uložit nuly a jedničky někam, pokud možno efektivně (~kódování).
A právě ten princip by měl IMHO každý správný developer znát. Fakt mi nejde o znalost ASCII nebo opkódů zpaměti…

kolemjdoucí neprogramátor

Chápu, kam svým názorem míříte, ale nelze s ním úplně souhlasit. Bohužel zužujete problematiku jen na omezený pohled. Typicky ta Windows – naprosto uznávám, že z vašeho pohledu vám to nepřináší nic navíc, ale vezměte prosím v úvahu, že to je kus softwaru, který musí obsloužit jednak velmi různorodý hardware, ale především poskytovat podporu ještě různorodějšímu softwaru a sedět u něj budou uživatelé jak profesionálové, tak laici.

OS tak na sebe nabaluje obrovskou spoustu věcí, která by tam pro profesionála skutečně být nemusela – bezpečnost si může vyřešit jinak, správu paměti a oddělení procesů si může vyřešit jinak, obsluhu specifického hw si může zajistit každá aplikace sama, nebyla by potřeba tak široká podpora různých sítí atd. U každé věci, kterou tam najdete, můžete říct, že tam být nemusí – koneckonců v DOSu si také každá aplikace zajistila téměř vše sama.

Ovšem reálně přes nárůst režie je nepopiratelné, že možnosti jsou mnohem dál, než tomu bylo v době DOSu, nebo jeho zmiňované nadstavby w98. Nechci vyzdvihovat současná windows jako nějaký etalon kvality, to ani v nejmenším. Přesto ale musím plně uznat, že aplikace, které dnes mohu využívat, by nebylo na w98 ani napsat, natož zprovoznit. Resp. bylo, ale bylo by to programátorsky tak náročné, že by se to prostě vůbec nevyplatilo.

Mým oborem je jinak DTP a naprosto stejné stesky tam vládnou také. Úpadek byl už příchod počítačů, kdy fachmani hudrali, že nová generace už neumí ručně řešit rozpaly mezi znaky. A já teď stejně hudrám na novou generaci, která žije více webem a nemá potuchy o klasických tiskových technologiích, neumí používat CMYK, nezná spady, neumí řešit traping atd. Naštěstí nejsem ale tak zkostnatělý, abych nedokázal uznat, že to, co lze udělat současnými technologiemi, by se před patnácti lety ani neobjevilo v mých snech. Práci, kterou zvládnu současnými rozežranými programy za hodinu, bych dělal před deseti lety dva dny – ovšem také je pravdou, že to dělám úplně jiným postupem, využívám automatizaci, různé skripty apod., protože dělat to novým programem starou cestou, zabere to zase dva dny nebo i déle (a že to ti lidé „staré školy“ skutečně tak dělají a nadávají, že nový program jim nic nepřináší). A možná se tím dostávám k jádru pudla – problém není nutně v režii a tedy věci trvají stále stejně dlouho na mnohem výkonnějších strojích, ale v tom, že je nutné změnit určité návyky, které umožní využít potenciál nových technologií, jak hw, tak i sw.

patrony

Fakt moc pěknej článek.. poučil i pobavil!

muf

Ale oni dnešní programátoři jsou skutečně velmi často ony polodementní opice…Věnuje se tomu kdejaký Jouda a podle toho to pak vypadá…
A proč se obor stále vyvíjí? To je velmi jednoduché – stále totiž žijí lidé, kteří rozumějí podstatě věci, vědí, jak to všechno funguje…právě oni pak dokáží aplikovat nové nápady v praxi. Bez nich by to nešlo.
Naštěstí je těch, kteří podstatě věci rozumějí stále _relativně_ dost i mezi mladými. Katastrofa nastane až tehdy, když tito lidé zmizí. Polodementní opice, které znají pouze povrchní pohled, totiž ani nedokáží systémy udržet v chodu, natož tvořit něco nového.

juna(k)

>stále totiž žijí lidé, kteří rozumějí podstatě věci, vědí, jak to všechno funguje..

a co mate na mysli tim „to vsechno“?

nemo

V prvom rade dobry clanok ale zaver pre mna je jednoduchy – a co ako ?
Proste to tak je a aj bude. Toto su vseobecne kecy ktore su vzdy taketo nerucite a vecsinou negativne. Mna skor trapi ked mam konkretny problem ako ho budem rieist s akou reziou, ktore nastroje a ake budu aj poziadavky na ludske kapacity. To ze vecsina dnesnych absolventov a programatorov bohuzial nevie risit specificke problemy a idu skor takym sablonovym sposobom to je vec druha.
Ale zasa trh tvori dopyt a podla toho sa formuje ponuka. Myslim si ze cez 80%, mozno aj viac, systemov co sa dnes tvori su nejake frontendy nad databazov a v konecnom dosledku ide len o vytahnutie udajov, pozutie a vyplutie klientovy. A vecisnu casu naozaj programator travy len tym ze riesi farbu buttonu pretoze uzivatelovy sa to nepozdava a to je to co uzivatel vydi a moze komentovat. Na optimalizaciu nejakeho generovaneho sql dotazu potom uz nieje moc casu a hlavne neni problem povedat zakaznikovy kupte si vykonnejsi HW.

Skor je blbe ked sa marketing snazi preda novinku ako strasne pokrokovu vec a clovek po zakupeni zisti ze mu vznikla len sada novych problemov.Akurat som rieisl ako pripojit monitor. Banalita kym clovek nepride na to ze display port neni vsade, hdmi zvlada max fullhd (hdmi b sa nikde realne nepouzio) takze nakoniec aj tak skoncim na dvi-d alebo na kvalitnom vga kably ktory zvladne tiez dost vela.

František Kučera

Je pravda, že abstrakce v čase stoupá, čím dál víc „nízkoúrovňových“ úloh se automatizuje, řeší pomocí knihoven, frameworků, komponent… více řešíme to „co“ místo „jak“. Nicméně žádný strom neroste do nebe… S rostoucí abstrakcí a „vysokoúrovňovostí“ roste i složitost systému. Čím více vrstev nebo komponent, tím více se toho může pokazit. Žádná komponenta nebo vrstva není dokonalá a tyto nedokonalosti se násobí. S rostoucí abstrakcí si člověk v jednom směru pomůže a ušetří práci, v druhém si ale práci přidělá, protože musí řešit, jak všechny ty „krabičky“ poskládat dohromady, nastavit, aby se spolu domluvily, řešit jejich interní problémy a chyby, obcházet jejich nedokonalosti… Nakonec se toho zase tak moc nemění – člověk kromě toho „co“ pořád řeší i trochu toho „jak“ – akorát je to jiné „jak“ než dříve – tentokrát neřešíme registry procesoru, ale snažíme se přesvědčit nějaký framework, aby dělal to, co chceme. V některých případech (zejména u jednoduchých úloh) je dokonce výhodný „návrat na stromy“ a obětování nějakého času ruční nízkoúrovňové práci – místo obětování času krocení vysokoúrovňových nástrojů.

imploder

Přesně tak mi to taky připadá. Striktní držení se zásady „nedělat sám nic, na co by se dala použít hotová knihovna“ může vést k tomu, že člověk nakonec řeší složitější problém a probírá se balastem, který by ho při nízkoúrovňovém řešení neobtěžoval a mohl by se tak víc soustředit na řešený problém.

Moje vlastní řešení má tu výhodu, že si ho můžu udělat přesně tak, jak potřebuju. Nevýhoda je, že je s tím u složitých problémů spousta práce a taky že musím samozřejmě vědět, jak na to.

Pokud cizí řešení, co se nabízí, odpovídá požadavkům jenom zhruba a primárně je to třeba určené na něco trochu jiného než potřebuju, je potřeba zvážit, jestli není lepší se na něj vykašlat a vytvořit vlastní. I když cizí řešení dělal lepší programátor, může být pro moje použití horší, protože nedělá přesně to, co potřebuju.

Michal Kára

To je pravda. Ale při rozhodování je třeba taky brát v potaz, že člověk často podcení složitost problému. Prostě, tu knihovnu třeba nepsal lepší programátor, ale strávil spoustu času na vyřešení těch „nepříjemných drobností“ co zaberou při řešení problému 90% času :-)

littleli

Pěkně sepsané, jen mám pocit, že čas od času někdo z těch starých pardálů má pravdu. Co chci říct je, že všichni velcí vědátoři, především asi fyzici a matematici, vždycky museli vystoupit z rozjetých vlaků a rozjet vlak vlastní. U počítačů, programování je to stejné.

Za každou kupou abstrakcí, které nakonec vytvoří nějaké to nové peklo je nakonec vždycky princip, který je jednodušší a lépe „škáluje“ resp. hodí se pro řešení lépe. Často prostě člověk musí vyprázdnit nádobu, která brání naplnění novému obsahu. Nepodceňoval bych intuici, zdravý rozum ani ochotu vrátit se k podstatě problému bez všeho toho břemena, co si sebou neseme.

Oxymoron

V době 8bitových počítačů každý obsluhoval hardware, jak uměl. Pak někdo přišel s nápadem sjednotit alespoň funkce, jinými slovy, např. všechno, co fungovalo jako tiskárna a dodržovalo to strukturu funkcí, které byly k obsluze periferie potřeba, se mohlo obsluhovat stejně, stačilo jenom zadat adresy těch funkcí do systémových proměnných. Pak někdo přišel s tím, že by bylo vhodné mít možnost používat více takových funkcí současně (windows, Linux, OS X, …) a objevila se virtualizace, kdy se další vrstva programů vydává za hardware. Jenom čekám na dobu, kdy někdo přijde s tím, že by bylo dobré, aby bylo možné na jednom počítači spouštět více takovýchto virtualizérů a přidat tak další vrstvu virtualizace …

op

Přes 10 let jsem pracoval v zahraničí. Když jsem tam na pracovišti něco navrhl, tak se vždy přemýšlelo, jaké by to přineslo výhody, jak by se to dalo realizovat, … Vedoucí podávání návrhů podporovali u všech svých podřízených. V ČR jsem se setkal s tím, že v lepším případě byly mé návrhy ignorovány, v horším případě jsem byl upozorněn, že kvůli prosazování změn budu mít problémy.

Článek zmiňuje, že konzervatismus ve vztahu k technologickým novinkám není nic nového, a že se táhne celou historií lidstva. To je pravda, ale dynamické západní společnosti tento problém řeší tak, že vedoucí pracovníky školí, aby svůj „pud“ zamítnout cokoliv nového, co nepochází od nich, potlačovali. Aby se nebáli nových věcí a podporovali iniciativu lidí. To je jeden z důvodů, proč jsou ty společnosti tam, kde jsou. V ČR není výjimkou, že ve vedení přetrvává myšlení z doby totatality. Dnešní padesátníci a šedesátníci (právě tato věková kategorie bývá ve vedení) prožili většinu svého života v totalitním režimu. Nikdy neprožili, že by se věci daly dělat jinak. Současní mladí mají možností více, ale jejich názory jsou bohužel deformovány právě těmi staříky ve vedení.

Co s tim? Nevím. Možná by stačilo, kdyby se nad tím každý zamyslel.

Radovan

Nedávno jsem v nějaké diskuzi viděl moc pěknou odpověď:

Zamyslet? Tato schopnost byla lidstvu evolučně odstraněna! :-D

peregrin

No já nevím. Počítám se do nejmladší generace a přece ovládám ASM (akorát musím mít manuál pro danou architekturu) a mé hlavní programovací jazyky jsou C/C++ (případně Java a hromada dalších).
Neplatí, že vždycky všichni zapomenou to, co uměla předchozí generace. Vždycky musí zůstat někdo, kdo bude umět to, v čem byly ty nové, moderní technologie naimplementovány, jinak by se tyto technologie nedaly udržovat.

uf

Vaše články čtu rád – pobavím se, poučím a zamyslím.

Honza

Moc pěkný článek!!!

A co s tím uděláme? Asi by každý ajťák měl po dvaceti letech programování hledat manažerskou kariéru, tam ho mladí nebudou tak drtit :)

pje

Autorovi uniklo, že v tom popisovaném vývojovém procesu ubývá člověka a přibývá významu hrstky exkluzivistů. To důležité, a sice peníze, to je to nejabsurdnější ze všech zmenachizovaní, a přesto se autor tváří, jakoby šlo o amorfní elektronizaci na postupu už i do našich hlav, ještě včera v našich pokojích. ostatně soudím, že je třeba se zbavit vlastnictví peněz, aby bylo možno opět začít žít pro smysl, nikoli pro modlu vedenou těmi nemnoha vyvolenými, již se sami vyvolili… Programování implikuje dehumanizaci automatizovatelných procesů. Kolik člověka zbyde, až bude doprogramováno? Není lépe přeprogramovat zgruntu a lépe?

Flasi

Tak to, že ubývá „člověka“ a přibývá význam hrstky exkluzivistů je obecně trend ve všech odvětvích. Ať je to vývoj procesorů, nebo aut, anebo raket.
A u vývoje softwaru je to holt taky.

pje

Nadpis opraven, na obsahu netřeba nic měnit…

Jindru

a je vůbec realné, aby si nové generace pamatovaly/znaly dopodrobna vše, co ty předchozí dohromady ?
by museli biflovat / zkouset cim dal větší část života.
až by to některá další už ani nestihla, do smrti.

též z povahy ( lenosti = jinak by nebyly vynalezy ) člověka, vyplývá, že jde do všeho, ač s minimem ( 0 ) potřebných znalostí.
Protože i tak si většinou poradí ( mu někdo :-)

a to že jsme se učili za mlada dobrovnlně a sami od sebe: LDA, STA…
je naše věc, ne těch mladejch ?

asi nebylo tehdy čim jiným se zabavit ( krom berr/feed )

dneska najde všechno google, takže není nutné se učit všemu zpaměti.

a až si přehrajem vědomí počítače, pak začne hukot.
učení bude okamžité / netřeba, můžu se replikovat / zrychlit

akorat aby venku zustal někdo, kdo bude vyrábět elektřinu.
nebo: poslední to všechno vypne a bude klid

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.