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 ... 5 6 [7] 8
91
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 21:23:00 »
Citace
Pokud mluvíme o konceptech, které vznikly v 60, 70 letech, tak se toho zas až tolik nezměnilo. Samozřejmě jsou tu nové koncepty, které vznikly později, a určitě vzniknou další. Netvrdím, že někde není vývoj - tak jak jej nevnímám na PC a na internetu, tak jej vidím na mobilních platformách, a i když to není moje parketa, tak jsem si všiml, že jednočipy už dávno nejsou 8bitové, a dají se programovat i jinak než v assembleru. A možná se časem budou programovat i v té Javě, jak se v 90letech uvažovalo.

Já zase vidím obrovský posun. Z těch konceptů 70. let nezůstalo v původní podobě prakticky nic.

Jednočipy se daly programovat v jakémkoli programovacím jazyce už od svého vzniku. Na tom se nic nezměnilo už mnoho desetiletí. A také běžně různé embedded a hw věci staré 20-25 let programované ve vyšších jazycích najdete.

32bitový jednočip přišel mimochodem už tak dávno, že to ani nepamatuji.

92
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 21:14:27 »
Citace
Nové jazyky vznikají neustále - jsem v IT 30 let a nepamatuji rok, kdyby někdo nepřišel s novým jazykem - nebo zásadním vylepšením stávajícího. A zrovna tak si nevzpomínám, že by se nějaký komplikovaný jazyk nebo komplikovanější paradigma prosadil(o). Což není určitě tím, že by nebylo schopných autorů, nebo že by nebylo co vymýšlet - jen ty nové vlastnosti nejsou pro ten hlavní trh programovacích jazyků (pro programátory) stravitelné.

Nevím proč mi k vašim příspěvkům opakovaně zní otázka, jestli jste někdy zvedl hlavu a vystrčil nos od svého PC.

Citace
V Cčku je stále napsána většina systémového sw - Linux, NTčka, Postgres, .. gcc, .. Prostě náklady na přepis - zvlášť u takovýchto velkých projektů jsou výrazně vyšší než benefit. A i v barokních jazycích typu C++ nebo C# jedna základní rada je používat pouze doporučené konstrukce, patterny, atd. Takže i když máte relativně hodně komplikované jazyky, tak drtivá většina programátorů je používá jako Visual Basic, a silně redukují použité prostředky.

Uvádíte příkladu projektů starých jako Metuzalém. Je jasné, že sw z doby, kdy se adorovalo C bude používat C.

To je problém, když diskutujeme na linuxovém serveru. Linux je řemeslně dobře naprogramovaný operační systém, který v zásadě zkopíroval i s chlupama všechno ze 70. let. Není proto divu, že bude používat mnoho zastaralého.

Citace
Je zajímá doména - jak co nejjednodušeji vyřešit problém (a pokud možno v jednoduchém jazyce, aby kód mohli sdílet ve firmě).

Právě jste trefil hřebíček na hlavičku, proč vznikají ty nové jazyky. Protože lidé chtějí jednoduše řešit problémy. A čas od času se vždy nějaký jazyk uchytí. Tak to chodí.






93
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 21:08:21 »
Citace
Ale tu legendární rychlost Fortranu bych zase nepřeháněl :-) U vektorů/matic jo, ale jinak... Podotýkám že, intelí překladač Fortranu je považován za poměrně kvalitní.

Já jsem zase viděl benchmarky dokladující, že Java je rychlejší než C, C++ a asm. A lidé to brali vážně přesně do doby, než jsem se tomu veřejně vychechtal a vysmál, a poděkoval za odkaz Josepha Goebbelse.

Udělat dobrý benchmark je dřina. Znamená to napsat program v obou jazycích machrem na každý z těch jazyků. Což se v benchmarcích většinou neděje, a tím je předurčeno co má vyjít. Javista napíše optimální zdroják v Javě a neoptimální v C++, a je dokázáno.

Benchmarky, jako je ten v odkaze, kde chybí vůbec základní data. Jakými verzemi kompilátoru? Jakými nastaveními? Kdy - datum a čas? Nemám moc důvěru ve "fakta", které rovnou nasmaží "výsledky".

94
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 20:59:58 »
Citace
V momentě, kdy je nějaký produkt dostatečně dobrý, tak jeho vývoj zamrzne - celkem přirozeně. Změny jsou drahé, a mají smysl jen pokud za nimi stojí nějaká hodnota. Progres z 8bitů na 16, 32, 64 byl zřejmý. Z CPMky na MSDOS, Windows, Linux, nebo NT .. každé dva roky se vám vyplatilo přejít. Od určitého momentu přechod na novou technologii je dražší než přínos nové technologie - a v ten moment se trh zakonzervuje.

Vidíte dál než ke své klávesnici a desktopu PC?

Víte třeba mimochodem, že daleko nejvíce procesorů se prodá do embedded krabiček, nikoli do samotných počítačů? Víte, jak funguje vývoj tam? Víte, že je tam daleko více peněz a zisků, než v tom PC?

Nebo máte pocit, že se nevyvíjelo mnoho s tím? Máte Unicode, máte thready, máte výjimky, máte lepší sysétmy souborů - umí třeba transakce, jsou odolné proti závadám. Dnešní systém souborů se čím dál více začíná podobat databázím než tehdejšímu konceptu. Systém proudů se vylepšil - už to nejsou nutně jen binární data. Od těch dob už pokročila doba od předpokladu, že textový znak je ekvivalentem jednoho bajtu.

95
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 20:48:07 »
Citace
Pokud se bavíme o historickém fortranu, tak to žádný zázrak nebyl. Pamatuji začátek PC, a konce Fortranu nikdo nelitoval. Ten jazyk nic moc neuměl - v podstatě všechno se psalo jako operace s maticemi - a jelikož tam nešlo moc co vymýšlet, tak to bylo rychlé, ale nijak pohodlné.

Fortran se vyvíjel a měl řadu verzí. Nicméně byl to jazyk pro vědecké výpočty. A ty uměl optimalizovat excelentně od první prehistorické verze.

Citace
Cčko je vylepšený assembler určený na psaní systémových věcí - tedy na úplně jiný use case než Fortran, a tam se prosadil, ačkoliv mraky věcí by se daly vymyslet lépe (z dnešního pohledu).

Proč se v něm tedy píší mraky projektů, na které C není vůbec vhodné? Například GCC?

Citace
Když už jsme u těch optimalizací - myslím si, že svět jde jinam - dnes rozšířené implementace překladačů sdílí kód, takže je jedno jestli kód napíši v C, ve Fortranu, v Adě - kompilátor je výsledku jeden. U těch vědeckých výpočtů dneska hraje prim využití GPU - nikoliv kvalita překladače.

To si pletete programovací jazyk s backendem kompilátoru, který zpracovává mezikód.

Zapomínáte, že než dojde na mezikód, tak se programovací jazyky zpracovávají odlišně. Než to dojde do toho backendu, tak se provede velice mnoho optimalizací a akcí.

Pořád platí, že informace, které nejsou ve zdrojovém kódu, prostě pro optimalizaci nepoužijete. A pořád platí, že i s tím společným backendem budou výpočtu ve Fortranu rychlejší než v C. A pořád platí, že paralelní/konkurenční programování bude ve větším programu v Adě lepší než v C.

Různé jazyky pošlou do backendu různé mezikódy. Například C rozloží výraz sin(deg2rad(30)) jako volání dvou funkcí, a tak se také objeví v mezikódu. Fortran tentýž výraz spočítá a do mezikódu dá pouze konstantu 0,5. Bankground s tím už nijak nehne a nijak to nezoptimalizuje.

Citace
Prosadí se jazyky, prostředí, které jsou pro použití jednodušší než předchozí generace. Java byl původně jednoduchý jazyk pro pračky, myčky a sliboval výrazně jednodušší programování (a bezproblémovou přenositelnost) než C++. C++ byla zase na začátku evoluce Cčka. Nic komplikovaného, bez ohledu na efektivitu nemůže fungovat.

Škoda, že fakta vám odporují:

1) Jazyky můžete zjednodušovat jen do určité míry - pak už neplní svůj účel. Jsme právě v lokálním minimum tak blbých jazyků, že to vygenerovalo potřebu kvalitnější jazyků.

2) Jendoduchý jazyk C už se téměř v IT nepoužívá (kromě hw), protože je sice jednoduchý, ale plodí to obrovské náklady na vývoj proti třeba i tomu C++ a dalším. A ekonomika je víc určující než jendoduchost jazyka.

3) Java ustupuje kromě enterprise. Jednoduchost syntaxe a jazyka vygenerovalo nutnost zalepit to obrovskou složitostí v metodice, framworcích a mnohém dalším.

96
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 20:31:37 »
Citace
Unix byl ve své době, tj. na přelomu 60. a 70. let opravdu dobře a propracovaně udělaný systém. Tak dobře, že spousta jeho stereotypů je tak zažitá, že si současní vývojáři ani nedokážou představit věci jinak, na jiných principech.

