vidim nekolik duvodu:
- v tisku a na internetu se vyklada, jak je C k nicemu
- na skolach se vyucuji "programovaci jazyky" - ale zridka C
- pretekani bufferu je vydavano za chybu C
- M$ a jini se snazi prodejem a marketingen pro nove jazyky udrzet obrat (C#)
- rozsireni internetu a s tim webaplikaci privedlo do hry javu
- jednodussi zacatek se skriptovacimi jazyky
- pro aplikace pry nepouzitelne
Ale predevsim lezi cely problem ve skolstvi. Mluvil jsem s desitky absolventu vysokych skol a zadny z nich nemohl smysluplne popsat, jak se vlastne v C programuje. Vsichni byli toho nazoru, ze C programator NEUSTALE pouziva strcpy, malloc apod. Na skole jim nebylo vysvetleno, ze to dela C programator jednou nebo 2 x za zivot. A to , kdyz si napise tu vlastni knihovnu se _MUJ_STRCPY a _MUJ_MALLOC apod.
C neni pro psani aplikaci. C je pro psani nastroju, ktere pak aplikacni programatori pouzivaji.
Problem v nasi firme je, ze absolventi prijdou, nedostali na vysoke skole zaklady jak to v praxi chodi a ohani se tim, ze skola je mela teoreticky pripravit na to, aby zvladali sirokou paletu problemu. Ale kdyz pak dostanou za ulohu napsat za pomoci lexu a yaccu maly sql-parser pro flatfiles, tak ziraji jak cerstve vyvorana mys.
Z toho duvodu je tento clanek katastrofa. Protoze opet stavi C do roviny jinych jazyku. A my, ve firmach to pak muzeme za tezke penize korigovat.
Lepší výkřik do tmy jsem už dlouho nečet :-) Co se začít trochu snažit, třeba si vychovávat absolventy během školy? Nebo je vážně jednodušší jenom nadávat na školství a žbrblat nad kvalitou článků na internetu?
Me ten vykrik nijak scestnej neprijde. Proste pokazuje na to, ze spousta absolventu (a lidi vubec) zna jenom to, co do nich na skole nahustili a zaroven nestihli zapomenout, nejaka vlastni snaha rozsirovat si obzory veskera zadna. Snaha vychovavat takovyho cloveka nevede k nicemu, protoze se samostatnosti stejne nenauci; at behem skoly, tak po ni. Nechat se stale vodit za rucicku je totiz strasne pohodlny, ze? <irony>Ale nezoufejte, existuje i spousta firem, kde nejde vubec o to neco skutecnyho tvorit, ale jen o vykazovani jakys takys cinnosti a tam tyhle lidi uplatneni najdou </irony>.
A po zcestném výkřiku přichází zcestná reakce - já jsem v původním příspěvku nic o nechuti rozšiřovat si vlastní obzory nečetl, potom bych ho nekomentoval. Stejně tak jsem nekomentoval nic o samostatnosti atd, jenom mě pobavily nářky nad kvalitou našeho školství, které neumí vychovat schopné programátory C. Že zírám jako čerstvě vyvoraná myš na něco, co vidím poprvé v životě není nic divného. Ale možná jsme jenom oba četli jiný příspěvěk.
Protě pokud si jakákoliv firma myslí, že škola je tu aby naučila lidi řešit přesně jeho typ problémů, tak budíž mu země lehká.
Ja bych rek, ze to v tom puvodnim prispevku bylo velmi viditelne acli mezi radky. Nikdo po skole nechce vychovat zamestnance na miru; mohla by ale alespon vychovat pouzitelnyho zamestnance. Ten se pozna treba tak, ze postaven pred problem nekouka jako vyorana mys celej den s tichou nadeji, ze se stane nejakej zazrak, ale po prvotnim soku se podrbe na hlave a zacne s problemem neco delat a zacne treba tim, ze se sam zacne ucit lex&yacc.
Nepřišlo mi to tak. S definicí použitelnýho zaměstnance bych souhlasil, ale podle mě to předpokládá neschopného zaměstnavatele. Platit si lidi, aby se něco učili, je dost drahý. Levnější je naučit je to :-) A to ani nemluvím o tom, že znechucený zaměstnanec poté co je 10x podobným způsobem hozen do vody, často odchází prodat svoje nově nabyté vědomosti jinam.
Ok, uznávám, že to není dobré téma na roota :-)
Tak, je jasny, ze treba lisp se clovek prez noc nenauci, ale zrovna zaklady lexu, moduly do apache a pod. by moh zvladnout za dopoledne a odpoledne zacit opatrne na puvodnim zadani; zkusenejsi kolega muze poradit s nejasnostma, ale ne, ze se kvuli tomu na celej den zasekne. To primo urcuje, jestli cely uceni bude stat +/- denni plat jednoho nebo hned dvou lidi. Samouk navic nemusi cekat, az se "pan ucitel" probudi a dorazi do kanclu :)
Neschopnyho zamestnavatele bych pak videl spis jako nekoho, kdo si lidi, ktery mu neco delaj, vazi stejne, pripadne min, nez tech, ktery v tom akorat "umej chodit".
Tak jo, ja uz toho necham :)
A protoze kazdej druhej projekt potrebuje neco jinyho, vznikne co pul roku novej manual a na rootu z toho bude hned serial :)
A aniz bych musel zapojit nejak moc fantazie, tak bych rek, ze v komercni sfere se v cecku dela to, to se v cecku dela v opensource; pro blizsi inspiraci by mel stacit vhodne zformulovanej dotaz na sourceforge
rozlisujeme 2 typy komercnich firem:
- firmy velke
- firmy male
firmy velke zamestnavaji filosofy, kteri se zaobiraji koncepci a vytvareji objemne knihy, kterym se rika specifikace. Podle techto nesmyslu se pak snazi rusti programatori v Moskve (nebo indicti v Bangalore) neco vytvorit za pomoci jazyku java, protoze java je dnes moderni a pan profesor to rikal.
firmy male vytvari informacni systemy samy a potrebuji nastroje v C zhruba pro tyto oblasti:
- komunikace (tcp/ip) server-client
- replikace db-dat mezi servery tehdy, kdy si zakaznik nemuze dovolit oracle
- db-nadstavby v pameti pres shmem a mmap vcetne podpory RVM a synchronizace s DB
- wrapery pro pouziti c-funkci ve scriptovacich jazycich
- jiz zminene parsery pro vlastni interpretry nebo dotazovaci jazyky
- generatory informacnich systemu (pro to se ale hodi i perl)
- vystupove generalizovane generatory (vesmes c-funkce volane pres interpreter)
- casove narocne funkce v aplikacni servrech (dispozice, prognoza, simulace ve vyrobe)
- vlastni scriptovaci "mini"jazyky pro specializovane ulohy
Samozrejme ty velky, protoze tem malejm chybej ty filosofove udavajici smer. Ty maly se tu patlaj v implementacnich detailech a koncepce unika, zatimco velky budujou reseni, ktery ma hlavu a patu.
Pozn. vychazim z toho popisu, ne z reality, protoze ta je propastne vzdalena.
To je zajímavý, poněvadž znám pár malejch firmiček, ve kterejch dělaj lidi tak mentálně namakaný, že lecjaká kodérská armáda z velký firmy je proti nim stádo managorů. A asi to nebude jen pár výjimek. Člověk nespokojený se stavem mainstreamového vývoje do mainstreamového vývoje prostě nepůjde. To není totéž jako "nemít koncepci". :-)
To mate bohuzel pravdu, velka firma proste technickej um nahradi marketingem. Zakaznik se nejdriv necha ukecat aby zaplatil za cosi, co je z filozofickyho hlediska zcela jiste koncepcni a moderni, ale ne nutne presne odpovidajici tomu, co potrebuje, a nasledne aby si zaplatil serii nekolika predelavek onoho cosi do podoby pro nej o neco pouzitelnejsi. Obe strany maj nasledne radost, ze muzou protacet penize :)