Byla vydána verze 10 dnes již multiplatformního open source frameworku .NET (Wikipedie). Přehled novinek v příspěvku na blogu Microsoftu. Další informace v poznámkách k vydání na GitHubu nebo v přednáškách na právě probíhající konferenci .NET Conf 2025.
Rodina hardwaru služby Steam se začátkem roku 2026 rozroste. Steam Deck doplní nový Steam Controller, herní PC Steam Machine se SteamOS s KDE Plasmou a bezdrátový VR headset s vlastními ovladači Steam Frame.
Amazon Web Services (AWS) oznámil (en) výstavbu Fastnetu – strategického transatlantického optického kabelu, který propojí americký stát Maryland s irským hrabstvím Cork a zajistí rychlý a spolehlivý přenos cloudových služeb a AI přes Atlantik. Fastnet je odpovědí na rostoucí poptávku po rychlém a spolehlivém přenosu dat mezi kontinenty. Systém byl navržen s ohledem na rostoucí provoz související s rozvojem umělé inteligence a
… více »Evropská komise zkoumá možnosti, jak přinutit členské státy Evropské unie, aby ze svých telekomunikačních sítí postupně vyloučily čínské dodavatele Huawei a ZTE. Místopředsedkyně EK Henna Virkkunenová chce změnit doporučení nepoužívat rizikové dodavatele při budování mobilních sítí z roku 2020 v právně závazný požadavek.
sudo-rs, tj. sudo a su přepsané do programovacího jazyka Rust, již obsaženo v Ubuntu 25.10, bylo vydáno ve verzi 0.2.10. Opraveny jsou 2 bezpečnostní chyby.
Kaspersky pro Linux je nově k dispozici také pro domácí uživatele.
Společnost Avalonia UI oznámila, že pracuje na .NET MAUI pro Linux a webový prohlížeč. Vyzkoušet lze demo v prohlížeči. Když bude backend stabilní, bude vydán jako open source pod licencí MIT.
Byl vydán Mozilla Firefox 145.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Ukončena byla podpora 32bitového Firefoxu pro Linux. Přidána byla podpora Matrosky. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 145 bude brzy k dispozici také na Flathubu a Snapcraftu.
Lidé.cz (Wikipedie) jsou zpět jako sociální síť s "ambicí stát se místem pro kultivované debaty a bezpečným online prostředím".
Byla vydána nová verze 4.4 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.
Tiskni
Sdílej:
môžete mi vysvetilť prečo je C# nevhodne zvolený jazyk? C# ovláda najviac programátorov hneď po jave a C++ a je dostupné aj v Linuxe. v jave sú všetky inštančné metódy automaticky virtuálne. Kľudne som mohol dať aj iný jazyk napr. F# ale myslím že by mi vačšina linuxových programátorov nerozumela.To je v pořádku, problém je jinde: C# má jen omezenou škálu možností, takže pro správnou demonstraci je nutné přidat ještě další jazyky.
Tak teda napíšte aký je rozdiel medzi statickou väzbou a časnou väzbou? Možno mám medzery vo vzdelaní. Odjakživa som si myslel že je to to isté a dokonca aj podľa google je to to isté.Jeden z prvních výsledků google vede na wikipedii, kde ten rozdíl je demonstrován na PHP. Tam zřejmě ve verzi 5.3 zavedli metody třídy. A ano, metoda třídy a statická metoda není totéž.
The binding of names before the program is run is called static (also "early"); bindings performed as the program runs are dynamic (also "late" or "virtual").
>>> class C(object): pass # nova trida C ... >>> c = C() # nova instance >>> type(c) # prekvapive typu C <class '__main__.C'> >>> class D(object): pass # jina trida ... >>> c.__class__ = D # zmenime odkaz na tridu >>> type(c) # voila <class '__main__.D'>Nejenom že instance c změnila svůj typ za běhu, ale změnila ho na třídu která v době jejího vzniku ještě ani neexistovala! V kompilovaném jazyce něco takového není ze zřejmých důvodů možné, ergo snažit se vysvětlovat pozdní vazbu na C++, jave nebo nějaké jejich mutaci je marnost nad marnost. P.S. pro hnidopichy – ne, mutace instancí za běhu není v pythonu v běžná praxe. Ale je to velmi ilustrativní příklad
V každém případě je to jen velmi omezená nápodoba pozdní vazby – funguje jen pro metody, jména volaných metod musí být známá v době kompilace etc. V jazyce který si na kompilaci jen hraje (java, C#) by to asi šlo zaonačit když by člověk sáhnul dost hluboko pod kapotu. V čistém C je to nemožné, protože kompiler zahodí prakticky všechny klíčové informace, kromě toho mála v tabuli virtuálních metod. Například z atributů tříd se stanou pouhé statické a bezejmenné offsety v paměti.
System.Reflection.Emit a podpora dynamického typování je tam prostřednictvím klíčového slova dynamic.
Každý člověk, který napíše, že v kompilovaném jazyce něco možné není se na 100% mýlí.Jasně, cokoliv jde implementovat v pythonu jde napsat i v C. Python sám je koneckonců napsaný v C. Kdybych chtěl takhle slovíčkařit, tak třeba C++ není jazyk ale nadstavbová knihovna nad C. SQL není jazyk ale nadstavba databázové knihovny. TAkže ano, teoreticky máš pravdu, ale prakticky pokud v C nebudu smět využívat obory platnosti, tak už nepíšu v C. Jenom v něm kompiluju interpret nějaké jiné abstrakce.
Typy jsou v Pythonu jen předstírané, ale implementačně a vnitřně jsou všechny třídy stejné do jednoho. Asi tak jako v ObjectiveC, tak jako v PHP a v řadě dalších jazyků.To platilo před cca deseti lety. Stejně jako většina toho ostatního co jsi o pythonu napsal. Jestli se chceš hádat o pythonu, raději se ho nejdřív nauč
Ja se ale o pythonu hádat nechci, jen jsem ho dal za příklad.
Celé Pythonovské OOP lze nasimulovat jedinou strukturou/třídou v C/C++, která bude obsahovat dvě hašovací tabulky. První hašovací tabulka bude okaz na metody, druhá na datové členy. A voalá, za čtvrt hoďky mám v C++ to samé co je Python. V Pythonu/PHP to totiž přesně takto uvnitř je.Nevím jak v PHP, ale v pythonu je to úplně jinak. Jsou to skutečně hašovací tabule, ale implementována je jen jedna. Datové členy a metody se nerozlišují, metoda je prostě datový člen typu funkce. Místo toho máš jmenný prostor (tabulku) třídy nebo instance, který je sám instancí (meta)třídy. Datový člen v tabulce instance je atribut instance, stejný datový člen v tabulce třídy je to, čemu by se v C++ říkalo static. Funkce v tabulce třídy je metoda, funkce v tabulce instance je něco, pro co céčkaři teprve budou muset vymyslet jméno :-P Objektový model jen nad tímhle vším postavený v podstatě jen zabudouvanou implementací několika funkcí. Místo aby se "jen volaly metody" jak to píšeš o smalltalku, se "jen čtou atributy", to že na přečtený atribut semtam následně aplikuješ operátor volání funkce je už jiná pohádka. (Odkaz na instanci, řečený self do metody podstrčí deskriptor implementovaný v metatřídě ještě předtím) To by snad stačilo na ilustraci že za patnáct minut to ani nepochopíš, natož napíšeš :-P Metatřídy, sloty, deskriptory, dekorátory tříd a další vylepšení nastuduj za domácí úkol, manuál ti tu opisovat nebudu
Ja se ale o pythonu hádat nechci, jen jsem ho dal za příklad.“
Až na to, že jsem před rokem luštil zdrojáky interpretru Pythonu.
===
„Nevím jak v PHP, ale v pythonu je to úplně jinak. Jsou to skutečně hašovací tabule, ale implementována je jen jedna. Datové členy a metody se nerozlišují, metoda je prostě datový člen typu funkce. Místo toho máš jmenný prostor (tabulku) třídy nebo instance, který je sám instancí (meta)třídy.“
Jinak řečeno, mám pravdu. Jenom ta druhá hašovací tabulka je sdílená s více instancemi.
Mým cílem nebylo detailně popsat model datových struktur Pythonu, ale princip na kterém to sedí.
Mimochodem princip, který je v čístém C, nebo čistém C++ či jiném libovolném kompilovaném jazyce velmi rychle implementovatelný – důvodem bylo abych demonstroval jednoduchost a snadné napodobení jinde.
===
„Objektový model jen nad tímhle vším postavený v podstatě jen zabudouvanou implementací několika funkcí. Místo aby se "jen volaly metody" jak to píšeš o smalltalku, se "jen čtou atributy", to že na přečtený atribut semtam následně aplikuješ operátor volání funkce je už jiná pohádka.“
Není třeba z toho dělat složitou věc.
Je to jednoduché, OOP jazyky volají metody buď:
a) pomocí ukazatelů na funkce
b) pomocí jména funkcí (hašovacími tabulkami jí převádějí na ukazatel na funkci)
Nic jiného.
Tím se pokryje 100% popisu všech programovacích jazyků a jejich OOP implementace.
Každý způsob má své pro a proti a každý má handicapy vůči druhému způsobu.
===
„To by snad stačilo na ilustraci že za patnáct minut to ani nepochopíš, natož napíšeš“
Pokud z toho budeš dělat složitost a hogo fogo jak se snažíš, tak to nepochopíš a zamlžíš. Ale jak vidíš, v mém podání jsou věci podstatně jednodušší a přitom jsem nic neubral z faktů, které je nutné pro implementaci pochopit.
Princip implementace OOP v každém myslitelném programovacím jazyce je primitivní ať se koukneš kam chceš.
Až na to, že jsem před rokem luštil zdrojáky interpretru Pythonu.Tak jsi luštil blbě, protože jsi právě přesvedčivě dokázal že o pythonu víš kulový. Implementace kterou popisuješ by se možná poprala s php, ale s pythoním kódem nebude fungovat.