abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 22:33 | Nová verze

    Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.

    Ladislav Hagara | Komentářů: 0
    dnes 17:44 | Zajímavý článek

    Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.

    karkar | Komentářů: 0
    dnes 12:11 | Humor

    Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).

    Ladislav Hagara | Komentářů: 2
    dnes 10:44 | IT novinky

    Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.

    Ladislav Hagara | Komentářů: 22
    dnes 09:55 | IT novinky

    Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.

    Ladislav Hagara | Komentářů: 2
    dnes 09:33 | IT novinky

    Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.

    Ladislav Hagara | Komentářů: 0
    dnes 08:11 | Nová verze

    Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

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

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

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

    Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Pozvánky

    Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 2
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (22%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 492 hlasů
     Komentářů: 19, poslední dnes 11:32
    Rozcestník

    Javapolis2007: hlasováních o změnách v jazyce Java

    Na javapolis.com byly zveřejněny návrhy komunity pro novou generaci jazyka Java. Rovněž můžete navštívit výsledky hlasování, které jsou tematicky rozdělené na uzávěry (closures), různé změny v jazyce, používané aplikační servery a (nejen javovské) webové frameworky

    6.2.2008 09:13 | Michal Vyskočil | Zajímavý článek


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

    Komentáře

    Vložit další komentář

    6.2.2008 11:35 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    To je výborné – přes 80 % hlasujících ještě nezaznamenalo existenci enumů, takže požadují switch na String, ale hlavně že požadují closures, se kterými nebudou umět pracovat už vůbec… :-(
    6.2.2008 12:14 Miloslav Ponkrác | blog: miloslavponkrac
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    Proč by nebyl užitečný switch na string? Třeba pro konverzi řetězce ze vstupu na enum? :-) To je jako módní mezi javisty, že zesměšňují každého, kdo požaduje užitečné featury?
    6.2.2008 12:32 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    Proč by nebyl užitečný switch na string? Třeba pro konverzi řetězce ze vstupu na enum?
    Myslíte jako vždy ručně znovu implementovat metodu Enum.valueOf(String)? K čemu by to bylo dobré?
    To je jako módní mezi javisty, že zesměšňují každého, kdo požaduje užitečné featury?
    Nevidím nic užitečného na „featuře“, která s větším množstvím kódu umožňuje něco, co umožňuje už jiná stávající vlastnost (enumy), které jsou navíc kontrolovatelné už v době kompilace.
    6.2.2008 12:48 Miloslav Ponkrác | blog: miloslavponkrac
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    Podle matematické teorie jde naprosto jakýkoli algoritmus napsat pomocí podmíněného příkazu, přiřazení a volání funkce. Cokoli navíc je zbytečné - pokud Váš názor je konzistentní, tak Java v současné době je beznadějně přeplácaná, takže vypiště prosím petici na tvrdé seškrtání Javy.

    Umožnění switch na string umožňuje více, než ten váš enum. To, že nemáte dostatek fantazie beru. Sice nepřehledně se to dá emulovat - vytvořit třeba naprosto zbytečný enum s hodnotami všech stringů co potřebuji ve switchi, zkonvertovat string na enum, a pak šup s enum hodnotami do switche, ale považuji to za zbytečnou buzeraci - a přehlednost výsledného kódu bude podstatně nižší, než když v tom switchi budou stringy rovnou.
    6.2.2008 13:25 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    Umožnění switch na string umožňuje více, než ten váš enum. To, že nemáte dostatek fantazie beru. Sice nepřehledně se to dá emulovat - vytvořit třeba naprosto zbytečný enum s hodnotami všech stringů co potřebuji ve switchi, zkonvertovat string na enum, a pak šup s enum hodnotami do switche, ale považuji to za zbytečnou buzeraci - a přehlednost výsledného kódu bude podstatně nižší, než když v tom switchi budou stringy rovnou.
    Ty Stringy stejně musím někde vyjmenovat, ať ve switchi, nebo v enumu. Jenom ten enum dává programátorovi i překladači jasně najevo, že je to nějaká omezená množina řetězců, a kompilátor to pak také může kontrolovat (např. kontrolovat, že jste ve switchi ošetřil všechny možné hodnoty). Takže jediný případ, kdy by použití switche místo enumu mělo smysl, je potenciálně nekonečný počet možných vstupních řetězců. Jenomže nekonečný switch taky nejde udělat. Navíc pokud ten program bude mít alespoň nějakou kulturu, nebudete mít řetězce přímo v kódu, ale budete je mít jako konstanty – takže kód bude vypadat skoro stejně, jako s použitím enumu, ale nebude tam ta kontrola v době překladu. Jinak v kódu je rozdíl mezi enumem a switchem volání jediné metody, což těžko výrazně sníží přehlednost kódu.
    6.2.2008 14:27 Miloslav Ponkrác | blog: miloslavponkrac
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    A kompilátor ve switchi nemůže zkontrolovat to všechno co tu píšete? Kompilátor nemůže zkontrolovat, že jste ve switchi ošetřil všechny možné hodnoty? To jsou mi novinky. Znovu opakuji, že to, že Vaše fantazie je omezená na to, kde se dá použít string ve switch - není problém stringu ve switchi.

    Pokud kód bude mít kulturu, tak bude psán tak, aby byl co nejpřehlednější, nejudržovatelnější a nejčitelnější - což nutně neevokuje mít všechny literály jako konstanty - to tu zase tvrdíte něco co není pravda. To už taky můžete tvrdit, že vhodné programování je stylem:

    ... final int MUL_CONST = 2; ...

    public int mul_by_two(int operand) { return operand * MUL_CONST; }

    Jestli programujete výše uvedeným stylem, to jest všechny literály tlačíte na sílu jako konstanty, tak potěš pámbů. A je úplně jedno, jestli jde o čísla, stringy, nebo jiné typy - někdy je vhodné je definovat jako konstanty, a někdy je vhodnější je zapsat přímo do kódu.

    Rozdíl mezi enumem a switchem není volání jedné metody.
    6.2.2008 16:50 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    A kompilátor ve switchi nemůže zkontrolovat to všechno co tu píšete? Kompilátor nemůže zkontrolovat, že jste ve switchi ošetřil všechny možné hodnoty? To jsou mi novinky. Znovu opakuji, že to, že Vaše fantazie je omezená na to, kde se dá použít string ve switch - není problém stringu ve switchi.
    Pokud kompilátoru předem nedám seznam všech přípustných hodnot, nemůže zkontrolovat, že jsem pro každou přípustnou hodnotu napsal odpovídající větev case. Pokud by switch pro Stringy přinášel i tu možnost určit všechny přípustné hodnoty, dostanete enum. Tak proč ho vymýšlet podruhé?
    Pokud kód bude mít kulturu, tak bude psán tak, aby byl co nejpřehlednější, nejudržovatelnější a nejčitelnější - což nutně neevokuje mít všechny literály jako konstanty - to tu zase tvrdíte něco co není pravda.
    Hodnoty ve switchi nejsou jen tak nějaké hodnoty spadlé z nebe, ale je to několik hodnot z omezené množiny. Místo takových hodnot se typicky používají konstanty, protože je většinou používáte na více místech. Jenomže pro omezenou množinu hodnot už má Java vlastní datový typ – enum. A jsme zase zpátky na začátku.
    Rozdíl mezi enumem a switchem není volání jedné metody.
    Najděte víc jak jeden rozdíl:
    private static final String ONE = "ONE";
    private static final String TWO = "TWO";
    private static final String THREE = "THREE";
    
    switch (str) {
      case ONE: doOne(); break;
      case TWO: doTwo(); break;
      case THREE: doThree(); break;
    }
    
    private enum Numbers { ONE, TWO, THREE};
    switch (Numbers.valueOf(str)) {
      case ONE: doOne(); break;
      case TWO: doTwo(); break;
      case THREE: doThree(); break;
    }
    
    Já v tom z hlediska kódu vidím jediný rozdíl, volání metody Numbers.valueOf(String). Z hlediska významu tam vidím minimálně další dvě věci, obě ku prospechu enumů:
    private enum Numbers { ONE, TWO, THREE};
    switch (Numbers.valueOf(str)) {
      case ONE: doOne(); break;
      case TWO: doTwo(); break;
    }
    
    Kompilátor může dát varování, že je switch neúplný, a:
    private enum Numbers { ONE, TWO, THREE};
    switch (Numbers.valueOf(str)) {
      case ONE: doOne(); break;
      case TWO: doTwo(); break;
      case THREE: doThree(); break;
      case WINTER: doWinter(); break;
    }
    
    Tohle vám kompilátor s enumem ani nepřeloží. Se Stringem to v obou případech projde, a divit se budete až za běhu programu.
    Znovu opakuji, že to, že Vaše fantazie je omezená na to, kde se dá použít string ve switch - není problém stringu ve switchi.
    Mohl byste napsat nějaký konkrétní příklad? Podle mne 99,99 % užití Stringu ve switchi je případ, kdy mám předem známou množinu řetězců, které očekávám někde na vstupu, a potřebuju zjistit, která konkrétní hodnota na tom vstupu je. Přesně k tomuhle ale má Java enum, a není důvod zavádět další konstrukci (Java není Perl). Ta zbývající desetina promile jsou případy, kdy by se autor kódu měl přeci jen zamyslet, zda to nemá být enum… Napadá mne vlastně jediný případ, kdy nejde enum použít přímočaře, a to je nemožnost dědění enumů. A i v takovém případě je implementace s využitím enumu lepší, než switch se Stringy, které se vám náhle z ničeho nic zjeví v kódu.
    zoul avatar 6.2.2008 16:53 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    Obdivuhodná trpělivost.
    6.2.2008 17:05 qk_
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    Naprosto souhlasim. Ono obecne spousta lidi nepouziva enumy v jave, i kdyz to je hodne uzitecna vec.
    Pomaha to i v udrzovatelnosti kodu po rozsireni, kdy musite pridat nejakou funkci a tak pridate moznost do enumu a prekladac rekne, pokud je v nejakym switchy tato moznost opomenuta a tak se predejde dost chybam, ktere by se jinak spatne hledali.
    Jinak vas obdivuju tak dlouho nekoho presvedcovat o necem co je pomerne jasne a co kazdy rozumny programator vi. Jedine kdy by bylo switchovani podle stringu uzitecne je pres regexpy...ale to si myslim ze je zhruba tak slozite jako napsat metodu, ktera ten regexp prevede na hodnotu v enumu a navic zas tak casto se regexpy nepouzivaji.
    15.3.2008 16:17 KsR
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    celá tahle diskuze je ujetá -ve skutečnosti tady jeden druhému jen říká, kdo je větší "blbec". A přitom neumíte ani psát česky:) "Češtin můj kobil", co?
    Daniel Kvasnička ml. avatar 6.2.2008 13:59 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    6.2.2008 17:16 qk_
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    Tento zapisek pouze rika, ze by bylo dobry mit v enumu nejakou hodnotu, kdyz dany string neni v enumu misto hazeni vyjimky. Coz mi ale nepripada tak tezky udelat. pokud clovek chce tak si to celkem rychle a elegantne obali treba jako v tom clanku pomoci dalsi hodnoty enumu jako NONDEF a tridy, kde si odchyti tu vyjimku a vrati tu NONDEF hodnotu enumu.
    Ale mne pripada tedy reseni s vyjimkami podstatne lepsi. Napriklad v SAXu, kdyz jinou hodnotu nez definovanou (a nemam kontrolu pres xsd), tak zavolat nejakou masineriji na zpracovani a az na vrsku odchytavam ruzne exceptiony, ktere vyvola ta masinerie a znamenaji vetsinou nejakej fatal (napriklad spatna cesta k souboru, spatne hodnoty atd) a tak preskocim cely zpracovavani danyho elementu.
    Daniel Kvasnička ml. avatar 6.2.2008 22:42 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Javapolis2007: hlasováních o změnách v jazyce Java
    Ja jsem to sem dal jen proto, ze hned ze zacatku je ukazano jak se da enumem nahradit switch na stringy... Jak to ukazuje Filip Jirsak vyse. Switch na stringy je v podstate zbytecny.
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."

    Založit nové vláknoNahoru


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