Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Miloslav Ponkrác

Stran: 1 ... 6 7 [8]
106
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 01:58:58 »
Citace
V jakem casovem horizontu predpokladate, ze se Vase vestby vyplni?

Myslím, že C, C++, Java, Fortran, ... budou stálice, které nezmizí ani za desítky let.

Ale zároveň se objeví řada programovacích jazyků pro několik oblastí, kde jsou současné jazyky opravdu špatné. Jednu z nich jsem zmínil - paralelní a multithreadové programování. Budou ovšem zápasit s obrovskými částkami a lety vývoje, po které se zdokonalovaly ty jazyky z předchozího odstavce. Takže se prosadí jako mainstream za cca 10-15 let, výrazně natoupí už dříve.

Všimněte si mimochodem, že se pomalu rozvíjí také kvantové počítače, které se dnešními programovacími jazyky vůbec programovat nedají. Na běžných počítačích se povídá pohádka: "Tato šifra by potřebovala pro rozlousknutí, aby všechny počítače světa počítaly déle než je stáří vesmíru..., a proto je šifra bezpečná." Jeden jediný kvantový počítač tuto úlohu vyřeší a šifru vyřeší v řádu minut. To je velmi silná motivace pro aplikace kvantových počítačů, takže se do toho rvou obrovské peníze.

Hardware o mnoho mil předběhl vývoj programovacích jazyků a nástrojů. Jednoho dne se to bude muset řešit radikálně, protože hardware se vyvíjí raketovým tempem dopředu. Programovací jazyky stagnují a šolíchají se, vývoj je šnečí.

Citace
Mozna bude clovek, ktery zna firemni technologiii a korporatni prostredi, ktere se naucil diky soucasnemu maintreamovemu programovacimu jazyku na lepsi startovni pozici nez nekdo, kdo to nezna a programoval driver pro jeden rotor turbiny v dukovanech v nejakem special jazyku.

Těžko říci. Programovací jazyky nejsou nijak složité. Naučit se nový programovací jazyk je rychlé. V zásadě jsou všechny na jedno brdo, každý z nich má jen jiný mix ingrediencí.

Myslím si, že korporátní a marketinkové prostředí potřebuje, abyste znali a zvykli si na různé rituály, obětiny zlatému teleti, komunikační zvyklosti. Enterprise a korporátní postupy jsou spíše o tomto. Jinak řečeno, jsou tam různé postupy a pro kreativitu není v těchto místech prostor. Jste kolečko v soukolí, které přemýšlí spíše ve směrnicích než aby viděl výsledek. Kladete jednu cihlu z celé katedrály, a ta druhá cihla už je podle předepsaných postupů na kolegovi o tři kanceláře vedle. A vy to musíte dodržet a nepřemýšlet. A za to vás královsky zaplatí.

Můj názor je, že programovat se naučí každá uklízečka, když bude mít motivaci. To, co brzy bude pro kariéru důležité je naučit se programovat plus být špičkový odborník v něčem. Programátor + špičkový daňový poradce. Programátor + špičkový lékař. Programátor + špičkový matematik a fyzik. Za chvíli bude programátorů co umí jen programovat plné pytle na každé louce.

Trochu váhám, jak to bude s budoucností elektroniky + programování. Mám spíše dojem, že příležitostí dělat elektroniku bude ve světě vždy málo. A proto to bude kombinace spíše pro nadšence. Nebude to málo placené, ale výrazně méně proti jiným IT profesím.

Programovací jazyk se naučíte za chvíli. Zvláště pokud už jiný, jakkoli obskurní, umíte. To co se programátor chvíli učí je algoritmizace a schopnost řešit problémy. A to je dovednost téměř nezávislá na konkrétním programovacím jazyce.










107
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 22:17:43 »
Citace
a je to nedokonale samozrejme. Ale je to o stovky procent blize dokonalosti nez v go.

Já budu hodně jedovatý. Přepálím to více, než je můj skutečný názor. Jen proto, abych to rozhýbal. Nemyslím si o Javě, že je až tak špatná, ale budu teď na chvíli ďáblovým advokátem proti Javě:

