Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.
Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.
Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
Pro moddery Minecraftu: Java edice Minecraftu bude bez obfuskace.
Národní identitní autorita, tedy NIA ID, MeG a eOP jsou nedostupné. Na nápravě se pracuje [𝕏].
Americký výrobce čipů Nvidia se stal první firmou na světě, jejíž tržní hodnota dosáhla pěti bilionů USD (104,5 bilionu Kč). Nvidia stojí v čele světového trhu s čipy pro umělou inteligenci (AI) a výrazně těží z prudkého růstu zájmu o tuto technologii. Nvidia již byla první firmou, která překonala hranici čtyř bilionů USD, a to letos v červenci.
Po Canonicalu a SUSE oznámil také Red Hat, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie).
Tak jsem si řekl, že zkusím programování v nějakém tom „skriptovacím“, opravdu vysokoúrovňovém jazyce, což mi přinese obrovskou produktivitu a pravděpodobně i sex-appeal. Už nějaký čas jsem chtěl prozkoušet Python ale řekl jsem si, že půjdu se současným hype a zkusím Ruby.
Na první pohled se mi Ruby moc líbí. Syntaxe je hezká, opravdu všechno je objekt. Nikdy jsem nepochopil, proč se délka seznamu v Pythonu získá jako len(s) a nikoliv s.len(). V Ruby jsou všechno objekty, kterým se posílají zprávy. Takže s.size. Je to konzistentní a elegantní.
Velmi pěkná je konvence s otazníky a vykřičníky v názvech metod. Metody často mají dvě verze, jednu s vykřičníkem na konci a druhou bez (například downcase a downcase! pro String). Vykřičníková verze změní vnitřní stav objektu. Verze bez vykřičníku vrátí modifikovaný objekt, ale původní objekt zůstane nezměněn. Metody končící otazníkem vracejí booleovskou hodnotu. Tyto konvence zlepšují čitelnost kódu.
Asi nejzásadnější vlastností jsou uzávěry (closures). Je to takové posílání bloků kódu jako parametr. Moc se mi to líbí a skoro jsem se na tom stal závislý. Dají se s tím dělat roztodivná kouzla ale praktický důsledek je ten, že zapomenete psát for-cykly. Výpis prvků seznamu vypadá následovně:
["ahoj", "nazdar", "blekota"].each {|s| puts s}
Mixování modulů do tříd se mi taky líbí. I když vícenásobná dědičnost z Pythonu je asi taky v pohodě (na rozdíl od C++).
Naprosto úchvatná je pružnost jazyka. Například aspektově orientované programování. Dolepit AOP například do Javy znamená buď nějaký preprocesing zdrojáku nebo postprocesing bajtkódu. V Ruby, kde můžete za běhu přejmenovávat metody (a na jejich místo vkládat svoje AOP interceptory), tohle problém není.
Přestože Ruby je z Japonska, jazyk nemá nějakou pořádnou podporu unicode. V podstatě jediná podpora je ta, že stringy můžou být kódované UTF-8 a nehrozí jim poškození. To vlastně není ani není problém, protože jazyky s podporou Unicode jako Java/C# používají kódování UTF-16 a tak funkce pro vrácení délky řetězce obecně nemusí vrátit počet znaků (viz muj starší post o unicode). IMHO lepší takhle mizerná leč konzistentní podpora v Ruby než dva typy řetězců (obyč a unicode) v Pythonu.
Díky přizpůsobivosti jazyka není problém dodat třídě String příslušnou funkcionalitu. Je několik projektů, které navážejí do jazyka Unicode z knihovny ICU, ale bohužel není žádné hotové, standardní a obecně používané řešení.
Vlákna jsou asi největší (a pro mě osobně nepřekonatelná) slabina Ruby. Ruby nepoužívá vlákna operačního systému (jako posix threads), ale má svoji vlastní implementaci. I když interpret vlákna pravidelně střídá a vytváří tak jakous takous preempci, vše běží v jednom systémovém vlákně. V době nástupu vícejádrových procesorů je to nešťastné. Ve webových aplikacích se to dá obejít puštěním více procesů přes (fast)CGI, jenže já chci psát i výkonné desktopové aplikace.
Musím říct, že to byla moc příjemná zkušenost. Programuje se v tom opravdu hezky a zdá se, že opravdu rychleji než třeba v Javě. Samozřejmě jsem v tom nepsal nic velkého (a díky těm zpropadeným vláknům ani nebudu) takže těžko říct, jestli se v tom něco opravdu velkého napsat dá.
Jdu vyzkoušet Groovy 
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                 
            
    
„Přestože Ruby je z Japonska, jazyk nemá nějakou pořádnou podporu unicode.“Ne „přestože“, ale „protože“. Japonci mají s Unicode docela problémy. Sice nejsou tak velcí, aby s tím trendem něco, zmohli, ale koušou, potvůrky...
 Pokud jde o vlákna, má to i svoje výhody. Vlákna mimo OS mají obrovský výkon (viz Erlang) a Ruby svůj vláknový kód houfně používá pro kontinuace. Navíc díky tomu běhá Ruby i na OS, které vlákna nemají (32b DOS...
Pokud jde o vlákna, má to i svoje výhody. Vlákna mimo OS mají obrovský výkon (viz Erlang) a Ruby svůj vláknový kód houfně používá pro kontinuace. Navíc díky tomu běhá Ruby i na OS, které vlákna nemají (32b DOS...  ) Návrh implementace je zkrátka hromada kompromisů... Navíc Ruby poměrně dost řeší neblokování vláken při interakci se systémem (IO) - no, nevýhoda je ten SMP provoz a některé ty homebrew Cčkové extenze se nemusejí chovat hezky, to je pravda. Ale ono se už něco vaří (přesněji YARV). Věřím, že pro některé účely v jazyku green threads asi zůstanou (mj. pro ty kontinuace), ale vychytat takový složitý model v úplnosti asi nebude sranda. Jsem docela zvědavý...
) Návrh implementace je zkrátka hromada kompromisů... Navíc Ruby poměrně dost řeší neblokování vláken při interakci se systémem (IO) - no, nevýhoda je ten SMP provoz a některé ty homebrew Cčkové extenze se nemusejí chovat hezky, to je pravda. Ale ono se už něco vaří (přesněji YARV). Věřím, že pro některé účely v jazyku green threads asi zůstanou (mj. pro ty kontinuace), ale vychytat takový složitý model v úplnosti asi nebude sranda. Jsem docela zvědavý...  
             Holt si to lingvisticky zkazili v polovině prvního tisíciletí n.l.
 Holt si to lingvisticky zkazili v polovině prvního tisíciletí n.l.  Na druhou stranu, pak by Japonci nebyli schopni psát tak krásné básně. Co na tom, že jim člověk bez znalosti japonštiny neporozumí a přeložit to nejde.
Na druhou stranu, pak by Japonci nebyli schopni psát tak krásné básně. Co na tom, že jim člověk bez znalosti japonštiny neporozumí a přeložit to nejde.  
             26.5.2006 16:54
JiK             | skóre: 13
             | blog: Jirkoviny
             | Virginia
        26.5.2006 16:54
JiK             | skóre: 13
             | blog: Jirkoviny
             | Virginia
         
             27.5.2006 15:29
masožravá palma             | skóre: 6
             | blog: Agnes
             | Matka měst
        27.5.2006 15:29
masožravá palma             | skóre: 6
             | blog: Agnes
             | Matka měst
        ["a", "b", "c"].each {|s| puts s}“, o kterých se zmiňuješ, se mi moc nelíbí, a dělá mi problém to vůbec přečíst a zorientovat se v tom. I když je pravda, že až donedávna jsem nevěděl, co ta konstrukce vlastně dělá. Raději si tam dám for a rozhodím to na dva řádky, než luštit hromadu závorek a |kolejniček|.
Jak píšeš v druhém odstavci o občas menší objektovosti Pythonu (len(s)), také mě to zezačátku překvapilo. Osobně a skromně si myslím, že je to možná kvůli rychlosti. Jinak fajnovej blogpost, tento typ článků bych na netu viděl rád častěji.
             Scheme na vás, holomci...
 Scheme na vás, holomci...  
  Ten len() taky musí kontrolovat typ objektu v paměti, žádná výhra. O rychlosti to nebude, spíš o Kvídově „přelétavém návrhu“. Matz měl v tomhle změru jasnou vizi, ostatně to celé postavil na Smalltalku. No, docela si tím zjednodušil práci...
Ten len() taky musí kontrolovat typ objektu v paměti, žádná výhra. O rychlosti to nebude, spíš o Kvídově „přelétavém návrhu“. Matz měl v tomhle změru jasnou vizi, ostatně to celé postavil na Smalltalku. No, docela si tím zjednodušil práci...  (#inject a spol...)
 (#inject a spol...)
            
>>> s = 'abc'
>>> s.__len__()
3
             BTW, ta podtržítka by se měla zakázat, to má být ta čitelnost?
 BTW, ta podtržítka by se měla zakázat, to má být ta čitelnost?  Podle mně jsou tam úplně zbytečně...
 Podle mně jsou tam úplně zbytečně...
             . Je to trochu nekonzistentní syntaxe. Asi je to proto, že v Pythonu je možné psát čistě procedurálně.
A uzávěry (closures), ty se mi na Smalltaku také líbily, zvláště metody select, accept, reject a tak dále.
. Je to trochu nekonzistentní syntaxe. Asi je to proto, že v Pythonu je možné psát čistě procedurálně.
A uzávěry (closures), ty se mi na Smalltaku také líbily, zvláště metody select, accept, reject a tak dále.
             
             . Kdyby mi neslo o vlastnosti jazyka, tak se nebudu ptat na to, jestli jdou Ruby a C-syntax dohromady.
. Kdyby mi neslo o vlastnosti jazyka, tak se nebudu ptat na to, jestli jdou Ruby a C-syntax dohromady.
             
             
             
             
             26.5.2006 18:47
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
        26.5.2006 18:47
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
         
             
             26.5.2006 20:02
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
        26.5.2006 20:02
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
        chmod 111  
             26.5.2006 23:43
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
        26.5.2006 23:43
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
         27.5.2006 09:33
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
        27.5.2006 09:33
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
        root /devel/sh # chmod 111 ie6 root /devel/sh # ./ie6a IE6 nastartoval
 
             26.5.2006 23:03
bazil             | skóre: 33
             | blog: sluje
             | Miroslav
        26.5.2006 23:03
bazil             | skóre: 33
             | blog: sluje
             | Miroslav
         
             27.5.2006 01:22
bazil             | skóre: 33
             | blog: sluje
             | Miroslav
        27.5.2006 01:22
bazil             | skóre: 33
             | blog: sluje
             | Miroslav
         26.5.2006 23:06
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
        26.5.2006 23:06
David Watzke             | skóre: 74
             | blog: Blog...
             | Praha
         
* dev-php5/php-qt
     Available versions:  !0.0.2
     Installed:           none
     Homepage:            http://php-qt.berlios.de
     Description:         PHP 5 bindings for the Qt4 framework.
             ) Ale diky.
) Ale diky.
             
             Takže asi něco jako kdybych ve webové aplikaci používal glib? (Předtím jsem tomu rozuměl tak, že bych přes Qt např. namaloval dialog a on se zobrazil jako webová stránka.)
 Takže asi něco jako kdybych ve webové aplikaci používal glib? (Předtím jsem tomu rozuměl tak, že bych přes Qt např. namaloval dialog a on se zobrazil jako webová stránka.)
             No tak to by dost možná šlo udělat, jen by se musel udělat poměrně šílený backend (ajaxový?
 No tak to by dost možná šlo udělat, jen by se musel udělat poměrně šílený backend (ajaxový?  ), kromě stávajícího Xkového, jablečného a wokýnkového...
), kromě stávajícího Xkového, jablečného a wokýnkového...  Já radši dám přednost tomu pluginu do browseru, přijde mi docela sexy.
 Já radši dám přednost tomu pluginu do browseru, přijde mi docela sexy. 