Hlavní navigace

Zmatení (programovacích) jazyků - Témata označená nálepkou Programovací jazyky

  • Swift pro Linux

    Apple před pár dny vydal verzi svého nového (resp. dva roky starého) inovativního jazyka pro Linux. Krátce po uvedení Swiftu jsem o něm stručně napsal, ale jeho vývoj byl tak překotný, že by popis jeho dnešní podoby vydal na několik článků. Na to nemám čas (a bylo by to nošení dříví do lesa, protože je o tom na internetu spousta anglicky psaných článků a a každý vývojář anglicky umí), proto jen pár postřehů.
    8. 12. 2015 1:45
  • Post-OOP

    Poslední dobou se lze čím dál tím častěji setkat v odborných textech s pojmem „Post-OOP“. Co je tím myšleno? Máme například už nějakou dobu „post-PC world“ (tento pojem popularizoval Steve Jobs), post-OOP má ovšem uchopitelnější význam. Stačí stáhnout si Swift a trochu experimentovat s tzv…
    8. 12. 2015 1:51 (aktualizováno)
  • Swift podruhé

    Konečně jsem se dostal k instalaci Xcode 6. Takže tady pár dalších dojmů: „Trailing closure“ se ukazuje jako hezká syntaktická vlastnost (přeskupení závorek). Navíc není pravda, jak nesmyslně zaznělo v minulé diskusi, že by zavádělo víceznačnou syntax. Překladač si s případným překlepem hravě poradí.
    5. 6. 2014 11:24 (aktualizováno)
  • Co přináší rorýs

    Swift. Tak se jmenuje nový, včera představený jazyk od Applu. Nová je vlastně jen syntax, tedy frontend pro LLVM, protože se využívá již existující překladač a jako API Cocoa. Ale právě ta syntax je zajímavá. Na první pohled Swift vypadá jako skriptovací jazyk, něco mezi Javascriptem a Pythonem. Nemá například funkci “main”, žádné include atd. Funkčně je to jakési (méně čitelné) ObjC bez nízkoúrovňových věcí. Stručně shrnuto žádná revoluce, ale mírná evoluce…
    5. 6. 2014 11:19 (aktualizováno)
  • Úskalí JNA

    V takzvaných vyšších jazycích založených na bajtkódu a plném GC je často nutné volat nativní kód, ať už kvůli neexistenci knihovny v onom “vyšším” jazyce nebo pro vyšší výkon (z hlediska rychlosti a/nebo zacházením s pamětí). Zatímco .NET má své C++ Interop (dříve IJW; P/Invoke nikdy, ale opravdu nikdy nepoužívejte), Java si dlouho musela vystačit s primitivním JNI. Situaci poněkud zlepšila knihovna JNA, nicméně vzhledem k návrhu celé JVM i zde je hranice mezi oběma světy, narozdíl od .NET, velm
  • Proměnlivé šablony a RPC v C++

    RPC je sice technologie včerejška (nebo úzce specializovaných aplikací s těžkotonážními rozhraními à la Corba), nicméně v reakci na poznámku na jednom vývojářském fóru jsem se zamyslel nad možností transparentního volání vzdálených procedur (tak nějak by se asi RPC přeložilo do čestiny) v C++. Přímočaré řešení je volat metodu v proxy oklikou podle jména funkce a argumenty předat jako seznam (nebo pole nebo vektor nebo něco podobného)…
  • Java a nativní paměť

    V .NET máme v podstatě zadarmo možnost obejít p-invoke a přistupovat k nativnímu kódu přímo z C#. Mnohdy je ale problémem pouze zacházení s pamětí a o nativní (resp. C(++)) kód nám vůbec nejde. V takovém případě máme k dispozici neřízenou haldu. V Javě máme to samé, jen se o tom tolik neví. Samozřejmě bychom mohli k efektivnímu zacházení s pamětí použít JNI nebo JNA, ale mnohem multiplatformnější je využít třídu sun.misc.Unsafe…
  • Proč je Java za zenitem

    Java vznikla jak odpověď na tristní stav vývoje softwaru v 90. letech. Na vině byl hlavně Microsoft se svým příšerným Winapi a nízká portabilita kódu v C(++). Java se silně (zejména v oblasti knihoven) inspirovala OpenStepem (což byl ostatně částečně produkt Sunu), hlavně proto, že Sun koupil několik firem vyvíjejících pro OpenStep. První verze Javy ničím moc neoslnila, ale krok za krokem se z ní pomalu stávala zajímavá platforma.
    24. 3. 2014 23:53 (aktualizováno)
  • 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)