Internetový prohlížeč Ladybird ohlásil tranzici z programovacího jazyka C++ do Rustu. Přechod bude probíhat postupně a nové komponenty budou dočasně koexistovat se stávajícím C++ kódem. Pro urychlení práce bude použita umělá inteligence, při portování první komponenty prohlížeče, JavaScriptového enginu LibJS, bylo během dvou týdnů pomocí nástrojů Claude Code a Codex vygenerováno kolem 25 000 řádků kódu. Nejedná se o čistě autonomní vývoj pomocí agentů.
Byl vydán Mozilla Firefox 148.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově lze snadno povolit nebo zakázat jednotlivé AI funkce. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 148 bude brzy k dispozici také na Flathubu a Snapcraftu.
Byla vydána nová verze 22.1.0, tj. první stabilní verze z nové řady 22.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools a Libc++.
X86CSS je experimentální webový emulátor instrukční sady x86 napsaný výhradně v CSS, tedy bez JavaScriptu nebo dalších dynamických prvků. Stránka 'spouští' assemblerovový program mikroprocesoru 8086 a názorně tak demonstruje, že i prosté CSS může fungovat jako Turingovsky kompletní jazyk. Zdrojový kód projektu je na GitHubu.
Po šesti letech byla vydána nová verze 1.3 webového rozhraní ke gitovým repozitářům CGit.
Byla vydána nová verze 6.1 linuxové distribuce Lakka (Wikipedie), jež umožňuje transformovat podporované počítače v herní konzole. Nejnovější Lakka přichází s RetroArchem 1.22.2.
Matematický software GNU Octave byl vydán ve verzi 11.1.0. Podrobnosti v poznámkách k vydání. Vedle menších změn rozhraní jsou jako obvykle zahrnuta také výkonnostní vylepšení a zlepšení kompatibility s Matlabem.
Weston, referenční implementace kompozitoru pro Wayland, byl vydán ve verzi 15.0.0. Přehled novinek v příspěvku na blogu společnosti Collabora. Vypíchnout lze Lua shell umožňující psát správu oken v jazyce Lua.
Organizace Apache Software Foundation (ASF) vydala verzi 29 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Ústavní soud na svých webových stránkách i v databázi NALUS (NÁLezy a USnesení Ústavního soudu) představil novou verzi chatbota využívajícího umělou inteligenci. Jeho posláním je usnadnit veřejnosti orientaci v rozsáhlé judikatuře Ústavního soudu a pomoci jí s vyhledáváním informací i na webových stránkách soudu, a to i v jiných jazycích. Jde o první nasazení umělé inteligence v rámci webových stránek a databází judikatury českých soudů.
Nevím, co si o tom myslet, až na korutiny mi to přijde úplně nesmyslné. A i korutiny jdou řešit lépe a v existujících jazycích (OpenMP, Boost Thread, ThreadWeaver, Scheduler/Linux Activations).
A i korutiny jdou řešit lépe a v existujících jazycích (OpenMP, Boost Thread, ThreadWeaver, Scheduler/Linux Activations)imho gorutiny maji byt neco jineho nez vlakna a v kombinaci s kanaly to muze byt docela mocne. i kdyz osobne by se mi libilo spis, kdyby zpravy zaslane kanalem definitivne neslo precist, jak to ma udelane treba sing#
Go je typově a paměťově bezpečný jazyk a to se s aritmetikou ukazatelů nedá snadno, tedy spíše v podstatě asi vůbec nijak, skloubit dohromady.Přijatelný kompromis je systém vlastních alokátorů, jak ho např. má C++ nebo Ada.
Go je typově a paměťově bezpečný jazyk a to se s aritmetikou ukazatelů nedá snadno, tedy spíše v podstatě asi vůbec nijak, skloubit dohromady.Jazyky se silnějším typovým systémem by s tím neměly mít problém. Viz třeba ATS.
. Na to se podívám.
Třeba tohle? http://yosefk.com/c++fqa/defective.html#defect-7
a to vznikne jednoduchým std::map<std::string, std::string> STL je hodně blbě navržená knihovna a kdykoliv musím s C++ dělat, tak se jí obloukem vyhýbám a využívám raději přímo Clib. (cstdlib, cstdio, c*)
nikoliv - třeba místo komplexních templates mohli naprogramovat opravdový dynamický arrays s měnitelnou délkou a tak mohly být dělaný i stringy - např. jako to dělá jazyk D. Btw, Dčkový string jako array je v benchmarku asi 3x rychlejší než std::string, daleko lépe navržený a mnohem elegantnější co se týče úprav, vyhledávání apod. (např: slicing: string a = "hello world"; string b = a[6 .. $]; /* b je "world" */)
co se týče std::map, D má asociativní arrays: int[string] x = [ "foo":5, "bar":10 ]; x["y"] = 143; který jsou opět efektivnější než std::map a mnohem lépe se s nimi pracuje.
Špatně, std::map není hashtable, ale binary search tree; hashtable v C++ je std::unordered_map, který je ale až součástí TR1.
Co se týče asociativní array v D, tak je to ve skutečnosti opravdu hashtable.
To s map není špatný návrh, to je naopak hodně propracovaný návrh.No, to se přece nevylučuje. A jestli je skutečný typ té StringToStringMapy opravdu takový, jak se v odkazovaném dokumentu píše (což nemám nejmenší chuť zjišťovat), pak je to skvělý příklad toho, jak mizerný může být takový propracovaný návrh.
Nemám nic proti templates ani metaprogrammingu, ale STL a Boost mi přijdou dost "overengineered" a rozvrstvené; asi je to tím, že pracuju hlavně s Cčkem, kde nic takového neexistuje - ale jako správně udělanou mid/high-level standardní knihovnu si představuju něco jako Phobos2 z jazyka D https://github.com/D-Programming-Language/phobos/tree/master/std - umí toho dost (včetně algorithm knihovny pro různý filtrování polí a takové věci) a přitom je srozumitelně a jednodušše naprogramovaná; Co se týče kontejnerů jako vector, map atd, nic takového není třeba, protože jsou podporovány dynamic arrays / hashtables na kterých je možno provádět bez problému slicing, vyhledávání apod a pro filtrování (např. odstraňování elementů, nebo nalezení největšího čísla v array apod) je možné využít algorithm knihovnu (např. template "reduce")
template<typename T>
class Something {
static void func(void)
{
T::tady bude asi problém
}
};
C++ je dobrý jazyk, ale vyžaduje praxi, protože půlka jeho vlastností je určena pro méně než jedno procento dobře navrženého kódu (např. pointerová aritmetika nebo private členové).Nebylo by pak lepsi rozdelit jej na 2 dobre spolupracujici jazyky, a tu pulku umistit do toho nizkourovnoveho? Ale ja to chapu. Podle me C++ melo sve misto v historii jako urcity meziclanek - jazyk na psani komplikovanych aplikaci v dobe, kdy kompilatory byly jeste v plenkach. Mista, kde se opravdu hodi nasadit C++ - slozity program, ktery musi byt zaroven rozumne rychly - dost ubyvaji, namatkou jeste treba herni enginy. (Na druhou stranu, Common Lisp tyto problemy resil taky. I kdyz ta nizka uroven mohla byt v nem trochu lepsi.)
GC v Go přináší stejné výhody, ale i pochopitelně i shodné nevýhody jako v cca každém jiném GC jazyku. Pocit, že na uvolňování paměti lze z hlediska programátora zapomenout, je oprávněný jen z velmi malé části.Ze statistik o tvorbě programů vyplývá něco jiného. GC se zavádí právě kvůli problémům programátorů s uvolňováním paměti.
Nedobře napsaný kód v libovolném GC jazyce generuje pro GC zbytečně mnoho práce (třeba alokace v cyklu, kterou ale přitom lze vytknout před něj). Za to se platí zpomalením/zpomalováním/přerušováním běhu aplikace a zvýšenými nároky na zdroje systému. Dva funkčně shodné programy v GC jazyce se mohou lišit až příliš snadno na škále od perfektně vyhovující aplikace až po program, který pro soustavný trashing není použitelný vůbec k ničemu, tedy pokud nepočítáme účinnou „výrobu“ frustrace jeho nešťastného uživatele.Tohle není věc specifická pro jazyky s GC. Tuhle chybu může udělat i vývojář v jazyku bez GC.
Tiskni
Sdílej: