Byla vydána verze 5.30 dnes již open source operačního systému RISC OS (Wikipedie).
V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
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.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.