Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevily v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.
V září Sun uvolnil pod BSD-like licencí již téměř zapomenutý a prakticky neudržovaný projekt Strongtalk, o čemž se objevila zmínka i zde na Abíčku. Tento krok byl přívítán velice kladně a vyvolal spoustu očekávání, protože Strongtalk si vybudoval pověst nejrychlejší existující implementace Smalltalku.
Jeho VM je napsaná v C++ a vzhledem k tomu, že tento projekt má na svých bedrech už jeden křížek, nebylo jej možné hned zpočátku přeložit v současných nástrojích a vyžadoval velice starou verzi Visual C++ a assembleru od Borlandu. Tušíte správně, jedná se o program pro Windows.
Naštěstí se v tomto ohledu od jeho uvolnění situace značně zlepšila. Sice si jej pod Linuxem můžeme pustit zatím jen pod Wine, ale alespoň již jde přeložit pod nejnovějším volně dostupným VisualStudiem Express a přeložit by měl jít i pod MinGW. GUI Strongtalku je vytvořeno pomocí přímých volání API přes dynamické knihovny Windows, ale se i tak snad dočkáme nativního portu.
Na Strongtalk jsem se podíval poměrně důkladně a rád bych se zde podělil o svoje dojmy z toho zajímavého Smalltalku. Ač jeho praktické využití je zatím spíše utopie, má celou řadu zajímavých vlastností, které rozhodně stojí za zmínku
Jak už samotný název napovídá, Strongtalk je Smalltalk se silnou statickou typovou kontrolou. Myšlenka zavést statickou typovou kontrolu do Smalltalku je hodně kacířská, ale kupodivu celkem funkční a prakticky použitelná. Strongtalk kvůli tomu musel zavést několik rozšíření jazyka, ovšem udělal to velice citlivě. Důležité je, že tato typvá kontrola je volitelná. To znamená, že ve Strongtalku je možné psát naprosto běžný Smalltalkovský kód bez deklarování typů proměnných, argumentů a návratových hodnot. Navíc tento kód není o nic pomalejší než typovaný. Programátor tak může velice rychle vytvořit dynamicky typovaný prototyp aplikace, u níž případně později doladí informace o typech a opraví související chyby.
Kromě rozšíření, která přímo souvisí s typovou kontrolou (protokoly apod.), Strongtalk narozdíl od Smalltalku-80 podporuje tzv. mixins. Strongtalk většinou vytváří třídy slepování mixinů dohromady. Celý jeho přístup k práci s třídami se dost liší a například nepodporuje instanční proměnné metatříd, které je nutno nahrazovat globálními proměnnými. Díky tomu je i jeho standardní hierarchie tříd dost odlišná od běžné Smalltalkovské a je díky mixinům kvalitnější.
Dost zásadní rozdíl oproti klasickým Smalltalkům je v práci s image. Strongtalk totiž ukládá pouze deklarativní informace o programu, tedy program samotný. Oproti běžným Smalltalkům neukládá do image jiné existující objekty. Strongtalk má díky tomu opravdový vstupní bod do programu, nemá inicializační seznamy tříd a samotné ukládání a nahrávání image si řeší převážně na úrovni image samotné.
Tento přístup je poměrně kontroverzní a rozhodně zde nebudu soudit, jestli se jedná o vylepšení či degeneraci Smalltalku. Má totiž svá negativa i pozitiva, která se projeví až při práci na konkrétním projektu. Obecně lze říci, že je bližší mainstreamovému chápání programů a tak asi může leckomu vyhovovat více.
Oproti výše uvedeným rozdílům oproti Smalltalku-80, která lze většinou chápat spíše pozitivně, má současný Strongtalk některá nepříjemná omezení. Na nich je vidět, že Strongtalk se od chvíle, kdy se od něj Sun macešsky odvrátil ve prospěch Javy, příliš nevyvíjel a ujel mu vlak.
Strongtalk používá zastaralý způsob inicializace instancí, které se konstruktorem new automaticky neinicializují a překonvertovat image mi dalo hodně práce.
Zásadní omezení se týká práce s aktivním kontextem a zásobníkem, k nimž nemá Strongtalk přímý přístup. Strongtalk používá nativní vlákna a k informacím zásobníku se lze dostat jen v okamžiku suspendování vlákna. V zásobníku se nelze pohybovat a informace, které se dají o jednotlivých úrovních zanoření získat, jsou značně limitované. Díky tomu je prakticky nemožné vytvořit kvalitní debugger.
Problém, který s tím úzce souvisí, jsou výjimky. Strongtalk běžné výjimky bouhužel nepodporuje. Jediná možnost, kterou má, je vyvolání nelokálního návratu, který vede k ukončení postiženého vlákna. Při tom má jedinou možnost vykonání opravného kódu a to pomocí zprávy ensure:, která však nemá možnost lokální návrat zastavit.
Pomocí speciálního procesu, který umožní získat informace o zásobníku a drobné opravy virtuálního stroje se mi sice podařilo výjimky částečně implementovat, ale k dokonalosti to má ještě hodně daleko.
Díky velice omezené práci se zásobníkem je také v současnosti nemožné portovat do Strongtalku Seaside. Tuto podstatnou část interpretu je nutné celou přepsat a celkově ji vytvořit méně optimalizovanou (nejdůležitější operace jsou napsány přímo v assembleru), což se ale jistě negativně projeví na jeho rychlosti.
Ne zcela dopracovaná je také například práce s velkými čísly, kde některé základní operace nejsou zatím implementovány (bez nich například nebylo možné ukládat image s metodami, které obsahovaly velká čísla, protože k nim selhávalo vytvoření hashe).
Nyní také není možné provést rekompilaci celé image a celkově není Strongtalk zatím příliš stabilní.
Vývojové prostředí nezastírá svojí inspiraci v jiném Sunovském projektu - Selfu. Místo smalltalkovských browserů se tak zde pracuje s outlinery. Těm sice celá řada důležitých operací s kódem chybí, ale i tak práce s nimi je celkem pohodlná.
Strongtalk nahrazuje absenci plnohodnotné image pomocí uživatelské stránky projektu, do které si člověk může snadno vložit vlastní kód, odkazy na outlinery apod.
Strongtalk je velice zajímavý projekt. Vážně pochybuji, že by se do konce roku podařilo někomu získat prémii Dana Ingallse na portování Squeaku na Strongtalkovskou VM, ale i tak by se časem mohla ze Strongtalku vyklubat zajímavá platforma - pokud jej ovšem Sun uvolněním Javy pod GPL nepohřbí podruhé.
Strongtalk lze chápat jako pokus o hodně prakticky orientovaný Smalltalk, který úspěšně potlačuje některé vlastnosti Smalltalku, které mnozí vývojáři chápou spíše negativně, a mohl se tak pro tyto vývojáře postavit jako vice než plnohodnotná alternativa Javy. Každopádně především vývojáři zajímající se o dynamickou kompilaci a virtuální stroje by mu měli věnovat nemalou pozornost.
Tiskni
Sdílej: