Vlákno názorů k článku
František Fuka: FFFilm mě celkem štve
Programování před lety.
Na FELu Mařík už léta vyvíjel FEL-Expert a měl několik aplikací včetně medicínských. Diplomky byly běžné.
Na VŠE byl přinejmenším Jiroušek, kdo dělal na expertních systémech.
Život nezačal s vaší první holkou, pánové!
Re: Programování před lety.
Re: Programování před lety.
zalezi koho clovek chyti na cvika a apodobne
Re: Programování před lety.
Já začínal na FORTRANu - a to byste nevěřili, v tom starým před IV se jinak než čuněcky programovat ani nedalo. Odnaučit se to bylo těžší než se to naučit pořádně rovnou. Vlastní (krušná) zkušenost.
Zlatej Pascal! Mnozí dnešní programátoři vyrostlí na scriptovačkách (takže spíš skriptéři, nemotat se striptéry!) by měli povinně v Pascalu aspoň rok programovat.
Jenom jsem chtěl připomenout, že v 80. letech tady nepobíhali medvědi a neprogramovali jsme pazourkem do břidlice. I když do štítků leckdo leckde ano.
ps - oddělení funkcí a procedur v Pascalu je perfektní věc a v céčku mi trochu chybí. Zejména kontrola na použití návratové hodnoty. Zase by každý měl vědět, proč něco vrací nebo proč toho vrací víc.
Re: Programování před lety.
Re: Programování před lety.
to jsou ti co skriptovani orpavdu jen LEPI odtut vemu prihasovani odtud editor a hup ono to nejak bude fungovat.
Re: Programování před lety.
Re: Programování před lety.
S praktickym programovanim je to horsi; puvodni Pascal opravdu moc vhodny neni, ale byl to opet Borland, ktery ho udelal pouzitelnym.
Ke skriptovacim jazykum jsem pomerne skepticky. Svemu ucelu zajiste slouzi, ale prece jen si pod pojmem programovani predstavuju neco trochu jineho. Dost nerad bych pracoval na projektu o statisicich radcich kodu vyvijenem v tymu nekolika lidi a psanem v podobnem jazyce.
Re: Programování před lety.
PS: My jsme meli jeden projekt na ten "oficialni" pascal - pak se to pres p2c prohanelo ceckem...:-) - fakt posusnanicko...
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Mozna to vzniklo z toho, ze ty interaktivni komunikaci s uzivatelem prisuzujes jiny vyznam nez ja. Moje programy s uzivatelem prakticky nikdy nekomunikuji - nejen interaktivne, ale radeji vubec. Proto mi tebou naznacene omezeni nijak zvlast nevadilo a takovou vahu jako ty mu zdaleka neprikladam. To uz jsme ale znovu u toho, ze pro ruzne problemy jsou vhodne ci pouzitelne ruzne nastroje a u toho, ze ne kazdy nastroj je vhodny na vsechno ...
Re: Programování před lety.
Mě na něco podobného (desetitisíce řádek v PERLu, několik desítek modulů, dělalo na tom tak 20-30 lidí, každý pochopitelně PERLovský guru, každý pochopitelně úplně jiný guru, každý psal jinak a všichni vepřově) přidělili! Pochopitelně to funguje jen občas, pochopitelně je to provázaný přes veškerý možný volání a implicitní hodnoty, všechno bylo parametrizovatelný, jenže jak se čas krátil, tak se přecházelo na magic values v kódu, prostě hnus fialovej.
Protože to nedokázali rozchodit, tak postupně poutíkali, ale peněz už je v tom tolik, že když jsem prohlásil, že nejlepší řešení je Zpátky na stromy a začínáme znovu, tak to nejde. Osobně si myslím, že celý to přepsat do něčeho slušnýho, nebo aspoň slušně třeba i do toho zatrr... PERLu, vyšlo by to nakonec levnějc.
Tak se nedivte, že ke skriptérům bez elemntárních programátorských návyků neplanu láskou. Mít je tady, prdel bych jim rozkopal a až by se zahojila, tak by psali rok projekt v Pascalu, v neděli večer kontrolní den. A pak by možná byli použitelní na programování. Možná.
Jak jsem psal, začínal jsem na FORTRANu, ještě tom IF () 120, 130, 140, ne IF THEN ELSE. Odnaučit se prasárny s neustálým hupsem huptam, začít myslet strukturovaně, joj, to byla robota! Pascalisti to maj zadarmo...
Re: Programování před lety.
Re: Programování před lety.
Jo jo, kdyz jsem zacinal, chodili kolem nas "profici" se zvednutym nosem a tvrdili, ze opravdovy programator pouziva jedine FORTRAN a Pascal nebo C se nikdy pouzivat nebudou. Kde je jim konec...
Re: Programování před lety.
Co myslíte, jaký byl výsledek? Kdepak, to by bylo moc práce, to nejde. Že to už je? A jak to, že to je, kdo vám zadal tu práci, jak to, že jste pracovali na něčem bez zadání? Že po práci? Že ze zájmu? Tak takové partyzánštiny nebudemem podporovat!
Jebem takú robotu! Už si nenaběhnu. Co když managor toho původního "projektu" povýšil a teď jsme mu šlápli na kuří voko?
Re: Programování před lety.
Re: Programování před lety.
K tomu Pascalu - když jsem přecházel z TP na TC, byl jsem překvapen, kolik má jazyk C (v rámci ANSI nebo Posixu) standardních funkcí v knihovnách. Když už jsem nějaký ten rok programoval v C a C++, pomáhal jsem jednomu známému se školní úlohou v Pascalu. Jako zmlsaný céčkař jsem málem rodil ježky, když jsem viděl, že v (borlandím) Pascalu se musí vlastnoručně psát procedura na každou pitomost.
Vhodnost Pascalu pro výuku programování byla možná slušná v době, kdy ho Wirth psal (30 let zpátky?), ale dnes už to podle mého názoru rovněž neplatí. Nejenom proto, že se v něm nic většího rozumně napsat nedá (proto Wirth vymyslel Modulu, že), ale jednak je klasické procedurální programování do značné míry mrtvá záležitost a jednak se mi jako první jazyk pro výuku programování nezdá stařík, ve kterém se z cyklu vyskakuje pomocí goto a bez pointerů se v něm nedá napsat skoro nic - vektor s pevným počtem prvků, množina a záznam skutečně nestačí...
Re: Programování před lety.
Nerekl jsem, ze scriptovaci jazyky nemaji pouziti. Maji. Jenze je dobre je pouzivat pouze k tomu ucelu, ke kteremu byly navrzeny. Srouby se taky daji zatloukat kladivem, ale nejak to neni ono.
Ke standarnim funkcim v C/C++ bych jen podotknul, ze pro NT drivery a embedded aplikace, ktere obvykle pisu, az na vyjimky k dispozici nejsou. Obcas je nutne si poradit bez nich.
Budu se opakovat, ale zduraznuji, ze ucelem vyuky je naucit se urcitemu zpusobu mysleni a pouzitelnost jazyka v praxi neni az tak dulezita. Pascal je z tohodle hlediska lepsi nez C, kde muze zacatecnik spachat straslive veci, a mensi mnozstvi standardnich funkci je spis vyhoda.
Re: Programování před lety.
Akorát malá poznámka - dnešní "skriptovací jazyky" mají podstatně vyšší ambice než jenom psaní skriptů a obsahují pokročilé nástroje v oblasti abstrakce, introspekce apod. a kombinují možnosti procedurálního, objektového i funkcionálního programování. Klasický skriptovací jazyk je podle mě tcl a do jisté míry i Perl. Kromě zmíněného tcl se všechny tyto jazyky dále vyvíjejí. Samozřejmě souhlasím s tím, že na každou práci je dobré použít správný nástroj a asi těžko bude někdo psát ovladače a časově kritické rutiny v Pythonu nebo Ruby.
Ještě k té výuce - nemusíme se snad omezovat jenom na Pascal nebo C. K výuce základů algoritmizace je možné použít jiné jazyky, třeba ABC nebo Python. Řekl bych, že by to úplné začátečníky daleko víc bavilo a mohli by se více soustředit na řešení problémů místo zabředávání do syntaxe a sémantiky konkrétního jazyka.
Re: Programování před lety.
Vyuka se urcite nemusi omezovat na Pascal a C. Vyzkouset si vice jazyku a seznamit se s jinymi moznostmi rozhodne prospeje. Mam pocit, ze na FELu se to tak dela, minimalne na katedre pocitacu. Nicmene, porad si myslim, ze uplne prvni jazyk by mel zacatecnika vest a kontrolovat. Jde porad o ty spravne navyky. Prechod z "rigidniho" jazyka na volnejsi je snadny, opacne zakonite nastanou problemy.
P.S. Asi uz nebudu moci pokracovat, budu 14 dni mimo Sit (hura :).
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
10 if i = 0 then goto 50
20 print i
30 let i = i - 1
40 goto 10
50 print "To je konec, tadydadyda"
To byla oproti klasickému Fortranu a Basicu velká výhoda. Ale dnes by nás to už tolik ohromovat nemuselo.
Re: Programování před lety.
Je to neco podobneho jako zavrhovat v autoskole vyuku razeni, protoze dnes uz mame automaticke prevodovky.
Re: Programování před lety.
Ty automatické převodovky jsou dobrý příklad. Jsou země, kde je možné udělat si řidičák omezený na auta s automatickým řazením. A oč lepší by bylo naučit žáky autoškoly jezdit napřed s automatem, aby se naučili základním pravidlům jízdy ve městě, odhadu vzdálenosti, zvládání situací na křižovatkách apod. a teprve POTÉ, co si získají minimální sebedůvěru, je posadit do klasického auta s řadicí pákou!
Re: Programování před lety.
Druhou kategorii by ucitele nezatezovali teorii jakehokoliv druhu (treba tim, jak vypada prehledne, bezpecne a efektivni programovani aj.) a naucili by je pouze zaklady kodovani vcetne par jednoduchych pravidel jak alespon trochu snizit vyskyt zavaznych programatorskych chyb (treba neosetrovani vstupu, coz vede ke zminenemu buffer-overflow). Takovi lide vam rychle a levne nabastli program, ktery, pokud se vam podari dodrzet vstupni podminky, ktere koder pri psani predpokladal a budete mit trochu stesti bude v naproste vetsine pripadu uspokojive fungovat. Znacna cast soucasnych "programatoru" jsou prave tito koderi a i poptavka pro prave takovych je pomerne silna., protoze v kratkodobem horizontu maji vyborny pomer ceny a vykonu.
Prvni kategorii "skutecnych programatoru" je ale predevsim nutne vzdelat po teoreticke strance. Samozrejme, ze nelze zanedbat i veci prakticke, ale nemusite s nimi vyslovene probirat kazde konkretni nebezpeci, ktere pri programovani hrozi - pokud se nauci programatorskemu mysleni, pak s trochou praktickych zkusenosti se dokazou vyhnout nejen tem chybam, o kterych se mluvi ve vecernich Zpravach, ale pravdepodobne se dokazou vyhnout i tem, o kterych jste se jim pri prakticke casti vyuky zapomel zminit. Taci programatori vam budou program psat dele nez ti prvni, budou o dost drazsi, ale jejich program bude pravdepodobne fungovat i za situaci, na ktere jste v zadani primo nepomyslel - a nebudou-li v takove situaci fungovat primo, pak spis nez to, ze by udelaly neco nahodneho a nesmyslneho, odmitnou vydat vysledek vubec. Ano - poptavka po prave takovem programatorovi je daleko mensi nez v prvnim pripade - ale - ono je takovych programatoru take o dost mene. A neda se rict, ze jedni jsou lepsi nez druzi - svym zpusobem jde o dve dost odlisne profese a je jen nestesti, ze se obe oznacuji stejnym nazvem - programator. A stejne nestesti je, ze obe skupiny se nekteri pedagogove snazi vyucovat stejnym zpusobem.
Jinak si ale myslim, ze pravdepodobnost, ze nekdo, kdo je "koder" se (pote, co ziska zminenou minimalni sebeduveru) preskoli na programatora je miziva. Zahodit totiz chybne programatorske navyky a naucit se jine je totiz obtiznejsi nez vse zapomenout (coz nikdo ael nedokaze) a zacit uplne od zacatku. A ten, kdo to dokaze by si mel rozmyslet, zda chce ztracet cas ucenim se tech spatnych ...
Re: Programování před lety.
Největší potíž s kodéry (skriptéry) je v tom, že si většinou nepřipustí, že to je špatně. Vždyť ten program funguje, tak co byste chtěli? Že funguje i v případech, kdy by fungovat neměl, kdy by měl aspoň vyhodit chybové hlášení, to už je čurda. Že funguje za správné konstelace Merkuru s Plutem, taky. A co horšího - když to funguje jenom občas, to je lepší varianta. To se ještě poměrně dobře odhalí a vrhne autorovi na hlavu. Ale když to NEfunguje jenom 29.února, případně když po lichém dnu následuje zase lichý (z 31. na 1. nebo jenom z 29., protože na ty 31 si vzpomněl), to jsou pak chuťovčičky. A oprava v představách skriptéra obvykle znamená nějaké if 29.února then ... else ... .
Program se od skriptu odlišuje i tím, že by měl být déle použitelný, tudíž spravovatelný a vyvíjitelný. "Program", který vznikl postupným rozvíjením skriptu s obvyklými nectnostmi (takový vstup tam nikdy nepřijde, to je varování, sice to hlásí chybu, ale funguje to dál...) se stává děsivým monstrem. A jenom "opravdový programátor" zjistí, že teď už teda fakt stop a začíná se znova! Ale dovopravdy. Skriptér bude pokračovat v rozvíjení, tedy šmodrchání, balení do dalších ifů, ve kterých se za chvíli nevyzná ani on.
Slušně se dá programovat skoro ve všem - no, starý FORTRAN nebo starý BASIC, nic moc, ale částečně to jde. I v PERLu to jde. Když si zakážete - a zákaz dodržíte - většinu těch "výhodných" vlastností, pro které je tak oblíbený. Ano, když se vykašlete na implicitní proměnné, když nedefinujete proměnné kdesi hluboko v kódu, slušně voláte sub a dodržíte asi tak tisíc dalších omezení, pak se PERLí program čte skoro tak dobře jako PASCALský. Jinak je to write-only progamming language. Perfektní na to, na co byl určený - jako obal regulárních výrazů. Na psaní jednostránkových skriptů pro práci s textem.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
No ja se obavam, ze znalost toho, jake maji konkretni datove typy omezeni, je primo esencialni pro opravdoveho programatora. Samozrejme pojidaci kolacu, ke kterym se uz nejaky ten rok radim, to nedoceni.
Re: Programování před lety.
Způsoby reprezentace čísel v počítači a omezení jednotlivých typů rozhodně patří k základům. Já ale tvrdím, že dobrým spisovatelem se stane člověk může stát i bez toho, aby ho v době, kdy se učí napsat Ema má maso, zatěžoval někdo větným rozborem a chtěl po něm slohová cvičení skoro na úrovni maturanta.
Re: Programování před lety.
char X=-1; while(x==-1) ..." musim vedet, ze char je v dane situaci znamenkovy (jinak se do te podminky nedostanu). U for(i=10000;i<300000;i++) take musim vedet, zda se mi do toho typu, co je i ta cisla vejdou (jinak ten cyklus take muze byt nekonecny).Nikdo nepolemizuje o tom. ze spisovatele musi nekdo zatezovat vetnym rozporem v dobe, kdy se teprve uci Ema ma maso. V te dobe to take jeste neni spisovatel. A nestane se jim, dokud ten matersky jazyk nezvladne - a v te dobe uz nejaka ty slohova cviceni za sebou mit bude. Stejne tak clovek, ktery umi napsat "hello world" nemusi znat zpusob reprezentace cisel a omezeni typu - vsak to take ani nahodou v te dobe jeste neni programator. Ale driv nez na oznaceni "programator" (natozpak "dobry programator") bude mit narok, tyto veci znat bude muset. Bez toho je to totiz nejvys bastlir.
Re: Programování před lety.
Re: Programování před lety.
Ano. K vyuce. Zakladu. Ale ja k tomu dodavam, ze jde o zaklady tak male, ze samy o sobe jeste nestaci k tomu, aby po teto vyuce techto zakladu vznilo neco, co by se dalo oznacit alespon jako "programator-zacatecnik". A nez z tohoto embrya vytvorite programatorskeho novorozence, budete mu muset do hlavy nalit prave to, jak veci funguji. Protoze jen tak bude schopen je efektivne a bezpecne pouzivat. Vcetne zakladu vedomosti o tom toho, co vlastne prekladac a interpret s jeho kodem dela a zakladu toho jak funguje vlastne cely ten pocitac.
A az do nej natlacite tohle, muzete ho poprve pustit k prakticke cinnosti. Pokud dalsi vzdelavani nevzda, mohl by z takoveho programatora-zacatecnika za nejaky cas byt docela dobry programator ...
Samozrejme, na "Hello world" zadne takove detaily nepotrebujete. Ale o nekom, jehoz schopnosti a znalosti staci prave na bezpecne a efektivni napsani funkcniho "Hello world" preci jeste nebudeme mluvit jako o programatorovi ...
Re: Programování před lety.
Mozna mi to pomalu mysli, ale co jste mel na mysli tou tucne vymezenou casti?
Re: Programování před lety.
Tzv. "objekty" jsou zvrhlost, diky ktere se vsude kolem nas vylihlo spousta lepicu.Proste se to s nima prehani. Neni nad, klasickymi prostredky, dobre napsanej vetsi projekt - to je pak radost ty zdrojaky cist. 3xFUJ tem vasim objektovym lepenicim.
Re: Programování před lety.
Re: Programování před lety.
Pan ovlada C++, Javu i tzv. objektove mysleni. Je v tomto oboru vzdelan dostatecne. Ani to mu nemuze zabranit v tom, ze v mnoha pripadech povazuje klasicke neobjektove programovani za rozumnejsi a dlouhymi lety provereny pristup. Pro pana je to jak balzam na dusi, kdyz muze delat klasicky, jak Buh soudil.
Holt pamatuje doby, kdy psal s kolegy velke veci v assembleru (dnes jiz mnozi ani nevi co to je), diky cemuz vi, ze zadne objektove berlicky naprosto nebyly nutne. Stacilo mit poradek v hlave a kvalitni knihovny pro urychleni prace.
Zadnou flamewar, prosim, svuj ucel to splnilo, vyskocili jste az ke stropu, progresivni mladici... :-)
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Nastroje typu lint jsou jiste uzitecne; sam pouzivam PC-lint pro C/C++. Jenze jejich nasazeni v praxi neni uplne jednoduche. Ty profesionalni neco stoji (ne malo) a nakup musi nekdo schvalit. Pak se to musi spravne zkonfigurovat, coz je spousta prace, protoze cast warningu pouze upozornuje na mozne problemy, nektere jsou v kodu (headery), ktere nemuzete zmenit, nektere jsou zbytecne. Cast programatoru se nasazeni brani, jelikoz to hlavne zpocatku pridelava praci a je nutne se s tim naucit pracovat a hlavne rozumet, co tomu kramu sakra zase vadi (tak v 95% ma pravdu, ale mnohdy neni jednoduche na ni prijit). Taky to trochu zdrzuje, coz brani rutinnimu pouzivani. Jsou to proste pomocne prostredky, ktere mohou zvysit kvalitu kodu, ale to je vse.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Dobrej technik.
Kdo chce užít na VŠ srandu, flákárnu a dýchánky, ať jde na fildu, sociální studie, akádu nebo podobné okecávací školy. Technik je technik a na technicích, protože na technice, stojí tahle společnost. Že to často nedokáže ohodnotit, je jiná věc. Ale je to tak.
Proboha, z jaké historie to kolega vyletěl? My měli dějiny mezinárodního dělnického hnutí a KSČ, ale to snad...
Re: Programování před lety.
Re: Programování před lety.
A nebo ze by v elektricke peci, a tu vymyslel....
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Taky me s.erou ti okecavaci, kterym dnes "patri svet". Nic poradneho neumi, nic poradneho nedelaji, ale vydelavaji velke prachy :-). Je to pro me zahada...
---
Jinak ja si nestezuju, ale fakt me stve, jak je podhodnocovana SKUTECNA PRACE ve srovnani s planym tlachanim napr. pravniku, marketingovych zmrdu a podobne pakaze....
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
Re: Programování před lety.
jo pascal tusim nejake freeimplementace a ten sedivy demonicky muzik na bozetechove zel nevim jak se jmenoval.
Re: Programování před lety.
Dalsi experti (zdravim Ing. Gadorka) zadavali ukoly, ktere sice meli vice reseni (rekneme 5), ale kdyz mate 150 lidi, tak kolik asi stejnych reseni se sejde? A pak si to obhajovat, byt narcen z plagiatorstvi apod. - je logicky, ze kdyz jsme na koleji "pracovali", ze ty reseni byly podobny... Samozrejme, ze jsme delali i plagiaty od starsich, kdyz ony ty projekty nekdy byly ujety - perdmetu deset a kazdy projekt by zabral akorat ten semestr (i vyucujici rekl, ze by to zvladl treba za 30 hodin - to mate 300 hodin, kdy ve volnu musite plne makat za predpokladu, ze jsme 100% guru - neucili jsme se to nahodou teprve? - tak to vynasobne treba i 10x a kde vzit tolik casu) - pro predstavu - prijde Vam, ze implementace zakladniho java prekladace do zas. kodu je otazka projektu na semestr a jeden predmet? Chudakum o rok mladsim to totiz prohodil, takze nemeli od nas co ziskat...
Re: Programování před lety.
Nedá se to srovnávat -jistě, ale shodné prvky by se daly vysledovat.