Java je programovací jazyk, který by se dal nazvat "emulujeme všechno třídami". Ten jazyk nic pořádně neumí než sázet třídy a volat metody. Všechno je prekabátěná třída.

Důvod, proč Java nezahynula je, že namísto Javy zahybul její autor Sun. Sun nacpal do podpory a prosazení Javy tak astronomické peníze, že zkrachoval. Skoro mám dojem, že pro Sun bylo důležitější za každou cenu prosadit Javu, než vydělávat peníze a být ziskovou firmou.

Když i do nejblbějšího jazyka narvete miliardu doláčů, tak ho nakonec řemeslně ošetříte tak, že to jakž takž funguje. Základním příznakem takových jazyků je, že desktop to odmítne postupně používat, takže to skončí ve smetišti špatných softwarových počinů, které se zovou "enterprise". Tam končí to nejhorší, co bylo vymyšleno, jako je COBOL, Java, a další. A protože v enterprise sféře jsou vynikající platy, tak se to samospádem používá dále. Lidé chtějí mít vysoké platy, a tak se to učí.

***

Citace
jak rikal. 10, 20 let a uvidime.

Paralelní jazyky jsou tu i dnes. Jen nejsou mainstream. Mainstreamem se stanou tehdy, až single thread jazyky nebduou udržitelné přes to, že byly desítky let cizelovány a jejich kompilátory zdokonalovány.

Vývoj hw je úžasný a letí čím dál rychleji. V elektronice je to vidět mnohem více než ze strany PC desktopu či středních podniků.

Ale hlavní důvod zmínění paralelních jazyků je ten, že jste tento směr vynechal. Přitom se brzy přihlásí velice důrazně o slovo. A ne, nepokryjete ho C, C++, Javou, Pythonem ani JavaScriptem. Byť se bude ze začátku nalepovat na tyto jazyky leccos pro podporu paralelizace, a chvíli to bude i držet. Než se to zhroutí.

108
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 22:00:48 »
Citace
prave jste velice hezky popsal JIT optimalizaci JVM u dlouhodobe beziciho procesu.

Bohužel nepopsal.

1) JIT neoptimalizuje téměř nijak paralelizaci. Jen slepě vykonává to, co mu otrocky naprogramoval v paralelizaci programátor. Což je mnohem méně efektivní než kdyby kompilátor Javy měl nějaké povědomí o paralelních akcích toho, co chce programátor udělat. Žel nemá.

2) Optimalizace JITu je vždy horší, než optimalizace kompilátoru. Už jen proto, že běh programu je zdržován o akce JITu. Jakákoli kompilace/optimalizace JITu je dalším strojový časem, o který JIT okrádá běžící proces, a přičítá se k tíži běhu procesu.

JIT to řeší tak, že rychlosti dosahuje drastickým plýtváním pamětí. Dosahuje slušné rychlosti za cenu paměťové rozežranosti. Většinu počítačových algoritmů můžete napsat v libovolném jazyce rychleji, pokud předpokládáte, že spotřebujete enormní množství paměti.

Současná situace v paralizaci je taková, že na to programátoři dlabou. C/C++/Java a další jim v tom nepomohou. A tak je to práce pro vraha, dělá se to ručně. Proto je dnes drtivá většina programů single thread. Protože dnešní mainstreamové programovací jazyky jsou silně zaostalé v podpoře paralelizace.

109
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 21:42:47 »
Citace
je docela mozne, ze levou zadni zvladat "multithreading, paralelní programování, a masivní komunikaci mezi thready" tak moc nejde, neodpustim si, ze presne na tohle se pouziva Java. Ono je to tak nejak by default slozite. Neco jako "chtel bych system rizeni spolecnosti, kde muze kazdy blb ridit oddeleni o 50-ti lidech levou zadni". Ja bych to chtel taky, ne, ze ne. Zastavam nazor, ze vytvorenim noveho jazyka se tato vize neuskutecni. Mozna se mylim.

Paralelní programování je by default složité. A proto se nedá efektivně (všimněte si slova efektivně) dělat na jazycích, které mají koncept jako java nebo c nebo ...

Paralelní jazyky existují už dlouhou řadu let a pár jsem jich viděl.

Můžete napsat paralelní program tak, že vezmete běžný prací prášek programovací jazyk. A pak si poctivě používáte z nějaké knihovny atomické proměnné, mutexy, sdílené proměnné, semafory, události, atd. atd. atd. Celé to děláte v podstatě ručně - a kompilátor to ani nezkontroluje. To je případ Javy/C/C++/Pythonu/JavaScriptu, atd. atd. atd.

Paralelní programovací jazyky mají především programové konstrukce podporující paralelismus. Kompilátor tak dostává informaci přímo ze zdrojového kódu, co vlastně paralelně kutíte. Můžete to zkontrolovat, optimalizovat, oprostit vás od práce pro vraha zvané "synchronizujeme pomocí low level objektů z knihovny". Analýzou zjistí, kde lze synchronizaci vypustit, protože ke konfliktu nedojde, nebo to zkompiluje tak, aby se konfliktu vyhl - a tak drasticky zvýší výkon.

Paralelní programovací jazyk sám hledá místa, kde lze paralelizovat. Je jich plno. Například ve složitějších cyklech lze v řadě případů provést iterace paralelně. Několik volání podprogramů lze také paralelizovat, pokud na sobě nezávisejí. Atd. atd. atd.

Paralelní programování je by default složité. A pokud programovací jazyk je by default single thread a pak na to více méně dlabe, je to práce pro vraha. Řadu věcí lze přenést na kompilátor.

110
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 21:15:32 »
Citace
Znovu opakuji, že nejsem a priori proti výjimkám. Zabalení informace o chybovém stavu do objektu je perfektní, jednotné chybové rozhraní taky, ale ta separace místa vzniku od místa řešení mi prostě nevoní. A v praxi co vídám se mi nelíbí už vůbec - v jednom programu se něco řeší přes návratové hodnoty, něco zase přes výjimky, ošetření chyb končívá o několik pater výš zachycením výjimky "něco se stalo"... Opakuji asi potřetí, že v kritizovaných článcích byly konkrétní příklady kódu, jež označujete za chybné/nevhodné použití výjimek. Tak mi ukažte konkrétní, modelový kus kódu, který má řádně ošetřeny běžné chybové stavy (ne parity-error kvůli poškozené RAMce) pomocí výjimek. Jeden příklad je lepší než dlouhé teoretizování.

Výjimky nejsou nutně objektové. V řadě jazyků jsou výjimku neobjektové.

Separace místa řešení od vzniku existovalo dříve, než byl stvořen první programovací jazyk. Jakmile bylo poprvé vynalezeno přerušení programu, měl jste přesně tuto věc na stole.

Přehlednost programu, tedy i ošetřování chyb pomocí libovolné metody, nemá smysl ukazovat na pár řádcích. Úhelným kamenem, kde se oddělují zrna od plev, jsou středně velké a velké programy. Řekněme od 30 000 řádků kódu výše, a ideální ve více vývojářích, plus nutnost kód udržovat po řadu let a implementovat nové vlastnosti podle přání zákazníků.

Mám teorii, že programátor je hochštaplerem přesně do doby, než mu spadne na hlavu projekt s alespoň 100 000 řádky, kterému se pak musí 2 roky věnovat, a všechny problémy padají na jeho hlavu. Do té doby jednoduše nikoho nepřesvědčíte, že programování není o tom napsat hello world nebo něco kapánek složitějšího. Celé softwarové inženýrství je o udržitelnosti, testovatelnosti, spolehlivosti a rozumně nízkých nákladech vývoje u praktických projektů, nikoli modelových příkladů. Kdo psal jen kraťoučké programy, které nebyly prověřeny drsnou praxí - ten si může dovolit i "levičácké názory", tedy různá dogmata a pózy, které nejsou prověřeny pořádným hurikánem.



111
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 21:04:37 »
Citace
ja si myslim, ze jediny duvod proc je okolo GO vetsi povyk nez okolo brainfuck je ten, ze je mozne, ze do toho google nalije 100 miliard dolaru, protoze na to ma a to neco bude znamenat a nikdo nevi co.

Bohužel souhlasím. Kolem Go je hype, protože Google. Právě Google je největší plus i mínus jazyka Go.

Mám vůbec dojem, že prezentované hlavní výhody Go jsou:

1) Je to od Google.

2) Je to open source.

A pak už je to jen krčení rameny. Není vůbec jasné, proč Go byl vydán. Kde by měla být jeho síla. Jaký je jeho předpokládaný scénář použití.

Citace
Za soucasnych okolnosti je to k nicemu. Na frontend a jednoduche projekty je tu JS, ktery je rychlejsi nez go spusti se i v interpretu webbrowseru, na slozite promyslene backendy je tu java (nebo C# pro MS golden kissass), ktera ma mnohem vyspelejsi a mocnejsi nastroje a je rychlejsi kvuli JIT a vubec experience, na specializovane nizkourovnove veci, kde je potrena pracovat primo s pameti a vyuziji se pointery je tu C/CPP a pro blbinky s gui python, ktery bude postupne vytlacovan JS.

Ne tak zhurta. Scénářů použití programů je mnohem více.

To, co se dnes řeší, a kde je díra na trhu, je programovací jazyk, který by levou zadní zvládal multithreading, paralelní programování, a masivní komunikaci mezi thready, procesy, sítí. Z vámi vyjmenovaných jazyků toto neumí rozumně ani jeden z nich. (Jak moc dobře to umí Go nevím, přiznám to bez mučení.)

Představte si, že dnes už na PC procesoru máte mnoho jader a threadů. S tendencí tento počet zvyšovat. Procesory mají obrovský potenciál výkonu, který dnešní programovací jazyky typu C, C++, JavaScript, Java, C#, Python (abych vyjmenovat vaše jazyky) nedokáží využít. Pokud o skutečné paralelní aplikace vedou k neskutečně neefektivnímu vývoji, který je asronomicky drahý, a přitom velice náchylný na chyby. Jakmile se objeví kvalitní paralelní jazyk - a to je jen otázkou času - tak to převálcuje všechno jako buldozer.

Paralelitu přitom nejde, má-li to být efektivní a nenáchylné k chybám, našít do jazyka jako knihovnu. Musí to být přímo součástí jazyka. Dosud byl trend blbných programovacích jazyků umějících co nejméně, a vše ostatní se našije knihovnami. Extrémem v retardovanosti a slunci tohoto trendu bylo C a Java. To je ale teď úzkým hrdlem.

Jinak řečeno, hardware, procesory, elektornika je tak o 20-30 let napřed před vývojem programovacích jazyků. Je tu velice mnoho prostoru pro nový jazyk.

112
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 20:31:28 »
Citace
To je zajímavé, protože třeba v XSLT jsem zatím na potřebu výjimek nenarazil, podobně jako v něm ani nepotřebuji else.

Já také ne, dokud jsem v XSLT nezačal psát video kodek, mp3 přehrávač, nebo komunikaci s STM32.  Pak už ta potřeba nastala ;D

113
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 19:39:02 »
Citace
Kdyby byl program bezchybný, tak by k nim vůbec nedošlo. Je to řešení ultima ratio, záchranná plachta, do níž se skočí, když už žádné schodiště nejde použít. Implementací do programovacích jazyků se z těchto "výjimek" udělalo pravidlo - zábradlí je přežitek, když někdo uklouzne na schodech, je dole plachta. Protože zábradlí přece narušuje elegantní estetiku schodiště, není kvůli němu ani pořádně vidět a přitom slouží "jenom" jako ochrana před nehodou.

Ale houby s octem. Vy žijete v utopickém světě. V reálném světě nastává mnoho chyb a zvláštních situací. Nemůže za ně pouze program, ale také chyby pocházejí z hardware, nebo ze vzdálené sítě, nebo do uživatele nebo z tisíci různých zdrojů.

Je chybou programu, že došla paměť k alokaci? Je chybou programu, že se odpálil tranzistor na základní desce a tudíž přestala fungovat nějaká funkce v hardware PC? Je chybou programu, že kopáč v Arménii překopl páteřní optický kabel a najednou se nespojíte s počítačem, který ještě před sekundou komunikoval? Je chybou programu, že uživatel natvrdo vyndal flešku z USB, ze které program čte data? Je chybou programu, že uživatel zmáčkl na klávesnici "P", ačkoli se čeká zadání čísla? Je chybou programu, že má číst data z databáze, která tam prostě nejsou?

***

Kromě toho ty obsese, že programátor nemá v programovacím jazyce dostávat do rukou něco, co může být při špatném použití nebezpečné - už jsou nudné. Od toho je to programátor, aby věděl co dělá. Aby se naučil každou konstrukci v jazyce používat správně.

Ze stejného důvodu už jsou trapní i javisté (o pár stránek nazpět), kteří si představují, že každý programovací jazyk má být kopie javy. A že přístup javy je jediný správný.

114
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 19:16:06 »
Citace
Podmínka mi kontext nenaruší - chybu zachytím a vypořádám tam, kde k ní došlo. Try-catch vyjde buď nastejno jakožto ukecanější varianta ifu, nebo mě hodí někam na jiné místo, mimo původní lexikální kontext, a to i v rámci jedné funkce! O šíření nezachycené výjimky vertikálně už nemluvím vůbec. Kontext, v němž chybový stav nastal, je pro jeho efektivní řešení dost důležitý.

Vy se tváříte, jako kdybyste ten kontext urgentně potřeboval. Vy ho nepotřebujete skoro nikdy, taková je pravda.

Programování není nic jiného, než neustálé mohutné zahazování kontextu. To platí jak v běžném toku programu, tak při ošetřování chyb. Zahazujete lokální kontext při opuštění každého bloku programu. Zahazujete kontext při každém vynoření se z podprogramu. Zahazujete kontext na mnoha jiných místech.

Vy jste si vymyslel teorii padlou na hlavu, že výjimka je chybový stav, a že je něco ultra jiného, než co tu bylo už dávno.

Pro efektivní řešení chyby nepotřebujete celý kontext prakticky nikdy. A těch několik málo proměnných, co byste mohl zužitkovat si dáte jako součást výjimky. Howgh.

Znovu: Je to programátor, který píše zdrojový kód. Výjimka a ošetření výjimky je něco, co také řídí programátor. Pokud není programátor idiot, tak výjimka má potřebné informace, tedy plný kontext už nikoho nezajímá.

Citace
Výjimky slouží k vypořádávání chybových stavů.

A už jste zase u té demagogie. Výjimky slouží k vypořádání jakýchkoli stavů, které vyžadují ošetření mimo hlavní proud programu. Ten stav nemusí být nutně chybovým.

Citace
Tedy ze stavu, který se před nimi řešil jako kterýkoli jiný, udělaly jakýsi privilegovaný stav, chybový, který se ošetřuje odlišně, dokonce nezávisle na kontextu. Zavádějí úplně novou, nezávislou mašinérii ve struktuře programu. Neříkám, že je to celé špatně. Ale říkám, že v té adoraci výjimek bych hodně brzdil.

Výjimky nezávádějí žádný privilegovaný stav. Jsou prostě jednou z cest, kudy může běžet program. Nic více a nic méně. Vaše tendence z výjimek dělat něco, co stojí úplně stranou ostatních konstrukcí programovacího jazyka je až fanatická. Výjimky jsou jednou z normálních konstrukcí jazyka.

Kromě toho dobře zvládnuté výjimky mohou být i levnější a efektivnější než testování návratových hodnot z podprogramů. Jestli si myslíte, že ty bazilióny podmínek k testování návratových hodnot po každém volání podprogramu jsou zadarmo a nezpomalují program, tak se strašně mýlíte. Výjimky umožňují tyto podmínky odstranit a tím program zrychlit, pokud budete dobře programovat.

Není náhodou, že ošetřování chyb výjimkami čím dál častěji používají i kernely operačních systémů. Je to totiž nejefektivnější možné řešení pro rozsáhlé možnosti chyb. Výjimky nemusí vůbec být objekty - viz třeba SEH (Structured Exception Handling) ve Windows (máte tam výjimky i v programovacím jazyce C), nebo třeba výjimky v programovacím jazyce Ada.

115
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 16:50:34 »
Citace
Výjimky zavádějí speciální stav - chybový. Ale co to je? Chci otevřít soubor, který mezi tím někdo smazal - je to chyba, nebo jiný možný stav? Uživatel zadá ve výrazu dělení nulou - výjimka, nebo normální možný stav? Někde v nějakém cyklu se mi index dostane mimo meze - výjimka nebo možný stav? V tomto případě asi přímo chyba v programu.. K čemu ale výjimky mají sloužit? K ladění, nebo k reakci na nějaké stavy, které z nějakého důvodu chci ošetřovat jinak než jiné stavy?

To je zase demagogie! Výjimky nezavádějí žádný další stav. Výjimky jsou pouze jedním z dalších řídících příkazů, které umožňují přenést vykonávání kódu na jiné místo, jako jsou podmínkové příkazy, cykly, skoky, volání podprogramu.

Považujete podmínkový příkaz (if) za definici nového chybového stavu programu? Měl byste při vaší demagogii. Protože dělá to samé, co výjimka. Přeskakuje vykonávání části kódu. Výjimka to jen dokáže v kontextu mezi podprogramy, nic více a nic méně.

Citace
Chápu určité výhody výjimek - zvláště při ladění, ale jinak je považuji za syntaktický balast. V případě ladění je to ale jen takový drahý assert, v případě normální reakce je to zvrácené - některé stavy ošetřovat klasicky, jiné úplně jinak - a jako "bonus" dochází ke ztrátě komtextu. Ta koncepce výjimek se mi prostě nelíbí.

To raději přestaňte programovat úplně. Například kontext ztrácíte kdykoli vyskočíte z podprogramu a kdykoli vyskočíte z nějakého bloku programu, který ukončuje platnost lokálních proměnných v něm definovaných.

Pokud by vám vadila řízená ztráta kontextu, pak jediné, co vám pomůže je: Všechny proměnné globální, žádné podprogramy, atd. atd. atd.

116
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 16:34:47 »
Citace
Tenhle problem prave resi error handlery, ktere se volaji z mista chyby (vicemene) a vytvari novy frame na zasobniku (aniz by likvidovaly puvodni). Coz dovoluje to treba restart primo v miste, kde chyba vznikla (protoze se error handler muze vratit do funkce, ktera vyvolala chybovy stav)

A jak často je ten restart užitečný? Jednou za miliardu let?

Pokud se v rámci ošetřování chyby (jedno jestli analýzou návratové hodnoty nebo výjimky) chci vrátit zpět, tak jednoduše zopakuji operaci znovu. Je to levnější a jistější.

Každý způsob ošetřování chyby má své plusy a mínusy. A vždy je ošetřování chyb hnusné, nepohodlné a narušuje tu původní krásu kódu, která předpokládá, že vše proběhne bez chyby. Polovina pouček, dogmat a ideologií jak psát správně kód se ukáže k ničemu, jakmile se důkladně začnou ošetřovat chyby.

1) Návratový kód je levný, ale blokuje nebo omezuje návratovou hodnotu pro chybové stavy, nikoli pro užitečnou informaci, kterou chceme vrátit z podprogramu. Ošetřování chyb vede k rozkošatělému stromu podmínek kolem volání funkce. Ještě horší nečitelnost programu v tomto případě pak dostáváme, pokud se důsledně nepoužívá goto, ať to stojí co to stojí.

2) Výjimky mají svůj název proto, že jsou "výjimkami z předpokládaného běhu programu", tedy z cesty, kdy vše je sluníčkové a bez chyby. Nejde tedy o "výjimečnou situaci", jak kdosi psal. Výjimky dokáží ošetřit i stavy, které návratové kódy z funkcí nedokáží. Výjimky navíc vyhazuje i samotný procesor, takže to skutečně funguje od lowest level až po highest level.


117
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 30. 08. 2018, 16:13:31 »
Testování existence souboru před otevřením má tři zásadní problémy:

1) Zbytečný další přístup na disk, zbytečná další pomalá I/O operace.

2) Po otestování existence souboru a před otevřením se může cokoli stát: Někdo může soubor vymazat, apod.

3) Selhání otevření souboru má mnohem více příčin než jen jeho neexistenci: nejsou práva, soubor je zamčen, poškozená data na disku, vyčerpání limitu počtu otevřených souborů, soubor nelze otevřít v požadovaném režimu, atd. atd. atd.

Stran: 1 ... 6 7 [8]