Ono je to daleko jednodušší. Kolik myslíte, že bylo v domácnosti počítačů, které by uchodily nějaký operační systém v 70. letech? Jaké si myslíte, že byly ceny těch počítačů? Mohl si je běžný smrtelník dovolit?

Když máte na světě pár (výkonnějších a shcopenějších) počítačů, tak existuje jen několik málo lidí, co určují trendy.

Citace
Dokud někdo nebude schopen z těch vyjetých kolejí vyjet jiným směrem, myslet out-of-the-box, tak bude Unix opravdu konečným článkem evoluce. Na druhou stranu si nemyslím, že by Unix byl zas tak geniální, že by nebylo možné ten 50 let starý design nahradit zbrusu novým.

Odborníci už z vyjetých kolejí dávno vyjeli. Ostatně, jak už jsem psal, i tvůrce unixu sám napsal knihu, co se na unixu nepovedlo. Ale laici si neustále mohou přečíst všude, včetně na wikipedii, že nejgeniálnější je to, jak to vymyslel unix/linux. Nikdo nemá tolik času opravovat články ve wikipedii na prounixové PR jako má mnohohlavá linuxová komunita.

Citace
Spíš je ostuda, že se to asi ještě nikomu  nepodařilo. Skoro by se chtělo říci, že pokud jde o počítače, tak vše podstatné vzniklo převážně v 60. letech +-5 let.

Těch operačních systémů je velice mnoho. Mezitím se vymyslelo mnoho věcí, které unix neměl či dosud nemá. Řada operačních systémů je úspěšných - většinou v robotice, elektronice, letadlech, naváděných bombách a raketách, jako řídící systémy elektráren, atd. atd. atd.

Máte vymyšlené mikrojádro, distribuované systémy, systémy schopné se zregenerovat z chyb, systémy reálného času.

97
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 20:17:44 »
Citace
takže slušná řádka=Ada? Chapel je starej 9 let, ne 20. To už spíš CAF ne?

Nejsem encyklopedie a nepotřebné věci vypouštím z hlavy. Neúplný a zmatený seznam najdete třeba přes Google: https://en.wikipedia.org/wiki/List_of_concurrent_and_parallel_programming_languages

Stejně jako si už přesně nepamatuji názvy většiny spolužáků z té doby, tak si nepamatuji ani názvy jazyků. Většina jazyků z té doby, co uměla nějak konkurenční/paralelní programování měla buď pascalovskou syntaxi (a model rendez-vous) nebo lispovskou syntaxi.

Nakonec doporučená kniha pro zkoušku na mé univerzitě (už hodně dávno) byla "Programovací jazyky pro sytémy reálného času" (nebo tak nějak).


98
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 19:15:55 »
Citace
Na "No hoď příklad takového jazyka," odpovídáš "Ne, už před 20 lety si pamatuji poměrně slušnou řádku programovacích jazyků, které to uměly dobře. ".

A nad tím píši: "Už Ada měla určitou podporu paralelizace. Nebo třeba Chapel (https://chapel-lang.org/). Atd."

99
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 18:43:45 »
Citace
Kam dale s os: plan9, planB, amoeba, L4 a nadstavby, hurd.

Ano, nicméně v IT se po několik desetiletí vše dělí tak, že unix je konečná stanice vývoje a jediný dobrý princip operačního systému. Je tak trochu sarkastické, že unix neshodil nikdo jiný, než unixové firmy. Unix byl astronomicky drahý a začalo být finančně neúnosné jej pořizovat. Proto když přišel Microsoft s operačním systémem za cca $100, měl úspěch naprosto zaručen. Právě drahotou unixu se tento téměř sám zabil. Proč myslíte, že Linus Torvalds chtěl vyvinout unix zdarma? Kromě Rotschildů si totiž koupit unix nikdo nemohl dovolit. Unix by zemřel na chamtivost výrobců.

Nicméně je jasné, že mikrojádro je jasný směr. Mikrojádra mají mnohem lepší vlastnosti, a zejména bezpečnost a spolehlivost než monolitická jádra. Tam, kde hrozí průšvih, jako třeba v letadlech, raketách, apod. - nic jiného než mikrojádro nenajdete.




100
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 18:31:26 »
Citace
Jako zivi me c++ a musim se stale vzdelavat, ale puvodni c mam furt radsi a kdybych mohl delat v go, tak bych byl opravdu stasten. C++ to jsou vrtaky, kotoucove pily, soustruhy, hranovacky, hevery, lisy, frezy. C je kladivo, pila a svarecka. Php je pilnicek z manikury, lak na nehty, lak na vlasy, rtenka.

