4 komentáře “GeeCON 2011

  1. Ta dekompilace mě až tak nepřekvapila. Javový bytecode je hodně podobný Javovým zdrojákům, rozdíly jsou např v.:
    * Bytecode je de facto reverzní polská notace
    * Cykly jsou implementovány jako skoky.
    * Bytecode umožňuje přetěžovat metody podle návratového typu a fieldy podle typu, čehož využívají některé obfuskátory.
    * Bytecode má oddělený constant pool.
    * Vnitřní třídy se kompilují víceméně jako normální třídy a přístup k nepřístupným členům vnější třídy se jim zajišťuje pomocí tzv. syntetických metod (access$0 apod).
    * Finally se dnes implementuje pomocí catch.

    Dekompilátor je tedy celkem hračka.

    Interface extensions vypadají zajímavě, ale nenašel jsem k tomu cokoli podrobnějšího. Rád bych je porovnal s traity a automatickými konverzemi ve Scale.

    Play framework neignoruje servlety, jen to není obvyklá cesta. Příkazem play war lze vygenerovat war, který pak jede na Tomcatu apod. Jsou tu ale i nějaká omezení, např. nejde suspendovat požadavek a nejely mi WebSockets (asi kvůli suspendu).