<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://www.pipedija.com/index.php?action=history&amp;feed=atom&amp;title=Goto_to_be_considered_harmful</id>
	<title>Goto to be considered harmful - Versijų istorija</title>
	<link rel="self" type="application/atom+xml" href="https://www.pipedija.com/index.php?action=history&amp;feed=atom&amp;title=Goto_to_be_considered_harmful"/>
	<link rel="alternate" type="text/html" href="https://www.pipedija.com/index.php?title=Goto_to_be_considered_harmful&amp;action=history"/>
	<updated>2026-07-09T17:34:23Z</updated>
	<subtitle>Šio puslapio versijų istorija projekte</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://www.pipedija.com/index.php?title=Goto_to_be_considered_harmful&amp;diff=92314&amp;oldid=prev</id>
		<title>Balalaikų draugė: Naujas puslapis: '''Goto to be considered harmful''' - toksai straipsnis, kurį kažkada gal kokiais 1968 ar panašiais metais parašė toksai anuomet jau gan garsus programuotojas Edsger Dijkstra. Aname straipsnyje buvo aiškinama, kad Goto turi būti uždraustas, nes iš to vien šūdas gaunasi, o netgi kai ir ne šūdas būna, tai praktiškai niekas to nemoka naudoti, todėl to nešūdo nebūna. O todėl būna vien tik šūdas.  Kai tik straipsnis pasirodė, tai labai daugeli...</title>
		<link rel="alternate" type="text/html" href="https://www.pipedija.com/index.php?title=Goto_to_be_considered_harmful&amp;diff=92314&amp;oldid=prev"/>
		<updated>2025-12-22T09:32:10Z</updated>

		<summary type="html">&lt;p&gt;Naujas puslapis: &amp;#039;&amp;#039;&amp;#039;Goto to be considered harmful&amp;#039;&amp;#039;&amp;#039; - toksai straipsnis, kurį kažkada gal kokiais &lt;a href=&quot;/index.php/1968&quot; title=&quot;1968&quot;&gt;1968&lt;/a&gt; ar panašiais metais parašė toksai anuomet jau gan garsus programuotojas Edsger Dijkstra. Aname straipsnyje buvo aiškinama, kad &lt;a href=&quot;/index.php/Goto&quot; title=&quot;Goto&quot;&gt;Goto&lt;/a&gt; turi būti uždraustas, nes iš to vien &lt;a href=&quot;/index.php/%C5%A0%C5%ABdas&quot; title=&quot;Šūdas&quot;&gt;šūdas&lt;/a&gt; gaunasi, o netgi kai ir ne šūdas būna, tai praktiškai niekas to nemoka naudoti, todėl to nešūdo nebūna. O todėl būna vien tik šūdas.  Kai tik straipsnis pasirodė, tai labai daugeli...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Naujas puslapis&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Goto to be considered harmful''' - toksai straipsnis, kurį kažkada gal kokiais [[1968]] ar panašiais metais parašė toksai anuomet jau gan garsus programuotojas Edsger Dijkstra. Aname straipsnyje buvo aiškinama, kad [[Goto]] turi būti uždraustas, nes iš to vien [[šūdas]] gaunasi, o netgi kai ir ne šūdas būna, tai praktiškai niekas to nemoka naudoti, todėl to nešūdo nebūna. O todėl būna vien tik šūdas.&lt;br /&gt;
