Hlavní navigace

Zmatení (programovacích) jazyků - Články označené nálepkou Programovací jazyky

  • Rezoluce aneb předstupeň logického programování

    Logické programování (Prolog a spol.) je v mnohém revoluční a přinejmenším poskytuje jiný úhel problému na řešený problém. Málokdo ví, jak se tzv. logické programování vlastně vyvinulo. Prvopočátkem bylo tzv. automatické dokazování tvrzení (anglicky Automated Theorem Proving – ATM, někdy také Mechanical Theorem Proving). Bývá často považováno za součást umělé inteligence, nicméně spadá pod formální logiku. Vše začalo v roce 1965, kdy John Alan Robinson objevil rezoluci…
    6. 8. 2013 18:57 (aktualizováno)
  • 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#)…
  • 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.
  • 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)…
  • 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)
  • Všudypřítomná harmonie

    K nejrozšířenějším jazykům dneška patří JavaScript (JS). Navzdory svému jméno se od Javy dost liší, sdílí s ní v podstatě jen céčkovou syntax. Byl kodifikován pod názvem ECMAScript a nedávno jsme se dočkali verze 5,1. Verze 5,1 je jen mírným pokrokem, daleko větším měl být JS 4,0, jejž ovšem Microsoft jako normu zablokoval (nelíbilo se mu, že by se Adobe prosadilo se svým ActionScriptem)…
    11. 1. 2012 18:15
  • IAsyncOperation&lt;WTF&gt;

    Jak ve WinRT získáte seznam souborů v adresáři? V C# nějak takto: var folder = KnownFolders.PicturesLibrary; var files = await folder.GetFilesAsync(); foreach (StorageFile file in files) { /* ... */ } A jak to bude vypadat v C++/CX…
    19. 12. 2011 22:30 (aktualizováno)
  • Úskalí míchání nativního a řízeného kódu

    Když píšete v nějakém jazyce s bajtkódem a GC (např. pro .NET nebo v Javě), narazíte občas na potřebu použít nativní kód (například kvůli výkonu nebo máte nějaký z dřívějška a nechce se vám ho přepisovat). Volání nativního kódu z řízeného a naopak s sebou přináší pár problémů, na které je třeba dát pozor.
    5. 12. 2011 17:01
  • Je Objective-C moderní jazyk?

    Objective-C získalo v posledních letech díky rozšíření iOS na popularitě (viz Tiobe index). Pokud jste ObjC kdysi (před ObjC 2.0) viděli a stále soudíte podle tehdejšího dojmu, možná vás překvapí, že současná verze jazyka  je podstatně jiná. Nejprve se velice stručně podívejme na vývoj ObjC: původní verze (Cox, Love), verze NeXTu, verze Sunu (OpenStep), zde šlo ovšem spíše o změny v knihovnách, ne jazyka jako takového, první verze Applu (zde šlo také ne o jazyk, ale knihovny a runtime), ObjC 2.0
    19. 11. 2011 18:49
  • Renesance C++

    Titulek článku jsem si půjčil z Channel9. Je nepřehlédnutelné, že C++ se pomalu vrací na výsluní. Na přelomu tisíciletí jej nahradily tzv. řízené (managed) jazyky. Co si budeme povídat, C++ toho tehdy hodně postrádalo, a právě v té době se výkon počítačů dostal na úroveň, kdy si vývojáři mohli dovolit obětovat trochu výkonu za vyšší produktivitu.