Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Mozilla.cz představuje projekt Quantum. Cílem projektu je vytvořit úplně novou generaci jádra Firefoxu. Více v příspěvku na Medium.
Tiskni
Sdílej:
Pride mi to podstatne bezpecnejsiePokud omezite nizkourovnove C konstrukce, a pouzijete novejsi vlastnosti C++, lze psat pomerne bezpecny kod.
a rozumnejsieMozna za pet nebo deset let. Psat neco takoveho v jazyku, kde neni zarucena kompatibilita, a ve verzi 2.0 muze byt vse jinak, pokud to vubec bude Mozilla schopna financovat, neni IMHO moc rozumne.
ktory mi coraz viac pripomina rozpravku jak pejsek a macicka pekli dort.Ten jazyk ma za sebou 35 let vyvoje, udrzuje si zpetnou kompatibilitu, ma plno vyvojaru a velke mnozstvi realnych projektu. On by nebyl problem ten jazyk procistit, pokud by se obetovala zpetna kompatibilita, a je dosti mozne ze se tak stane.
a je dosti mozne ze se tak stane.To jses teda docela naivni. Nestalo se to za poslednich 20 let, nestane se to ani pristich 20. Maximalne se sem tam neco udela deprecated, jinak se tam porad budou cpat nove featury. Kdyby chteli odstranit nejakou zasadnejsi cast jazyka, museli by to vydat jako uplne novy jazyk, a uprimne neverim ze ted s tim maji moc nadeje na uspech, konkurence je docela slusna a aktivni.
Mozilla bude muset drive ci pozdeji adoptovat Blink, maly podil na poli prohlizecu je k tomu donutiPřechodem na Blink se podíl Firefoxu mezi prohlížeči zvětší? A jak? Uživatelům je přece jedno, jaké jádro v prohlížeči je, neboť většina jich o existenci něčeho takového ani neví. Uživatelé dají hlavně na rozhraní.
Dneska jsou v podstate jen 2 kompilovane memory-safe jazyky v kterych lze psat bezpecny kodAle velke kulove. Bezpecny kod lze jiz psat asi tak 30 let v ADA - standardizovany, kompilovany, deterministicky memory management, task based concurrency bez data race a jedna se o lety overeny jazyk pouzivany v kritickych systemech. Gcc ho podporuje jiz mnoho let (GNAT, AdaCore). Ve skutecnosti poptavka po takovych jazycich neni zas tak velka a bezpecny kod neni jenom o memory managementu, jak se snazi nabulikovat tvurci Rustu.
Staci se podivat treba na statistiky GitHubu, v jakych jazycich lide pisou.Nekdo dava vahu realnym projektum v producknim nasazeni (radary, roboty, ridici systemy vlaku, letadel, tanku, druzic ci elektraren), a nekdo statistikam programatorskych cancu na GitHubu. V podstate jsem jeste nevidel jediny realny projekt, ktery by prokazoval, co Rust slibuje a zatim to vypada jako hype, ktery tu byl treba u jazyka D.
Napr. Dropbox ma cast systemu v rust, kdesi sa da najst zaujimave pokec o tomJiste. A Facebook ted premysli o prepsani Mercurialu zkusebne v Rustu, a predtim zkouseli psat veci v Haskell, ale nadseni jiz vyprchalo. Kdyz dojde na lamani chleba, pisi vetsinu veci v Php a C++.
V podstate jsem jeste nevidel jediny realny projekt, ktery by prokazoval, co Rust slibujeNo a nebyl by tento projekt právě něčím takovým? Připadá mi, že ses v diskusi trochu zacyklil. Požaduješ reálné nasazení, ale ve chvíli, kdy se o to někdo pokouší, to kritizuješ, protože nepoužívají prověřený jazyk.
use std::mem; // This function borrows a slice fn analyze_slice(slice: &[i32]) { println!("first element of the slice: {}", slice[0]); println!("the slice has {} elements", slice.len()); } fn main() { // Fixed-size array (type signature is superfluous) let xs: [i32; 5] = [1, 2, 3, 4, 5]; // All elements can be initialized to the same value let ys: [i32; 500] = [0; 500]; // Indexing starts at 0 println!("first element of the array: {}", xs[0]); println!("second element of the array: {}", xs[1]); // `len` returns the size of the array println!("array size: {}", xs.len()); // Arrays are stack allocated println!("array occupies {} bytes", mem::size_of_val(&xs)); // Arrays can be automatically borrowed as slices println!("borrow the whole array as a slice"); analyze_slice(&xs); // Slices can point to a section of an array println!("borrow a section of the array as a slice"); analyze_slice(&ys[1 .. 4]); // Out of bound indexing yields a panic println!("{}", xs[5]);}
C se zbytecne demonizuje. Bezpecnost "bezpecnych" jazyku je dosahovana predevsim restrikcemi co programator muze udelat a to lze u do znacne miry C/C++ vynutit externimi nastroji, a pritom je mozne pouzit "nebezpecne" konstrukce pokud je potreba. Sila C je v jednoduchosti a tu molosi jako C++, ale ostatne i Rust nemaji.Problém s C není pouze v bezpečnosti, ale (IMHO) hlavně ve výřečnosti. Napsat cokoli v C vyžaduje strašně moc boilerplate kódu. A to, že standardní knihovna v roce 2016 stále ještě neobsahuje běžné algoritmy a datové struktury, situaci taky úplně nezlepšuje...
C++ proste patrí do minulého storočia, na normálnu prácu sa proste použiť nedá, preto tu vznikli projekty ako U++, D a QT aby sa dalo Hello World napísať bez segfaultu.To řekni vývojářům herních enginů a podobných věcí. Qt, U++ apod. pouze využívají některé věci, které C++ umožňuje, můžeš je klidně používat i bez těchto toolkitů, s novými verzemi C++ tuplem. Co se týče D, to pouze přidalo GC, o kterém si nikdo v D není jistý, nakolik by měl nebo neměl být předpokládanou součástí D.
Možno je to fajn, že naspodu je niečo, čo vie siahať nizkoúrovňovo a nad tým sú frameworky, kde dokážeme pracovať s roziahlimi poliami a nejak nemusíme riešiť ako si framework alokuje pamäť.Co se týče de/alokace paměti, tyhle frameworky neposkytují v zásadě nic navíc oproti standardnímu C++. Qt poskytuje navíc COW, zatímco standard je spíš pro move semantics. Žádný z těchto dvou přístupů není 100% objektivně lepší, je to spíš otázka stylu. Já jsem též fanoušek Rustu, ale nic nemění na tom, že C++ je poměrně mocný jazyk. Že v něm můžeš zapomenout na vlákna se rozhodně říct nedá. Přijde mi, že C++ kritizuješ jen proto, že ho neznáš, ale můžu se samozřejmě mýlit...
No a v Ruste Concurrency, to sú hotové nástroje kde odpadá veľa vývojárskej práce pre paralelizmus.Podpory concurrency ma i C++11 a C11. Take mi prijde, ze o C++ uz moc nevite.
Zatim futures.Aha.
Podpory concurrency ma i C++11 a C11.V roce 2016 bych si podporu paralelniho programovani predstavoval trochu jinak.
No a v Ruste Concurrency, to sú hotové nástroje kde odpadá veľa vývojárskej práce pre paralelizmus. Podpory concurrency ma i C++11 a C11. Take mi prijde, ze o C++ uz moc nevite. A vymysleli uz neco lepsiho nez vlakna a zamykani? Zatim futures.Tak jeste jednou pomalu. Rust se snazi k problemu paralelismu pristupovat alespon trochu koncepcne a nabizi vcelku zajimave reseni, ktere soucasne resi dalsi problemy. To, ze ma C/C++ podporu future, neni zadna velka vyhra. Tento koncept (pro zajimavost puvodem z MultiLispu nekdy z osmdesatych let) v podstate jen obaluje praci s vlakny a realne zadny problem neresi. Myslim, ze kazdy, kdo trochu kdy programoval paralelni aplikace, k podobne pomocne tride dospel sam i bez standardu. Zakladnim problemem paralelniho programovani v C/C++ jsou zamky, ktere se proste na bezne paralelni programovani(tm) nehodi, protoze i pri beznem skladani procedur se zamky je jednoduche udelat nejaky race-condition nebo dead-lock. Soubezny pristup do pameti je pak kapitola sama pro sebe, i kdyz uznavam, ze posledni specifikace C/C++ doplnuji memory model tak, aby se dalo neceho chytnout. Kdybych to mel shrnout, programovat paralelni aplikace v C/C++ je zhruba tak efektivni a pohodlne, jako je psat v assembleru. C/C++ narozdil od Rustu neprinasi zadnou podporu navic a je to porad ten samy a neprehledny assembler.
Programovat paralelni aplikace v C/C++ je zhruba tak efektivni a pohodlne, jako je psat v assembleru.Kdybych nestravil roky prevazne programovanim embedded RTOS systemu v C/C++, zahrnujice heterogenni SoC s vice nezavislymi jadry, kde je nutne se i manualne starat o cache coherency u sdilenych dat, a kde vam vedle vlaken litaji i asynchronni HW interrupty, tak bych vam mozna i veril.
Gratuluji, doporucuji k tomu jeste dostudovat pojem metafora. V kontextu teto diskuze (tvorba prohlizece, uzivatelske aplikace) je nicmene prinos C/C++ k snadne tvorbe paralelnich aplikaci mizivy.Programovat paralelni aplikace v C/C++ je zhruba tak efektivni a pohodlne, jako je psat v assembleru.Kdybych nestravil roky prevazne programovanim embedded RTOS systemu v C/C++, zahrnujice heterogenni SoC s vice nezavislymi jadry, kde je nutne se i manualne starat o cache coherency u sdilenych dat, a kde vam vedle vlaken litaji i asynchronni HW interrupty, tak bych vam mozna i veril.
Podstatna vestina veci, co delame ma koreny v minulem stoleti, vcetne celeho Linuxu a presto to funguje.Proto dnesni software vypada tak, jak vypada.
Proto dnesni software vypada tak, jak vypada.No tak to urcite
Tak napr. U++ používa kontajnery, takže všetko niekam patrí a radím to medzi dobrý nápad ako spravovať pamäť.Na to nepotřebuješ U++, to je všeobecný koncept v C++, který je i podporovaný standardem, vygoogluj si "RAII".
No a v Ruste Concurrency, to sú hotové nástroje kde odpadá veľa vývojárskej práce pre paralelizmus.Souhlasim, že podpora pro vlákna je v Rustu velmi pěkná, odpadá tam spousta boilerplate kódu. Nicméně borrow-checker není všemocný spasitel, například před deadlocky tě neochrání o nic víc než C/C++.
Psat tak zasadni komponentu jako je renderovanci jadro prohlizece ve stale experimentalnim nestandardizovanem jazyce jako je Rust me tedy nanaplnuje nadsenim.Podívej se do historie C/C++, jak dlouho trvalo tyhle jazyky standardizovat a dostat na dnešní stabilní úroveň. Na něco takového Mozilla nemůže čekat. Btw. standardizovaný Rust není, ale experimentální taky už imho úplně ne.
Btw. standardizovaný Rust není, ale experimentální taky už imho úplně ne.To je vec nazoru. Srovnejte situaci Rust a Go. Oba jazyky pochazi ze stejne doby, ale v Go lze jiz nalezt netrivialni dospele produkcni projekty, garantuji kompatibilitu do budoucna a lze ostatne jiz nalezt i realne pracovni nabidky. Rust se tomu ani zdaleka neblizi.
Vzhledem k tomu, o kolik víc Rust nabízí oproti Go (které je tak trochu suchým záchodem)Nekdy je mene vice a Go nove vlastnosti opatrne pridava.
mi přijde, že si vede celkem dobře...To ukaze cas. Ja nerim, ze Rust je spatny jazyk bez zajimavych myslenek, ale IMHO neni zatim pripraven na produkcni nasazeni a urcite bych ho ted nepouzil na neco, co je nutne podporovat roky.
Nekdy je mene vice a Go nove vlastnosti opatrne pridava.Vzbuď mě, až opatrně přidají generika
To ukaze cas. Ja nerim, ze Rust je spatny jazyk bez zajimavych myslenek, ale IMHO neni zatim pripraven na produkcni nasazeni a urcite bych ho ted nepouzil na neco, co je nutne podporovat roky.Není mi moc jasné, proč u Go to schvaluješ, ale u Rustu ne.
Vzbuď mě, až opatrně přidají generikaNa to jsem sam zvedav, pracuji na tom, ale zadny navrh jim neprisel zatim dost genericky
Není mi moc jasné, proč u Go to schvaluješ, ale u Rustu ne.Neni to stejna situace. Na stupnici prototyp - dospely produkt ucinil Go za stejnou dobu mnohem mnohem vetsi pokrok. To souvisi jednak s tim, ze tvurci Go limitovali rozsah jazyka zpocatku na skalovatelne serverove sluzby, ale predevsim s inzenyrskymi schopnostmi Googlu, ktery pokud chce, ma k dispozici zdroje, ktere Rust nema, hlavne velky team zkusenych lidi. To je videt ze spodu od kompilatoru, kde pracuji lide jako Ian Lance Taylor (tvurce gold linker, ktery pouziva jak gcc tak llvm), po sitovy stack. Google pouzival Go interne nekolik let na nekritickych projektech, nez to nasadil na kriticke sluzby a podobne veci delali i treti strany, zahrnujice projekty jako Docker, CockroachDB, InfluxDB, Kubernetes, Etcd/Fleet a dalsi. Rust je v situaci, kdy se zkousi nakolik je to skutecne pouzitelne, a tam byl Go tak pred ~ ctyrmi lety.
Rust je v situaci, kdy se zkousi nakolik je to skutecne pouzitelne, a tam byl Go tak pred ~ ctyrmi lety.... což je +/- doba, kdy se začal psát Docker. Stále cyklíš.
... což je +/- doba, kdy se začal psát Docker. Stále cyklíš.Kde ze presne cyklim?
Kde ze presne cyklim?
10: V Rustu by se neměly psát produkční věci, protože není připraven.
20: Rust není připraven, protože v něm nejsou produkční věci.
GOTO 10.
Jestli bylo Go před několika lety ve stejné situaci, proč bylo tehdy v pořádku napsat v něm Docker?
Go ma presne tu vyhodu co rust jedna implementacia ktora sedi voci specifikacii.Neexistence standardu je nevyhoda, stejne jako nemoznost mit vice kompatibilnich implementaci.
Skromny odhad, ze za rok bude rust v stabilite a prenositelnosti dalej ako kedy c++ bolo.Hodne optimisticke. Ja se ovavam, ze s C++ tady budem muset zit jeste desetileti.
To je vase selektivni dezinterpretace.Není, viz tvé komentáře:
Psat tak zasadni komponentu jako je renderovanci jadro prohlizece ve stale experimentalnim nestandardizovanem jazyce jako je Rust me tedy nanaplnuje nadsenim.+
Nekdo dava vahu realnym projektum v producknim nasazeni (radary, roboty, ridici systemy vlaku, letadel, tanku, druzic ci elektraren), a nekdo statistikam programatorskych cancu na GitHubu. V podstate jsem jeste nevidel jediny realny projekt, ktery by prokazoval, co Rust slibujeSorry, ale z toho mi vychází, že není způsob, jak by ti mohl Rust v této chvíli mohl vyhovět. Úplně nevím, jak vymyslet projekt, který by byl velice seriózní, určen pro produkční nasazení typu letadlo/robot/družice/atd., ale aby zároveň vůbec nevadilo, když nečekaně zhavaruje.
Psat si muzete co chcete v cem chcete, nicmene casti napsane ve stale experimentalnim neodzkousenem jazyce neni vhodne davat do systemove dulezitych/produkcnich komponent a o to tady jde.Jak říkám, je dobře, že se tvými radami neřídili tvůrci Dockeru...
Oba jazyky pochazi ze stejne doby, ale v Go lze jiz nalezt netrivialni dospele produkcni projektyVe chvíli, kdy se tyhle projekty psaly, bylo Go v zásadě ve stejné situaci jako Rust... Ještěže v té době neměli ti lidi little.owla...