Já bych už nikdy nechtěl programovat v C. Ten jazyk je prostě příliš starý, jednoduchý a osekaný. Neefektivní pro vývoj.

C++ beru spíše jako evoluci C než nový jazyk. C++ škrtlo pár ptákovin, které jsou v C (autopřetypování void * pointeru na cokoli). Přidalo věci, bez kterých se fakt efektivně programovat nedá: prostory jmen, třídy, lepší knihovnu, výjimky, atd. atd. atd.

Jako zpackanou příležitost beru to, že C++ nenapravilo největší vady v designu C. Jako je například naprosto zpackaný typový systém (zejména pro celočíselné typy), neexistenci pole přímo v jazyce C, rozlišování operátorů . a ->, konzistentní a integrální zanesení textových řetězců a Unicode přímo do jazyka, atd. atd. atd. A hlavně C++ zachovalo ptákovinu zvanou "hlavičkové soubory" jako v C.

Jinak řečeno, C/C++ jsou bratři. Jsou zhruba stejně zpackané. C++ alespoň dodalo další vlastnosti, které polovinu těch zpackanin učinilo snesitelnějšími.

Jinak relativní složitost syntaxe C++ je dána tím, že je to jazyk dělaný na rychlost. Jako takový potřebuje řadu klíčových slov, aby mohl tu rychlost realizovat.

101
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 18:22:41 »
Citace
Jako se latina rozšířila s Římskou říší a jejím okolí, tak se C rozšířilo s Unixem a po platformách, které se od něj nějak inspirovaly (DOS). Moc víc bych v tom nehledal. FORTRAN 77 rozhodně nijak zvlášť komplikovaný není (ani se tak nejeví).

Přesně tak to je. C je rozšířilo jako přílepek unixu. Jinak by nikdo ani netušil, že nějaké C existuje.

Na konci 20. století byl mezi ajťáky názor, že unix je nejlepší a dokonalý systém - a už není třeba nic nového vynalézat, zlepšovat, objevovat, evoluce je komplet hotova. Nic lepšího než unix se zkrátka už ve vesmíru nikdy neobjeví, to je jediná jistota v tomto drsném a nevlídném světě - tak přemýšleli ajťáci. A dodnes si to řada z nich ještě myslí.

No a s tím názorem o nekonečné dokonalosti unixu se začalo rozšiřovat (také jako nejlepší a dokonalé) všechny součásti unixu - tedy i C. Byť C se do unixu dostal spíše jako snaha vytvořit nástroj pro přenesení unixu na jiné platformy.

Dnes už ubývá lidí, co si myslí, že unix je totálně dokonalý. Dokonce si to nemyslí už ani tvůrce unixu Thompson, který  napsal i knihu, co by se dalo na unixu udělat lépe. A s tím jak padá božský status unixu a C, a tak se množí jazyky, které chtějí být lepší než C.

Dnes zase drží C spíše embedded sféra a hardware. Protože lecjaký mikrořadič a kdejaký čip je dnes programovatelný v C.

Jinak řečeno, Fortran nikdy komplikovaný jazyk nebyl. Na výpočty byl vždy propracovanější a lepší než C/C++. Navíc dává rychlejší binárky. Proto také řada matematických a vědeckých knihoven je napsaná ve Fortranu. A C/C++ nemá šanci se jim vyrovnat v efektivitě a rychlosti. A pokud máte výpočet v astrofyzice, který trvá 2 dny, pokud se napíše ve Fortranu nebo 4 dny pokud se napíše v C - je preference vědců poměrně jasná.



102
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 18:08:00 »
Citace
Dříve vývojáři utíkali od Fortranu k C asi proto, že se jim jevil příliš komplikovaný. Kdo chce jednoduchý jazyk, použije Lisp.

A dnes zase vědci utíkají (přesněji vždy používali) Fortran. Proč? Protože C bylo tak zjednodušeno na kost, že to vylučuje optimalizaci vědeckých výpočtů, které ve Fortranu běží sakra rychleji než v C. Navíc Fortran nijak složitý není.

To je právě vlastnost dnešních jednoduchých jazyků. Kompilátor nemá dostatek informace na optimalizaci.

Mimochodem, Lisp se kdysi velice úspěšně používal jako paralelní jazyk. Ne přímo Lisp, ale po přidání nějakých dalších typů a rozšíření to zvládl. Bývaly i Lispovské paralelní mašiny.

103
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 18:02:18 »
Citace
C++11 specifikace ma 1374 stran. Jsou urcite jednoduche jazyky (pro vyuku programovani), ale jinak bych s tim vyrokem byl opatrny.

