Hlavní navigace

Zmatení (programovacích) jazyků

Budoucnost .NET

Při nedávném představení Windows 8 a nového Windows Runtime (WinRT) Microsoft oznámil, že tzv. „Metro“ aplikace bude možné psát v C++ (s rozšířeními Component Extensions, označované C++/CX), C#, Visual Basicu a Javascriptu (v kombinaci s HTML5). Tím jistě potěšil vývojáře, kteří v minulých letech přešli na .NET a před konferencí BUILD se obávali, jak Microsoft s .NET v budoucnu naloží. Přesto je role .NET ve Windows 8 značně odlišná, než tomu je ve Windows 7.
26. 9. 2011 10:43 (aktualizováno) | |

Podpora nového standardu C++ v překladačích

Tentokrát jen krátce. Nedávno byl schválen nový standard C++11 (dříve provizorně označovaný C++0×), který kromě rozšíření syntaxe přidává užitečné třídy do standardní knihovny STL. Bohužel ne ve všech překladačích můžete využít vše, co nový standard nabízí. Clang (frontend pro LLVM) ve své nejnovější verzi nemá lambda výrazy. Místo nich má „bloky“ (proprietární uzávěry), které se ovšem kromě syntaxe drobně liší od normy i sémantikou…
22. 9. 2011 9:26 (aktualizováno) | |

Stručná historie Objective-C

Jazyk Objective-C (ObjC) je (ze současného pohledu právem) spojován především s Applem a jeho systémem OS X (a iOS). Jen ti zasvěcenější ale vědí, jak tento jazyk vznikl a jak se vyvíjel. Zde je tedy stručné shrnutí. Vznik Objective-C Objective-C vytvořili Brad Cox a Tom Love jako objektově-orientované rozšíření populárního jazyka C. Základem návrhu jazyka byla úplná zpětná kompatibilita s „céčkem“…
20. 9. 2011 8:04 (aktualizováno) | |

Windows 8 a WinRT

Microsoft nedávno poodhalil budoucnost Windows 8. Základem aplikací je nové běhové prostředí (Windows Runtime, zkráceně WinRT). WinRT je implementované v C++ a aplikace nad WinRT v C++ budou nejefektivnější (.NET jazyky můžou k WinRT přistupovat přes wrapper, stejně jako JS). Kód pro WinRT se píše v jazyce zvaném C++/CX (=C++ Component Extensions), což je C++ s rozšířenou syntaxí vypůjčenou z C++/CLI. Paměť je spravována deterministicky (chybí garbage collector), ale automaticky…
19. 9. 2011 21:03 (aktualizováno) | |

C++/CX

Programujete v C++ pro Windows? Už jste si zvykli na C++/CLI? Tak vězte, že vás čeká učení se C++/CX. Že nevíte, co to je? Doporučuji stáhnout preview Windows 8 s Visual Studiem 2011. C++/CLI (tj. rozšířené C++ pro .NET) je fuč, místo něj najdete C++/CX s podobnou syntaxí (reference vyjádřené symbolem ^), ale odlišnou sémantikou.
17. 9. 2011 20:49 |

Časovač (timer) v C++11

Nová verze STL přidává třídy pro práci s vlákny a časem. Zde je příklad jednoduchého časovače: #include <thread> #include <chrono> class timer { public: timer(int millis, const std::function<void()>& action) { std::thread t([](){ std::this_thread::sleep_for(std::chrono::milliseconds(millis)); action(); }); t.detach(); } };
31. 8. 2011 21:24 | |

STL v LLVM

LLVM rozšiřuje podporu C++0× (teď už vlastně C++11). V souvislosti s tímto novým standardem byla vyydána nová implementace STL, která je mnohem rychlejší (částečně díky využití nových možností C++, částečně použitím chytřejších algoritmů). Nejlepší na této nové knihovně je, že je open source (http://libcxx.llvm.org).
29. 8. 2011 8:42 |

Tak nám schválili C++0x

Kdo používá C++, asi už zaregistroval, že byl schválen nový standard C++, dříve označovaný C++0× (a nyní C++11). Nemá cenu popisovat, co je nového, neboť je toho hodně a lze si o tom přečíst jinde. Pro ty, kdo se o donedávna ještě nehotový standard zatím nezajímali, uvedu, s jakými překladači si jej můžou vyzkoušet a s jakými omezeními.
19. 8. 2011 9:01 (aktualizováno) | |

Lambda výrazy v C++0x a bloky v LLVM

Pokud píšete kód v C++ a používáte lambda výrazy, resp. bloky, mohou se vám hodit makra, která vás odstíní od rozdílů v syntaxi C++0× (nový standard C++) a LLVM (implementace Applu). Zatímco lambda výraz „x → x + 1“ se v C++0× píše [](int x){ return x + 1; } implementace Applu vypadá takto: ^(int x) { return x + 1; }
2. 8. 2011 11:42 (aktualizováno) |

Hybridní jazyky

V tomto článku porovnávám Objective-C++ a C++/CLI, dva hybridní jazyky vzniknuvší „sloučením“ dvou zavedených jazyků. V prvním případě jde o Smalltalk a C++, ve druhém případě o C++ a C# (zjednodušeně řečeno, viz níže). Objective-C++ Brad Cox a Tom Love vytvořili jazyk Objective-C jako objektově-orientované rozšíření (inspirované Smalltalkem) jazyka C. Původní kompilátor byl jen jakýmsi preprocesorem, jenž kód v Objective-C převedl do jazyka C (podobně jako tomu bylo v počátcích u C++)…
29. 7. 2011 13:14 | |