abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 8
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 12
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    24.4. 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 13
    24.4. 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 780 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Jízda na Tigrovi, aneb káva s novými příchutěmi

    19.9.2006 21:51 | Přečteno: 1859× | Jen tak | Výběrový blog

    S nástupem Javy 1.5 došlo k mnoha vylepšením jazyka. Přesto, že už je tomu nějaký pátek, překvapilo mě, že mnoho programátorů v Javě nové možnosti nevyužívá. No a k nim se řadím i já (na mou (vý)omluvu, dělám v Javě pár měsíců). Určitě jsou kvanta stránek, které se tím zabývají, ale stejně si musím napsat vlastní poznámky.

    for each

    Jediná věc, kvůli které jsme postoupili martýrium výměny vlastního překladače z jbosse/tomcatu na jdk 1.5 od Sunu. Sice je deploy pomalejší, ale i za tuto jedinou konstrukci se to vyplatí.

    O co jde. Návrháři jazyka Java bohužel povětšinou tupě kopírovali C++, zapomínajíc, že nedělají další nadstavbu nad C, ale nový vysokoúrovňový jazyk. Takže pro mě dost nepochopitelně přebrali i cyklus ala C — for(inicializace; podmínka; další akce). Díky tomu se procházení třeba polem rovnalo "hezkému" kódu jako

    for (int i = 0; i != argv.length; i++) { ... }
    
    Jistě, příchozí z C je jako doma, ale toto má být vysokoúrovňový jazyk, kde ne pro procházení obecnou kolekcí nemusí zjišťovat meze. Navíc, pokročilejší datové struktury již nabízejí iterátory, takže ty se procházejí s jejich pomocí (ale jinak, než pole). Na tomto místě musím pochválit krásnou javovskou vlastnost, že je délka pole length, zatímco všude jinde je to size(). Moc hezké.
    Iterator i = o.iterator();
    while (i.hashNext()) { ... i.next()}
    

    Java 1.5 má naštěstí již foreach a pole podporují iterátory, takže je možné i v Javě procházet kolekce a pole (bohužel ne třeba řetězce, holt konzistence se v některých jazycích nenosí) stejným způsobem a elegantním způsobem. O střeva v podobě iterátorů se stará jazyk sám

    for (String arg : argv) {}
    

    Generické datové typy a šablony

    Velice hezká vlastnost, která v Javě (z mě nepochopitelných důvodů) chyběla. Díky tomu je možné za pomocí trochy syntaxe navíc alespoň částečně emulovat dynamické jazyky a psát jeden kód, který je na datových typech nezávislý, čímž se typová kontrola naopak posílí.

    Hezky to ilustruje příklad ze samotného Sunu. Třída LinkedList obsahuje hnusné metody jako add, které jako parametr berou Object. Kampak se nám asi ztratila ta proklamovaná typová bezpečnost?

    Generické datové typy umožňují parametrizovat třídy, které dopředu neznají typy. V podstatě, jedna implementace (například třídy LinkedList) může obsahovat libovolný datový typ, přičemž můžeme její typ definovat:

    List<String> lst = new LinkedList<String>();
    lst.add(4);  // prekladac ohlasi chybu
    
    Díky tomu můžeme psát funkčnost jednou a znovupoužívat ji pro odlišné datové typy. Navíc se nezbavujeme silné typové kontroly (pokud nepoužijeme Object :-)).

    Autoboxing

    Další bolístka Javy je v tom, že mimo objektových datových typů jako Integer, používá i vestavěné primitivní datové typy jako int. Tato nekonzistence v jazyce ovšem přináší potíže, které jsou navíc umocněny tím, že většina metod samotné standardní knihovny vrací spíše primitivní int, než Integer. Ovšem int není objekt, to znamená, že je nemožné ho použít třeba jako šablonu. Takže místo List<int> je nutné psát List<Integer>

    Do verze 1.5 bylo potřeba mezi int a Integer převádět "ručně" za pomocí třeba Integer i = new Integer(115). Což je otravné, protože překladač má v době překladu všechny informace k dispozici a konverzi může udělat sám.

    Integer i = 115;
    /* java 1.4
    found   : int
    required: java.lang.Integer
            Integer i = 115;
                        ^
    1 error
    */
    
    Což je právě autoboxing, kdy Java obaluje/rozbaluje objekty do primitivních typů a naopak zcela automaticky.

    Proměnný počet parametrů

    Tohoto využívá nová statická metoda format třídy MessageFormat, která je definována jako

    public static String format(String pattern,
                                Object... arguments);
    
    No a dají se s tím dělat hezké věci, jako třeba (viz odkazovaná dokumentace)
    int planet = 7;
    String event = "a disturbance in the Force";
    
    String result = MessageFormat.format(
        "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
        planet, new Date(), event);
    
    Ti, co znají printf z C asi budou překvapeni, Javovská verze toho umí víc. Ovšem, jak vidíme Object, tak je jasné, že opět obcházíme typový systém.

    Typově bezpečný výčet

    Java před tím nic podobného neměla, takže se výčty dělaly jako

    class en1 {
        public static final int FOO = 0;
        public static final int BAR = 1;
    }
    class en2 {
        public static final int HAM = 0;
        public static final int SPAM = 1;
    }
    
    Potíž je v tom, že podle překladače platí en1.BAR == en2.SPAM == 1. Takže, pokud očekáváme položku z nějakého výčtu, můžeme tam napsat prakticky cokoliv, protože se jedná jenom o číslo.

    Java 1.5 naštěstí má typově bezpečné výčty, takže

    enum en1 {FOO, BAR};
    enum en2 {HAM, SPAM};
    
    A teď už neplatí, že en1.BAR1 == en2.SPAM == bulharska_konstanta

    No a na spousty věcí (třeba anotace, nebo statické importy) jsem tu ani nezmínil. Novinky v 1.5 hodnotím pozitivně, protože pomáhají napravit bolavá místa Javy a zjednodušují programování. Ovšem je nutné podotknout, že se o vývoj této verze Javy paradoxně nejvíce zasloužil právě Microsoft, protože pánové ze Sunu usnuli na vavřínech a libovali si, jaký to mají krásný a dokonalý jazyk.

    Doufám, že verze 1.6 bude v nastoleném trendu pokračovat, i když věcí, které bych rád v jazyce viděl, jako jsou ntice, operátory, anebo properties, se asi hned tak nedočkám. Je někde na webu přehledný seznam nových vlastností Javy6?

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    19.9.2006 22:34 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Nejdříve musíš ovládnout J2SE a J2EE a potom pod tíhou skutečnosti, že jednoduchá aplikace se bez kontejnerů, servletů, filtrů, adapterů a fazolí neobejde, uvěřit ve své schopnosti. Takový foreach už pak nikdyt nebudeš potřebovat, protože by svým zjednodušením značně znepřehlednil kód...
    Math, as Barbie says, is hard.
    Luk avatar 19.9.2006 23:21 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Nějak jsem to nepochopil ;-)
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    20.9.2006 07:42 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Člověk se často nevymotá ze snahy pochopit zmíněné frameworky a nové rysy jazyka práci zjednodušující mu v jejich světle přijdou naopak matoucí:-).

    Spousta serverů dodnes běží dokonce na JRE 1.3, ve fórech jsem zachytil nářky lidí, co bojují se špatnou koncepcí a rychlostí Swingu, EJB, Web Start... Novinky v 1.5 jsou pěkné, ale že je vývojáři nepoužívají napovídá, že mají jiné starosti:/.
    Math, as Barbie says, is hard.
    27.9.2006 09:30 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Tak tak, programuju s Eclipse RCP a tam se budou změny hodně težko prosazovat. Je to stará Java1.1 škola, řekl bych (není to až tak hrozné, ale jako přirovnání se to dá použít).
    19.9.2006 23:27 Bubak | skóre: 16 | blog: Čtvrtá cenová
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Neexistence promenneho poctu parametru me stve pokazde, kdyz pisu pet konstruktoru:-).

    Foreach bych taky bral. Uz jen kdybych nemusel u nekterych veci zachovavat kompatibilitu s 1.2, to by se to zilo ...
    ... máš jen mrtvou kočku a poškrábanýho jezevčíka ...
    19.9.2006 23:42 Ladislav Thon
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    foreach: jak by se mělo iterovat přes String? Po znacích? Po slovech? Po větách? Je fakt, že StringTokenizer a podobné záležitosti by Iterable implementovat mohly...

    autoboxing: spíš bych ocenil, kdyby se součástí Collections Frameworku stalo něco jako Primitive Collections for Java, než součástí Javy tohle zatemňovátko. Třikrát fuj autoboxingu/-unboxingu (a statickým importům)!

    enum: typově bezpečné výčty se dříve dělaly takto:
    public class Enum1 {
      public static final Enum1 FOO = new Enum1();
      public static final Enum1 BAR = new Enum1();
    
      private Enum1() {
      }
    }
    Java 5 pro to akorát přinesla syntaktický cukr, který občas chutná trochu jako sůl, ale co už.

    Java 6: pokud vím, tak žádné změny v jazyce by nastat neměly. V Javě 7 bychom se zato mohli dočkat těch halasně proklamovaných closures (já bych tomu česky říkal uzávěry a podle definice closure by to mohlo být správně, ale nešť) a s nimi souvisejících referencí na metodu (což je z historických důvodů docela vtipné, ale aspoň že neobšlehli od Microsoftu delegáty). A integrace XML... hm, to už nebezpečně zavání sýšárpem...
    20.9.2006 13:12 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Tak, jak to dělají ostatní jazyky. Po znacích. Kdo, chce, může si napsat vlastní třídu, která může iterovat třeba po slovech, nebo po větách. Ale z hlediska konzistence jazyka by byly iterátory ve Stringu imho přínosem.
    When your hammer is C++, everything begins to look like a thumb.
    20.9.2006 14:50 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Ostatní jazyky mají většinou definován String jako pole znaků. V Javě je String prostě neměnný text. Skoro bych řekl, že jestli někdo potřebuje v Javě často procházet String po znacích, dělá něco špatně :-)
    20.9.2006 08:34 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Heh, když si čtu některé tyhle věci, začínám chápat, že C++ není tak ošklivé. :-D Ad generika – jsou i skeptici. ;-)

    http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html

    http://lambda-the-ultimate.org/node/804

    defmacro forever! :-D
    20.9.2006 13:17 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    To je tak, generika do Javy přináší zesílení typového systému, což se někomu může, nebo nemusí líbit. Na druhou stranu vlastně emulují dynamické jazyky, proto je to tak složité na zápis.

    Navíc psát List<Object> může člověk pořád, ne? :-D
    When your hammer is C++, everything begins to look like a thumb.
    20.9.2006 13:28 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Ano, takový zápis má hrozně rádo Eclipse. (páč když si nastavíte Javu 5 a uděláte seznam bez generik, tak to podtrhne a varuje)
    Copak toho není dost?
    20.9.2006 13:33 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Řešení je snadné, nepoužívat Eclipse :-D
    When your hammer is C++, everything begins to look like a thumb.
    20.9.2006 19:58 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Nebo nepoužívat Javu, případně oboje. Ať žijí velkolepá řešení :-)
    Copak toho není dost?
    21.9.2006 08:41 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    No, pokud vývojové prostředí neschroustne zápis, který je v pořádku, zdá se mi logické je vyměnit za jiné (anebo reportovat bug).
    When your hammer is C++, everything begins to look like a thumb.
    21.9.2006 08:45 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Vypisuje pouze varování, ne že by to nesežralo. Něco ve smyslu: a co tak kdybys tam hodil ty generika, he?
    Copak toho není dost?
    21.9.2006 09:04 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Ovšem tohle není problém vývojového prostředí, ale toho, že dotyčný nejspíš moc neví, co dělá.
    Ano, takový zápis má hrozně rádo Eclipse. (páč když si nastavíte Javu 5 a uděláte seznam bez generik, tak to podtrhne a varuje)
    To podtržení skutečně znamená varování, a to varování kompilátoru. Eclipse s tím nemá téměř nic společného - akorát to varování kompilátoru prezentuje graficky. Když si ten samý kód zkusíte přeložit sunovským javac se zapnutými varováními, dostanete na stejném místě stejné varování. Pokud opravdu chcete, můžete příslušné varování potlačit anotací @SuppressWarnings("unchecked"). Eclipse varovat přestane, ale mám pocit, že sunovský javac kompilátor ve verzi 5 tuhle anotaci ignoruje.

    Pokud chcete používat kolekci, ve které může být libovolný objekt, není správné používat nekontrolovanou (unchecked) kolekci, ale použít zástupný znak. Místo např. List použít List<?>.

    Myslím, že vy byste byl první, kdo by odsoudil vývojové prostředí, které ignoruje nebo zatajuje oprávněná varování kompilátoru :-)
    21.9.2006 09:16 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Aha, no tak to jsem pochopil špatně :-). Jako bych nic neřekl.
    When your hammer is C++, everything begins to look like a thumb.
    21.9.2006 09:18 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    To je zase trochu blbý v tom, že zápis List je sice jistě správně, ale v Javě 1.4 a - vám stejně neprojde. Takže takový zápis je v zásadě dobrý jenom k tomu, že se zbytečně zbavujete možnosti (byť třeba pro vás zbytečné) použít to i ve starším kódu. Opravte mě, mýlím-li se :-)
    Copak toho není dost?
    21.9.2006 09:20 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Hm, napsal jsem List<?> jenom ne s entitama a ábíčko se zase postavilo na hlavu. Chjo.
    Copak toho není dost?
    21.9.2006 09:22 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    To se Eclipse neumí chovat podle toho, jaký je nastavený -source?
    When your hammer is C++, everything begins to look like a thumb.
    21.9.2006 09:23 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Eclipse umí kdeco. Jenom já s tím neumím :-)
    Copak toho není dost?
    21.9.2006 09:49 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Java 1.4 a Java 5 jsou vlastně dva různé jazyky. Můžete si vybrat, zda budete psát pro 1.4, nebo pro 5 – kompilátor verze 5 vám umožní přeložit obojí. Navíc verze 5 je do značné míry zpětně kompatibilní s verzí 1.4, takže kód pro verzi 1.4 většinou jde přeložit i jako kód verze 5, ale to už je samozřejmě s varováním – protože používáte zastaralé konstrukce.
    22.9.2006 15:06 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Jenze nechapu, co je spatneho na tom pouzivat List v JDK 1.5? Co kdyz do nej strkam ruzne objekty? To je prece validni use case. Tyhle generics jsou prece jen nepovinnym rozsirenim, proc potom warningy?
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    22.9.2006 16:07 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    List samotný v Javě 5 vlastně zastaralý. Pokud dávám do listu opravdu různé objekty, má to být List<?> nebo List<? extends Object>. Pokud vím, že to budou vždy potomci třeba JComponent, pak List<? etends JComponent> atd.
    22.9.2006 17:18 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    A proto jsem se tak dlouho branil. Tahle nova syntaxe se mi hnusi. Kdyz je to obecny List, necht se to pise jako List. Tohle zacina vypadat stejne hnusne jako C++ a jeho sablony ;-)
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    22.9.2006 18:28 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    On obecný List je takový zvláštní objekt. Pokaždé, když na něj někde narazím, je to pro mne varování, že ten můj program asi není tak úplně objektový, jak by měl být. Takže obecný List je pro mne vždycky varování, a už proto tam napíšu List, aby bylo hned jasné, že tam míchám všechno možné. Teda většinou se spíš zamyslím, zda opravdu očekávám, že v tom Listu bude kde co :-)
    27.9.2006 09:31 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    No tak pravda je asi taková, že Eclipse má vlastní kompilátor ECJ, takže s ním má společného dost. Jinak slouhlasím :-D
    Heron avatar 20.9.2006 08:34 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi

    Java před tím nic podobného neměla, takže se výčty dělaly jako...

    Slušný programátor by nikdy nenapsal výčet takovým způsobem, jaký byl popsán v blogu. Používají se mnohem lepší způsoby, jak nahradit výčet pomocí tříd a přinášejí s sebou větší výhody, než původní "enum".

    20.9.2006 13:18 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Slušný programátor ... byl jsem přesvědčen, že ja Java primárně pro neslušné programátory. Tj. jazyk má bránit prasení co nejvíc.
    When your hammer is C++, everything begins to look like a thumb.
    Heron avatar 20.9.2006 16:16 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Nejsem si příliš jistý, jak jazyk (tedy hlavně syntaxe) zabrání prasení. Ono totiž vše lze napsat několika způsoby, některé jsou vhodné, jiné běžné a další nevhodné, jenže všechny syntakticky správné. To, že programátor zvyklý na procedurální kód napíše "enum" tak jak jsi napsal, je chyba toho programátora, že neumí OOP nikoliv Javy. Celkem mě zaráží, že zavedli strukturu "enum", doufám, že se nedočkáme také "struct" :-).
    20.9.2006 16:19 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Ale enum není struktura. Enum v Javě je objekt. Může být použit jako šablona, nebo se dá rozšířit.
    When your hammer is C++, everything begins to look like a thumb.
    20.9.2006 10:35 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Take pomalu zacinam pouzivat nove vlastnosti JDK 1.5, ale nejak unesen z nich nejsem. Napriklad foreach nad netypovanym listem znamena nutnost pretypovat si Object uvnitr smycky na to, co potrebuji (foreach (Object o : list) { MyObject my = (MyObject my)} - v deklaraci foreahc to nejde.

    Typovane listy ci mapy maji silene dlouhy podpis, zkuste si predavat jako parametr typovanou mapu a typovany list ;-). Metoda pak bude mit signature dlouhy stovky znaku :-(

    Nejlepsi je autoboxing, pouzivat konstruktory a intValue() atd me nikdy nebavilo a prislo mi uhozene.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    20.9.2006 10:48 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Já jsem extrémista: U takovýchhle komplexních jazyků buď důsledná typová inference a pořádný typový systém, nebo radši úplná dynamičnost a pozdní vazba. Signatury funkcí můžou mít pak i tisíce znaků, ale člověk se s tím nemusí psát… :-D
    20.9.2006 13:19 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Java 1.8 přinese typedef :-D

    Ad to přetypování ve foreach, to je pravda, nemůžeš to zkusit navrhnout do verze 6?
    When your hammer is C++, everything begins to look like a thumb.
    20.9.2006 14:55 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Jednodušší je nejprve přetypovat netypový list na typový:
    for(Type type: (List<Type>) netypovyList )
    
    A celý tenhle problém vzniká při míchání kódu <1.5 a 1.5 dohromady, až bude všude kód pro 1.5, budou všechny kolekce typové :-)

    Mně osobně se zase líbí generiky (typované kolekce apod.) a nemám rád autoboxing ;-)
    27.9.2006 09:34 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Jízda na Tigrovi, aneb káva s novými příchutěmi
    Hezké je, že generiky jsou zpětně kompatibilní. V .NETu to tak myslím není (jsou tam dva typy tříd - pro verzi 1.X a verzi 2.0).

    Pokud vím, tak Java 1.6/6.0 bude mít novinky spíše co se týká API a také přepracované AWT...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.