&lt;br /&gt;
Kai tik straipsnis pasirodė, tai labai daugelis protestavo ir aiškino, kad niekaip to [[Goto]] neišvengsi, o ir iki šiolei atsiranda tokių aiškintojų, kurie sako, kad tipo esą Goto kažkaip tai esą kuo tai gerai ir atseit kuo tai reikalingas. Ale patikrinus, beveik visada paaiškėja, kad visi tie aiškintojai nesugeba net elementariausio [[ciklas|ciklo]] ar [[procedūra|procedūros]] parašyti.&lt;br /&gt;
&lt;br /&gt;
Esminė Goto problema yra paprasta: jis nurodo eiti iš kokios nors programos vietos į kažkur, o į kur - visiškai niekur neaišku. Pati ta vieta, į kurią peršokama, daugeliu atvejų lieka niekaip neidentifikuojama ir nežinoma - ypač kalbose, kur peršokimui naudojamas tiesiog eilutės numeris, kaip kad [[Cobol]], [[Fortran]] ar [[Basic]]. O netgi jei vieta ir identifikuojama ir žinoma, kaip kad [[Pascal]], tai visvien būna pakankamai neaišku, iš kur ir kodėl į ją kažkas peršoka.&lt;br /&gt;
&lt;br /&gt;
Rezultatas - jei tik remiamasi Goto peršokimais, tai gaunasi [[makaronų kodas]], kur programa ne tik sunkiai perskaitoma ir suprantama, bet išvis neperskaitoma ir nesuprantama, nes visiškai neaišku, kas tenai vyksta ir kokia tenai logika, nes pagal vykdymo logiką viskas tėra kažkokie [[makaronai]], kurie neaišku iš kur ir neaišku į kur einantys.&lt;br /&gt;
&lt;br /&gt;
Kai Edsger Dijkstra rašė tą savo straipsnį, tai dar buvo daug diskusijų, kad gal visokios naujos [[programavimo kalbos]], paremtos [[Algol]] idėjomis, yra nelabai gerai, nes sudėtinga tenai su visokiomis [[procedūros|procedūromis]], [[funkcijos|funkcijomis]], [[ciklai|ciklais]] ir taip toliau, nes tam reikia ir sudėtingo [[kompiliatorius|kompiliatoriaus]], ir programuotojams visas tas konstrukcijas esą sunku išmokti. Tai šitus vėjus aiškindavo paprastai visokie seniai, kurie tą Goto labai aktyviai naudodavo ir jausdavosi gudrūs, nes paskui tą jų rašytą kodą kaip nors pataisyti būdavo neįmanoma, ir tik jie vieni galėdavo kažkaip susigaudyti tame, ką jie ten pridarė. Tai nesunku suprasti, kad po Dijkstra straipsnio, kuriame šis pasiūlė tiesiog uždrausti tą atsilupėlių Goto, kilo baisus [[fleimas]] su riksmais apie tai, kad ''jis nieko neišmano, visos programos dirbs labai lėtai ir bus visiškai blogai, ir niekas čia taip programuoti nemoka, vaikeli tu pats eik pasimokyk dar, jau kitus kartus dar dar, bet šitą kartą tai jau visai nusišnekėjai ir taip toliau''.&lt;br /&gt;
&lt;br /&gt;
Kietesni programuotojai gi šitą reikalą priėmė labai lengvai ir naujose programavimo kalbose nors [[Goto]] daugumoje ir išliko, bet vietoje jo visur naudojamos kitos konstrukcijos.&lt;br /&gt;
&lt;br /&gt;
Tipiški pavyzdžiai:&lt;br /&gt;
* Procedūroms ar funkcijoms apibrėžti - naudojamos procedūros ir funkcijos, o ne sekos, kurios iškviečiamos, pereinant su Goto&lt;br /&gt;
* Ciklams apibrėžti - naudojami ciklai, o ne sekos, kurios sukasi su perėjimais, naudojant Goto&lt;br /&gt;
* Papildomam išėjimui iš ciklo naudojamas break operatorius, o ne Goto&lt;br /&gt;
* Bendram programos valdymui naudojamas programos dalinimas didesnėmis procedūromis/funkcijomis, o ne naudojant Goto&lt;br /&gt;
&lt;br /&gt;
Gi kadangi kai kurios programavimo kalbos visgi neduoda normalių įrankių darbui be Goto, tai visvien iki šiol kartais tas Goto naudojamas, ir neišvengiamai. Tai tada yra gera praktika laikytis taisyklių:&lt;br /&gt;
* Visus taškus, į kur nueina Goto, sužymėti labeliais, ir prieš juos pastatyti komentarą, kuriame būtų išvardinama, iš kur gali būti nueinama&lt;br /&gt;
* Visus taškus, kur yra vykdomas Goto, sužymėti atitinkamais komentarais, irgi sužymint, kam Goto naudojamas: procedūrai, ciklui ar išėjimui&lt;br /&gt;
&lt;br /&gt;
Bet kadangi tie, kas naudoja Goto, tokių taisyklių niekada nesilaiko, tai reikia pripažinti, kad Goto to be considered harmful, ir nėra čia ko aiškintis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Programavimas]]&lt;/div&gt;</summary>
		<author><name>Balalaikų draugė</name></author>
	</entry>
</feed>