Geniální programátor Edsger Dijkstra: hledal nové postupy a zavrhoval GoTo

Můj názor  |  zobrazit i odpovědi (trvale)  |  řadit od nejstarších Komentáře nyní řadíme od nejnovějších.
Tímto odkazem můžete řazení změnit.
 |  nových názorů: 16

Názory k článku

avatar
17. 03. 2020 08:07

Ono, na goto/jump neni nic spatneho. Jen se to musi pouzivat spravne.
Goto je prikaz, ktery pouzivaji struktury typu cyklus, funkce, procedury, casovace, switch, if... vsechno, kde se nejakym zpusobem odskakuje.
To, co zavrhuje on je pouzivat to mimo linearni struktury, protoze pak se jen tezko orientuje v tom, co program dela nebo, co priste udela. Dobry programator si s tim poradi, ale novacek se ve svem kodu nedokaze pak vyznat.label1: goto label3
label2: goto label3
label3: goto label4
label4: goto label1A mezi temi prikazy jsou dalsi goto odskoky a jine prikazy, podminky. Proste, takhle se v tom nevyznate. A pritom muze jit jen o obycejny while, for cyklus nebo jednoduchou if podminku.
Ale, samozrejme, nektere slozitejsi problemy by bylo uspornejsi resit prave pres goto. Linearni struktury pridavaji treba desitky skoku navic, zpomaluji program. Disassembler vam z EXE zpetne da ASM kod programu, neni problem. Ale uz to nedokazete prevezt do bezneho prog. jazyka, ktery nezna goto prikazy :) To je takova dalsi nevyhoda. Nebo vyhoda, ze se ve vasem programu nedokaze orientovat kde kdo, nepozna treba slepe ulicky atd... Byl by to dobry zpusob proti hackerum. Jen ti nejlepsi by takovou ochranu dokazali obejit.

Souhlasím  |  Nesouhlasím  |  Odpovědi (3)Zavřít odpovědi  |  Odpovědět
17. 03. 2020 01:41

Dijkstra byl hlavně teoretický informatik (tedy v podstatě matematik) a přistupoval k programování velice striktně a formálně (známá je jeho kniha algoritmů, kde poznamenal "žádný z těchto algoritmů jsem v praxi nezkoušel, ale vím, že jsou správně, protože jsem to formálně dokázal"). Nejsem profesionál, ale pokud vím, tak takový striktní přístup je v praxi, zejm. u velkých projektů, nepoužitelný.
Na druhou stranu, kdyby každý z nás přistupoval k práci alespoň z 1/10 tak svědomitě jako Dijkstra, svět by byl určitě lepším místem.
Rozhodně se jedná o jednu z největších osobností v dějinách informatiky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
16. 03. 2020 20:23

"Dijkstrovi rukopisy"?
Kdyz uz, tak "rukopisove".

Souhlasím  |  Nesouhlasím  |  Odpovědi (1)Zavřít odpovědi  |  Odpovědět
16. 03. 2020 19:40

Critical section se překládá jako "kritická sekce", ne krizová. A lépe bych to popsal jako část programu, kde je nutno zajistit, aby v danou chvíli mělo pouze jedno vlákno přístup k nějakému sdílenému prostředku (z důvodu zajištění konzistence apod.).
Jsou i složitější scénáře, ale takto to asi stačí.

Souhlasím  |  Nesouhlasím  |  Odpovědi (4)Zavřít odpovědi  |  Odpovědět
avatar
16. 03. 2020 19:33

K článku jako vždy není co dodat, vypíchl jsem jednu věc, která mě zaujala v souvislostí s dnešními trendy „volné” výchovy dětí (bezpohlavní výchovu nechám raději stranou, bylo by mi zle – volba přírody ne člověka), případně snahy o snížení objemu učiva na školách, děcka se nám prý „přetěžují” a sice: „Byl rodiči veden ke vzdělání, kterému se mu dostalo v mnoha oblastech na velmi dobré úrovni. Ať už šlo o jazyky, matematiku nebo chemii.”, vychází mi z toho, že jak všichni lidé nejsou stejní a od narození nemají stejné schopnosti a tedy ani možnosti (už tedy víme proč socialismus nefunguje), tak není možné přizpůsobovat úroveň výuky směrem k těm méně schopným (podprůměrným). Příklad, nemáš na to udělat maturitu z matiky, mít ji prostě nebudeš, bez obecných základů nebo minima nutného k tvému oboru prostě ne.

Souhlasím  |  Nesouhlasím  |  Odpovědi (1)Zavřít odpovědi  |  Odpovědět
16. 03. 2020 19:17

To by me zajimalo co by na to Dijkstrovi rekl Geralt?!

Souhlasím  |  Nesouhlasím  |  Odpovědi (1)Zavřít odpovědi  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor