Byl vydán Mozilla Firefox 154.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 154 bude brzy k dispozici také na Flathubu a Snapcraftu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 168 (pdf).
Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 10. Přehled novinek v příspěvku na blogu.
Interaktivní editor binárních dat GNU poke byl vydán ve verzi 5.0 (seznam změn).
Byla vydána verze 0.85 telnet a ssh klienta PuTTY (Wikipedie). Řešeno je 5 zranitelností.
Byly publikovány novinky z vývoje GIMPu. Pracuje se na novém formátu souborů. Stávající binární XCF bude nahrazen "zazipovaným XML". XCF zůstane plně podporován pouze pro načítání starých souborů.
Workshop o umělé inteligenci v Dartmouthu proběhl před 70 lety, od 18. června do 17. srpna 1956. Dvouměsíční soustředění 6–11 informatiků, iniciované Johnem McCarthym, položilo základy oboru umělé inteligence.
Po 9 týdnech vývoje od vydání Linuxu 7.1 oznámil Linus Torvalds vydání Linuxu 7.2. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.
Debian dnes slaví 33 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.
Probíhá hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu mají na výběr 9 možností (návrhy A až H a žádný z nich).
Kdysi jsem ty psal o tom, jak udělat z Javy Smalltalk. Šlo o to, že jsem obyčejné volání metod obalil mechanismem posílání zpráv. Ale byla to jen taková onanie, protože to mělo dvě nevýhody.
foo.message("bar", new Object[] {"param1", "param2"});message zajišťující přijímání zpráv by to chtělo mít hodně vysoko v hierarchii tříd, nejlépe ve třídě Object. Jenže Java není Ruby
.Taky jsem psal o nových fíčurách v C# 3.0. No a nějak mi došlo, že C# má prostředky k řešení obou zmíněných problémů.
Nepříjemné vytváření polí z parametrů za nás může dělat překladač. Stačí využít konstrukci pro metody s proměnným počtem parametrů. Nutno podotknout, že tento slaďoučký syntaktický cukřík už je i v Javě 5. V C# se používá klíčové slovo params, v Javě elipsa (tři tečky).
S druhým problémem pomůžou rozšiřující metody (extension methods) právě z C# 3.0. Jedná se o způsob jak připlácnout novou metodu k jakékoliv (uzavřené) třídě. (Ano, rozšiřující metoda se pozná podle klíčového slova this v parametrech
No a my si připlácnem metodu message k třídě Object. Takže to bude nakonec vypadat nějak takhle:
public static object Message(this object me, string name, params object[] args)
{
return me.GetType().GetMethod(name).Invoke(me, args);
}
Což dává použitelné výsledky. Pokud mě má ryze teoretická znalost C# 3.0 nezradila, bylo by možné napsat třeba tohle:
3333333.Message("ToString").Message("Substring", 2, 3);
Nevím jak podle vás, ale podle mě to pomalu začíná chodit jako kachna
.
Tiskni
Sdílej:
Ale pořád je ve mě ten Adysta, který si myslí, že silná typová kontrola čas šetří... Uvidíme.
Ale pořád je ve mě ten Adysta, který si myslí, že silná typová kontrola čas šetří... Uvidíme.Ano šetří, ale procesoru a ne programátorovi. Anebo, když se to povedlo přeložit, je to bez chyb. BTW: LISP mě kupodivu (na vysoké se jim povedlo, že mě -- a nejen mě -- tento jazyk znechutili) celkem láká, kdybych někdy neměl co dělat, tak se na něho určitě mrknu. Teď dělám právě ve Smalltalku/Squeaku, ale nevím proč, ta jeho syntaxe se mi vůbec nelíbí i když síla toho jazyka ano.
"
Ano šetří, ale procesoru a ne programátorovi. Anebo, když se to povedlo přeložit, je to bez chyb.Ano, přesně tak se v Adě programuje. Občas se to nepíše lehce, standardní knihovna (díky propracované typové struktuře) není triviální. A když se to konečně povede přeložit, pak to funguje. V Adě jsem nikdy nic neladil. Taky je to fajn při úpravách. Je těžké zavléct takovou chybu, aby to pak šlo přeložit
Je to takový pocit, jako když se člověk opře o skálu.
Což samozřejmě neznamená, že se to v Ruby nedá napsat 5x rychleji
mixin . Známé jsou hlavně z Ruby (a podobných), ale umožňuje je prakticky každý AOP framework.
Jinak nevím zda jsem u předchozího článku říkal, ale v JVM se chystá podpora pro "dynamické jazyky" - spočívající právě v takovémto volání metod.