Zmatení (programovacích) jazyků

  • C++14

    Clang již podporuje C++14. Přehled novinek (velmi stručně), které se mi líbí: make_unique – je to drobnost, ale umožní vyhnout se úplně používání „new“. Automatická inference typu návratové hodnoty. Například místo „const std::function<void(const std::strin­g&)>& neco()“ můžu napsat jednoduše „auto neco()“. Generické lambdy. Například výraz „[](auto x,auto y){return x+y;}“ lze použít s libovolným typem, pro nějž je definován operátor sčítání…
  • Jaký jazyk jako první?

    Každá škola řeší problém, jaký jazyk učit začátečníky jako první. Běžný vývojář k této otázce nemá co říct, protože lidé ze své podstaty preferují a doporučují to, co sami znají, a odmítají (a ti hloupější kritizují) to, co neznají. Nicméně i profesoři se hádají mezi sebou, když o tomto mají rozhodnout. Situaci komplikuje i dynamičnost IT oboru, ve kterém se vše příliš rychle mění (někdy k lepšímu, někdy k horšímu).
    19. 2. 2014 16:50 (aktualizováno)
  • Vývojářem snadno a rychle

    Když jsem nedávno četl na Infoworldu článek o významu rozmáhajících se několikadenních IT školení, připomnělo mi to časy, kdy firma, kde jsem tehdy pracoval, posílala své zaměstnance na podobné akce. Protože český trh (a český lid) je v mnohém specifický, neuškodí se na toto téma podívat blíže v lokálním kontextu.
    13. 2. 2014 14:45
  • Sensus communis

    CSR (common sense reasoning) je jednou z nejdůležitějších oblastí umělé inteligence. Jak sám název napovídá, CSR úzce souvisí s formální logikou. Z pohledu implementace vyvstává otázka, jak lze CSR adekvátně reprezentovat a vyhodnocovat. Obecné znalosti (common knowledge) lidé získávají skrz jazyk a není důvod, proč by tomu mělo být v AI jinak. Jazyk je lineární reprezentací informací a jeho formální podobu lze interpretovat v duchu tzv. konjunktivismu, tj…
  • Answer Set Programming

    Nikdo jistě nepochybuje o užitečnosti logického programování. Znalost většiny vývojářů ovšem končí u Prologu (pokud vůbec), což je sice velmi elegantní a propracovaný jazyk, ale má i pár nevýhod. Moderní implementace nabízejí tabling, čímž zaručují vyvarování se nekonečné smyčky, pokud program splňuje „bounded term-depth property“, ale až na nečetné výjimky nepodporují disjunkci (protože trvají na Hornových klauzulích). Řešení poskytuje až ASP (dříve nazývané „stable models programming“).
  • Kognitivní asistent

    Jak se implementuje aplikace à la Siri? Protože právě na podobném projektu pracuji, popíšu (velmi stručně) jednotlivé moduly v pořadí, jak si předávají data. V závorkách uvádím anglické názvy pro snazší vygooglování. 1. Rozpoznání řeči (speech recognition). To si člověk na koleně nenapíše. Pro mobilní aplikace nabízí SDK například Nuance. Někdy je vhodné použít ne nejpravděpodobnější rozpoznaný text, ale celý chart (lattice)…
  • Potřebují programátoři VŠ?

    U předminulého příspěvku se v komentářích několikrát objevila otázka, zda by programátoři měli mít vysokoškolské vzdělání. Ta je sama o sobě zajímavá a důležitá a váží se na ni další aspekty ohledně programování. Osobně bych programátora bez VŠ nepřijal, ani kdyby pracoval pouze za stravu. To samozřejmě neznamená, že takoví lidé nejsou pro některé firmy užiteční, a už vůbec ne, že žádoucí je vzdělání v oboru IT…
    12. 11. 2013 17:25
  • Usmívejte se, vyletí výjimka

    Dnes malá perlička z microsoftího světa. Nejprve o zlomyslných programátorech. Dostala se mi do ruky knihovna (DLL) pro .NET. Při použití v programu napsaném v C# vyhodila výjimku. RuntimeWrappedException. Dobrá tedy, někdo použil throw na objekt nedědící z Exception. Vezmu WrappedException, jenže tu nelze přetypovat, protože nějaký dobrák použil šablonu, takže C# onu třídu vůbec nevidí (nenašeptává, nepřekládá). Kontrolní otázka: pokud vím, že vyhozená třída má metodu UserData, jak ji zavolám?
  • Typy programátorů

    Vzhledem k věku se již mohu ohlédnout zpět a na základě zkušeností shrnout a schématicky popsat, jaké typy programátorů se (nejen v našich končinách) vyskytují. Pokud se v textu poznáte, můžete se o své pocity podělit v komentářích, ale pouze slušně a konstruktivně. Málokdo z mých současných kolegů začínal ještě s asemblerem na dnes nepředstavitelně velkých, těžkých a sálajících strojích, kdy nejsofistikovanějším jazykem byl BASIC a odborná literatura k nám proudila z Polska…
    3. 11. 2013 23:17
  • Ptáci létají

    Každé malé dítě ví, že ${title}. Vyjádřeno formálněji, pokud x je pták, x létá. Modus ponens jako vyšité. Problém ovšem nastává, jakmile někdo namítne, že x může být pštros. Nebo tučňák. Nejen v přirozeném jazyce, ale obecně při logickém rozumování o světě velice záhy narazíme na nejasné hranice pojmů, pravidel a ontologie vůbec. Jinými slovy, svět kolem nás nejde dokonale formálně reprezentovat v klasické logice prvního řádu…