Což ovšem nic neříká o složitosti C++. Prostě je to dobře napsaný standard, který popisuje jak konstruovat překladač, jak mají fungovat konstrukce, a pak celou knihovnu C++. Standard C++ je napsaný konzistentně a dobře.

Naproti tomu máte velice špatně napsané standardy, jako je např. vše od W3C: HTML, CSS, XML, atd. Jsou to grafomanská díla blížící se rozsahem standardu C++, a přitom v nich není pospán ani základ. Často si dokonce jedna stránka odporuje druhé - a W3C i webařům je to zcela jedno.

Kdysi s tím byl dokonce problém. Každý browser si dělal HTML a CSS jinak. Ale vše bylo v souladu se standardy W3C. Když se W3C neuráčil ani popsat gramatiku HTML, ani popsat řešení chybných konstrukcí v HTML, tak si to mysely browsery domýšlet.

***

C++ je jednoduchý jazyk. Pokud se ho budete učit nazpaměť jako básničku, tak je složitý. Pokud namísto toho budete chápat jeho principy, tak je neuvěřitelně jednoduchý, konzistentní a logický. Každá vlastnost jazyka funguje všude, kde to má smysl, a funguje stejně.

Oproti tomu třeba PHP se nenaučíte nikdy. Žádná logika, konzistence, principy v tom jazyce nejsou. Každý kousek jazyk funguje jinak. Knihovna PHP je ještě horší zvěrstvo.

104
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 17:53:48 »
Citace
No co takto hodit příklad? Podle mě buď myslíš podporu pro paralelizaci smyček, to uměl Fortran pro CRAYe a věřím, že to ještě někdo dělá. Popř. různé ty pcall v LISPech/Clojure. Nebo fakt paralelizaci na základě flow analýzy a to se přiznám, že jsem v praxi neviděl.

Už Ada měla určitou podporu paralelizace. Nebo třeba Chapel (https://chapel-lang.org/). Atd.

Citace
No hoď příklad takového jazyka, co to zvládá ne v runtime, ale v compile time. Opakuju = pár pokusů existuje, ale skončí to většinou těmi smyčkami a to jenom, když se tomu hodně pomůže. Jenže to je taková paralelizace na strašně nízké úrovni, ne něco, co by ten program masivně změnilo (jestli to ale vůbec potřebujeme).

Ne, už před 20 lety si pamatuji poměrně slušnou řádku programovacích jazyků, které to uměly dobře. Ty jazyky to nedělá automaticky, má konstrukce, kterým mu leccos naznačíte. Mají jednoduše konstrukce pro podporu paralellismu.

Jenže pak přišel "unix way", to jest všechno jednoduché, co nejjednodušší a co nejblibější. Začala éra programovacích jazyků, které tuto cesty převzaly: Programovací jazyk C, Java, dnešní jazyky. Ve skutečnosti se programovací jazyky spíše zhoršily než zlepšily.



105
Vývoj / Re:Proč ten hype okolo Go?
« kdy: 31. 08. 2018, 02:16:49 »
Citace
jen tak pro pobaveni: uz me strasili tim, ze: prijde doba ledova, do roku 2000 dojde vsechna ropa, do roku 2010 roztrajou ledovce a  holandsko bude pod vodou, padne bolsevismus...

Oni vás nestrašili, oni si jen vydělávali na chleba. Vyvolávat strach a předpovídat armageddon je velice lukrativní činnost. Následně se totiž otvírají peněženky, dotace a granty, které mají najít řešení a předejít budoucí katastrofě.

Kromě toho: Předpověď že dojde ropa přináší velké výdělky obchodníkům s ropou. Na dalších předpovědích je to podobné.

Vy si pletete předpovědi s mediálním ovlivňováním veřejnosti, aby jisté skupiny vydělaly pořádné peníze. Myslíte si, že producenti ropy sami věřili tomu, že ropa dojde? Houby s octem. Jen dobře hráli svou podnikatelskou hru. Věděli, že když vytvoří paniku, že ropa dojde, bude ropa mnohem dražší. A to se stalo, a oni si namastili kešeně.

Musíte se při předpovědi ptát, jaký je osobní zájem daného proroka. 1) Skutečně objektivně předpovídá nebo 2) si chce jen pořádně vydělat falešnou předpovědí? Která varianta platí?

Mimochodem celá burza a akciový trh jede právě na dojmech a emocionálních tvrzeních o budoucím vývoji té které firmy. Jen dojmech, nikoli pravdě.

Stran: 1 ... 5 6 [7] 8