Hlavní navigace

Zmatení (programovacích) jazyků

Windows kolem nás

V tomto týdnu Microsoft konečně alespoň částečně odhalil, co v příštích měsících chystá. V pondělí představil vlastí tablet Surface a včera popsal nadcházející WP8. Co nás tedy na podzim čeká (z pohledu vývojáře)? Windows 8 bude mít tři edice. Vlastní Windows 8 pro desktopy s Intelem, Windows RT pro tablety s ARM a WP8 pro telefony. Aplikace pro první dva jmenované  budou sdílet „velkou část kódu“ s aplikacemi pro WP8 (v MS si dávají velký pozor, aby neřekli, že kód bude plně přenositelný)…
21. 6. 2012 2:02

Casablanca

Nedávno Microsoft zveřejnil knihovnu Casablanca pro jednoduchou a výkonnou HTTP komunikaci. Projekt je inspirován node.js, vše je asynchronní a využívá moderní C++11. Napsat si vlastní HTTP server je otázkou pár řádků: http::listener::http_listener::create("http://localhost:8899/", _[](http::listener::http_request request) { __request.reply(http::status_codes::OK, "Hello, World!"); __std::cout << "Request processed: " << request.request_uri().to_string() << std::endl; }).listen
14. 6. 2012 12:07 | |

Quo vadis? aneb Moderní Objective-C

U C++ je módní mluvit o „moderním“ C++ jakožto protikladu k předpotopní verzi jazyka. Celé to začal Andrei Alexandrescu svou knihou, jež měla slovo „modern“ přímo v názvu. Přirozeným vyústěním ®evolučních snah je nový standard C++11. Pochopitelně každý jazyk se vyvíjí a přizpůsobuje aktuálním potřebám a výzvám. Některé jazyky se rozšiřují spíše konzervativně (Java), jinde to dopadá jako dort pejska a kočičky (C#)…
6. 6. 2012 13:13 | |

Microsoft a C++11

Microsoft a standardy, to je věčné (a nevděčné) téma. Když Microsoft zprznil C++ svým C++/CX (uznávám, že ARC od Applu v zásadě jinak v prostředí C++ okopírovat nešlo), mohl si aspoň dát pozor na chyby. Teď prosím zvolejte třikrát „sláva Microsoftu!“, neboť devět měsíců po nahlášení kritického bugu jsme se konečně dočkali opravy i ve veřejné verzi překladače (jedná se o úniky paměti v lambda výrazech, psal jsem zde o nich nedávno)…
3. 6. 2012 23:24 (aktualizováno) |

Node.js bez js

Většina z vás asi zná node.js bežící na V8 od Googlu. Méně známá je verze node.native, která je v podstatě to samé, ale bez V8 (a tedy bez Javascriptu). Vývojáři vzali libuv a napsali pár hlavičkových souborů, díky nimž pomocí pár řádků naimplementujete vlastní asynchronní HTTP server. using namespace native::http; int main() { http server; if(!server.listen("0.0.0.0", 8080, [](request& req, response& res) { res.set_status(200); res.set_header("Content-Type", "text/plain"); res.end("C++
23. 5. 2012 1:15 |

Naprogramujte si satelit

Nedávno jsem se dostal k vývoji softwaru pro satelitní přijímače. Protože mi používané řešení přijde poměrně zajímavé a ne zrovna všeobecně známé, rozhodl jsem se napsat o něm pár poznatků. K experimentům jsem použil Clarktech ET9000. Ten má procesor MIPS (na 400 MHz), 128MB úložiště na desce (flash) a 512MB operační paměti (a ještě 8 MB pro bootloader). Operačním systémem je upravený Linux a nad ním Enigma.
3. 5. 2012 21:11 |

Komu patří jazyk

Před pár lety byl Bill Gates nemálo překvapen dopisem, ve kterém byl obviňován z „intelektuálního pirátství“. Tentokrát nešlo o grafické uživatelské rozhraní nebo podobný softwarový artefakt. Dopis poslala mapučská rada starších, jíž se nelíbilo, že Microsoft přeložil Windows do jejich jazyka, nazývaného mapudungun. Přitom předchozí překlad do několika jiných jazyků původních obyvatel Ameriky nikoho nepobouřil. Případ nakonec skončil u soudu…
23. 4. 2012 11:08 (aktualizováno) |

Objective-C populárnější než C#

Podle indexu TIOBE předstihlo Objective-C v popularitě C#. A nastoupený trend naznačuje, že by mohlo brzy předstihnout i C++. Otázkou samozřejmě zůstává, jak spolehlivé toto hodnocení je, vzhledem k tomu, že Java je s odstupem údajně mnohem populárnější než vše ostatní s výjimkou C.
14. 4. 2012 11:21 | |

Clang, bloky a std::function

Uživatele clangu potěší, že můžou napsat něco jako std::function<void()> lambda = ^{ /* neco */ }; (Při překladu je nutné použít volbu -stdlib=libc++, se standardním libstdc++ se kód nepřeloží.) Člověk by přitom naivně předpokládal, že vzhledem k explicitní deklaraci se už o správu paměti nemusí starat. Jenže pokud proměnnou lambda například vrátíte z funkce, blok zanikne (protože je na zásobníku)…
11. 4. 2012 17:16 | |

Správa paměti v C++

Na diskusních fórech se stále dokola opakuje tvrzení, že v C++ hrozí úniky paměti, že je na ně náchylné, případně že je pro programátora náročné psát kód bez úniků paměti a že právě proto je psaní kódu v C++ méně efektivní. Kdo toto tvrdí, je veleosel. Sám tvůrce C++ Bjarne Stroustrup vysvětluje, jak správa paměti vzhledem k objektům funguje, nemá cenu vše opakovat…
11. 4. 2012 17:08 (aktualizováno) | |