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í
×
    včera 18:00 | IT novinky

    DuckDuckGo AI Chat umožňuje "pokecat si" s GPT-3.5 Turbo od OpenAI nebo Claude 1.2 Instant od Anthropic. Bez vytváření účtu. Všechny chaty jsou soukromé. DuckDuckGo je neukládá ani nepoužívá k trénování modelů umělé inteligence.

    Ladislav Hagara | Komentářů: 1
    včera 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 2
    včera 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    18.4. 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    18.4. 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    18.4. 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 13
    18.4. 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    18.4. 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 10
    18.4. 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    KDE Plasma 6
     (68%)
     (11%)
     (2%)
     (20%)
    Celkem 566 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Otevřená Java 2: OpenJDK, IcedTea a Java wars

    14. 12. 2010 | Michal Vyskočil | Různé | 4500×

    Projekt OpenJDK se poměrně rychle etabloval u většiny distribucí. Něktěří možná zaslechli zmínku o projektu IcedTea - je to, či není fork OpenJDK? A co jsou to Java wars?

    Obsah

    OpenJDK

    link

    V roce 2006 došlo ve světě opensource Javy k revoluci, společnost Sun Microsystems oznámila vznik projektu OpenJDK. Tento projekt postupně zveřejnil zdrojové kódy platformy Java SE (JRE, JDK a později i standardní knihovnu) pod licencí GNU GPL 2 s Classpath výjimkou – ta umožňuje, aby standardní knihovny (pod GPL) mohly být použity i pro neGPL kód. Zveřejněny byly zdrojové kódy připravovaného JDK7.

    V následujícím roce se do vývoje zapojila společnost Red Hat, byly postupně zveřejněny zbývající části platformy, došlo k založení Porters Group zabývající se portem OpenJDK na jiné platformy, zveřejnil se repositář systému pro správu verzí Mercurial, vydala se JDK6 pod názvem openJDK6 a založil se projekt IcedTea. Většina zmíněných projektů postupem času rovněž přešla z GNU Classpath na OpenJDK, protože je daleko kompletnější a podporuje JDK6 a připravovanou JDK7.

    Vztah OpenJDK a Oracle Java

    link

    OpenJDK vychází ze stejných zdrojových kódů jako Oracle JDK SE (OpenJDK6 je kompatibilní s JDK6), tudíž je s ní prakticky 100% kompatibilní. Odlišnosti nicméně existují – pro správu barev používá OpenJDK LittleCMS, kdežto Oracle Java proprietární technologii. Některé části jako zvukový systém byly přepsány. Rovněž technologie Java Web Start a Java applet nebyly nikdy uvolněny jako open source. To je mimochodem nejčastější případ, kdy si uživatelé všimnou, že nepoužívají proprietární JRE. Další rozdíly mohou být velice nečekané a záludné – libjvm.so musí obsahovat ladící symboly, protože na tom závisejí nástroje jako jmap. Distributoři obvykle tyto symboly z binárních symbolů odstraňují a přesunují do speciálních balíčků, což musí být u této knihovny explicitně zakázáno.

    IcedTea

    link

    Jak už bylo řečeno v úvodu, ne všechny části standardní knihovny byly od počátku k dispozici. Bylo tomu tak především proto, že Sun neměl autorská práva na všechny části JDK a nedohodl se s jejich vlastníky na uvolnění pod svobodnou licencí. Z toho důvodu byla zveřejněna i malá uzavřená část, aby byl výsledek 100% kompatibilní – samotné OpenJDK by takto nebylo většinou distribucí považováno za open source. Navíc jediné JDK schopné přeložit OpenJDK bylo to od Sunu.

    Proto vývojáři společnosti Red Hat založili projekt IcedTea, který odstraňoval závislost právě na těchto proprietárních částech. Části chybějící standardní knihovny pocházely z projektu GNU Classpath: nahrazení věcí jako správa barev open source variantami a projekt rovněž poskytl standardní cestu pro překlad OpenJDK přes autotools, která byla nezbytná mimo jiné pro podporu pro bootstraping projektu pomocí gcj. Poté, co Red Hat podepsal Sun Contributor Agreement, otevřela se tím cesta pro patche z projektu IcedTea do projektu OpenJDK, což pomohlo k rychlejšímu nahrazení zbývajících proprietárních částí. Projekt IcedTea nicméně existuje dodnes, protože poskytuje mnoho užitečných vlastností.

    Překlad pomocí autotools

    link

    Díky wrapperům nad existujícím Makefile je překlad OpenJDK pomocí IcedTea daleko flexibilnější. Navíc tento způsob usnadňuje aplikaci patchů IcedTea, zapínání různých vlastností a podobně.

    Java Web Start a Java plugin

    link

    Implementace Java Web Start a Java plugin – tyto technologie nejsou součástí Java SE a nebyly nikdy uvolněny. IcedTea tedy má vlastní implementaci, původně založenou na gcjwebplugin a od té doby několikrát přepsanou. Není bez zajímavosti, že právě IcedTea plugin přinesl nativní 64bit verzi dříve než Sun.

    Zero assembler a Shark JIT

    link

    Samotný HotSpot, jako nejdůležitější část JVM, je psaný ve směsici assembleru a C++. Takový kód se nedá jednoduše portovat na jiné platformy. V rámci projektu IcedTea byl vytvořen tzv. Zero assembler, který odstraňuje nutnost používat assembler a umožňuje přeložit OpenJDK na jiných než původně podporovaných architekturách. Shark JIT je potom LLVM Just in time compiler pro Zero, který řeší výkonovou stránku problému. Jak Zero assembler, tak i Shark byly postupně začleněny do JDK7 a 6.

    Mimochodem IcedTea podporuje překlad OpenJDK s jiným JVM, například CACAO.

    Patche

    link

    Značná část IcedTea se točí kolem dodatečných patchů – příkladem může být odstranění podpory pro Motif, podpora pro PulseAudio nebo systemtap. Další, už poněkud méně vzrušující část, pokud nejste distributor, jsou backporty oprav bezpečnostních a kritických chyb nacházející se v dané verzi OpenJDK.

    Válka (nejen) o svobodnou Javu

    link

    Jak bylo řečeno v úvodu, pojem Java je rovněž ochranná známka společnosti Oracle. Ta vyžaduje, aby se tento termín (respektive Java SE) vztahoval pouze na software, který projde přísným regresním testováním: Java Compatibility Test. Tato „maličkost“, tak nedůležitá pro běžné linuxové hackery, je životně důležitá, pokud hovoříme o enterprise nasazení. V dobách před OpenJDK existovala pouze read-only verze testů, jejichž licence nedávala právo je přeložit a spustit. Společnosti hodlající distribuovat Java (SE) implementaci si musely patřičné právo zakoupit.

    V roce 2007 požádala Apache Software Foundation společnost Sun o poskytnutí testů kompatibility pro Java SE 5, které jsou specifikací této platformy vyžadovány – každá implementace tvrdící, že je Java SE 5, musí těmito testy projít. Zakoupení licence by situaci nijak nevyřešilo, protože by se ASF dostala ke staré známé závislosti otevřeného software na uzavřeném. Reakce Sunu byla, že se společnost snaží především o uvolnění zdrojových kódů JDK pod GPL, tak i příslušných testů. Mezi členy JCP, které kritizovaly Sun za neuvolnění licenčních podmínek, byly mimo jiné společnosti IBM a Oracle.

    Zdrojové kódy JDK zveřejněny byly a pro JCK testy byla vydána doplňující licence, která umožňuje použití testů pro pro GPL implementace vycházející z OpenJDK. Tímto krokem Sun vyšachoval Apache Harmony z enterprise světa. V roce 2010 už pod taktovkou Oracle došlo k další ráně pro Apache Harmony. Společnost IBM, jakožto největší přispěvatel projektu, oznámila přesun svého zájmu od Apache Harmony k projektu OpenJDK. A důvod? Právě uzavřené TCK testy, které z Harmony činí v praxi nepoužitelnou implementaci.

    Pozornosti společnosti Oracle neušel ani Google se svým Dalvik VM a Java API. Přestože byl Google opatrný a všude prohlašoval, že Andorid/Dalvik není v žádném případě Java a že se jedná o clean-room implementaci, čelí nyní žalobě za porušení bezpočtu patentů, copyrightu a intelektuálního vlastnictví, které Oracle momentálně vlastní. Jedním z argumentů je například skutečnost, že Eric Schmidt se přesunul do společnosti Google ze společnosti Sun, kde vedl Java tým. Není bez zajímavosti, že jedním z argumentů společnosti Google je, že použili zdrojové kódy projektu Harmony právě proto, že ASF nedokáže získat TCK testy, tudíž se o Javu nejedná.

    Závěrem

    link

    OpenJDK splňuje všechny náležitosti otevřeného projektu: k dispozici jsou zdrojové kódy a dokonce i verzovací systém. Podepsání contributor agreement vyžaduje mimo Oracle i takové FSF, anebo Cannonical. Potud je to otevřený (dokonce svobodný) software. Můžete psát patche, portovat na nejrůznější platformy, studovat kód a podobně.

    Na straně druhé Sun i Oracle poměrně aktivně vystupují proti ostatním svobodným implementacím, protože jejich největší zbraně – TCK a označení Java – jsou schovány za hradbou duševního vlastnictví, patentů a copyrightů.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    14.12.2010 09:54 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Eeeeh, k čemu to? Java zůstane stejně blbej jazyk ať už jsou ty tanečky vokolo zavřený nebo votevřený.. Ad "Java wars": kdo teda vyhrává?
    Táto, ty de byl? V práci, já debil.
    xkucf03 avatar 14.12.2010 10:48 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    „blbej jazyk“? Kolik jsi toho v něm napsal?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Jardík avatar 14.12.2010 11:27 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Já jsem v něm pár věcí napsal. Není to úplně nejblbější jazyk, ale dobrý mi taky nepřijde. Mně by se java líbila, pokud by konečně dostala neznaménkové typy (vždyť je to sakra nutnost, jak se bez toho může někdo obejít!), bylo by zaručeno, že long bude mít atomický přístup, pro indexaci polí by se nepoužíval int, měla něco jako ukazatel na funkci, do kolekcí šli ukládat obyčejný inty, longy, ...
    Věřím v jednoho Boha.
    14.12.2010 12:02 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Jenom pár drobností.
    bylo by zaručeno, že long bude mít atomický přístup
    JMM. long deklarovaný volatile (a taky double) je atomický. Ale pokud přemýšlíš, že bys to začal dělat pokaždé, tak upozorňuju, že to nechceš.
    pro indexaci polí by se nepoužíval int
    To jako aby šel namapovat soubor do pole a nemusela se na to používat speciální třída? Ale je fakt, že pořádná "numerical tower" chybí.
    měla něco jako ukazatel na funkci
    MethodHandle od Javy 7 a uzávěry od Javy 8.
    Není to úplně nejblbější jazyk
    Já mám v Javě pár let a pár set tisíc řádků odprogramováno a řekl bych, že je to dost blbý jazyk :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Jardík avatar 14.12.2010 12:54 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    long deklarovaný volatile (a taky double) je atomický
    Ono je volatile v javě, to jsem nevěděl. Dík za tip.
    Ale pokud přemýšlíš, že bys to začal dělat pokaždé, tak upozorňuju, že to nechceš.
    Kdybych to nepotřeboval ve vícevláknových aplikací, tak by mi atomičnost byla na 2 věci (když nebudu počítat posixový signály, které asi java nevede) :-)
    Věřím v jednoho Boha.
    14.12.2010 13:18 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    No jo, ale on modifikátor volatile dělá taky to, že každé čtení a každý zápis znamená bariéru, což bude na tvůj vkus strašlivě zpomalovat :-) Poohlídni se v java.util.concurrent, dost možná tam najdeš něco, co se snažíš naprogramovat sám. Pokud ti opravdu jde čistě o atomický long, bez atomického CAS apod., tak volatile long je trochu lepší volba než AtomicLong, ale tím to tak končí.

    Mimochodem, signály se dají použít taky, sun.misc.Signal a sun.misc.SignalHandler.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    15.12.2010 08:54 Stan Svec
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Jestli jsi neznal klíčové slovo volatile, což patří k těm nejzákladnějším vědomostem potřebných k vývoji paralelních aplikací v Javě, tak být tebou bych se do tvorby vícevláknových aplikací bez potřebné studie (jako třeba Java Concurrency in Practice) raději moc nepouštěl. Navíc jak už tu někdo uvedl, podle tvých požadavků to vypadá, že se snažíš používat Javu na něco, kde by se hodil úplně jiný jazyk. Já píšu v Javě především podnikové aplikace a to, co's vypsal, je asi to poslední, co by mi v Javě chybělo.
    15.12.2010 09:07 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Java Concurrency in Practice je voňavá a vymazlená knížka, must read pro všechny javisty.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    stativ avatar 14.12.2010 16:15 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Já mám v Javě pár let a pár set tisíc řádků odprogramováno a řekl bych, že je to dost blbý jazyk :-)
    Řekl bych, že to platí skoro o každém jazyku. Ze začátku se mi zdálo C++ super, teď už ho považuji za blbý jazyk (přesto můj nejoblíbenější). To samé o Javě. Teď zrovna jsem ve stavu, kdy se mi zdá jako docela slušný jazyk C#, ale předpokládám, že ve chvíli, kdy v něm něco víc napíšu tak se taky přesune do kategorie blbý jazyk.
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    Heron avatar 14.12.2010 21:19 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    A je to o jazyku (tedy syntaxe, výrazové prostředky) nebo o těch věcech okolo (kompiler, standardní knihovna, ...).

    Já már rád Javu pro to okolo (standardní knihovna, jdbc, skvělá dokumentace, moduly internetu lze najít snad všechno), ale čím dál tím méně se mi líbí jazyk jako takový (nemám rád, když se zavádí spec syntaxe pro věci, které lze udělat už s dosud platnými konstrukcemi jazyka).

    Jako jazyk se mi líbí čisté C, ale psaní v něm je na rozdíl o Javy poněkud složitější.
    14.12.2010 22:39 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Všechny případné účastníky diskuse neobeznámené do detailů s ekosystémem okolo Javy bych rád upozornil, že JDBC je bezkonkurenčně jedna z nejhorších existujících knihoven v celém softwarovém světě, a člověk, který ji prezentuje jako jednu z dobrých věcí na Javě, by měl být inherentně nedůvěryhodný.

    Mimochodem, až takovíhle lidi začnou používat ARM bloky (jedna z novinek Javy 7), mám pro ně jednu dobrou zprávu: Konečně uzavíráte svoje ResultSety, Statementy a Connectiony správně. Nemusí pršet, stačí když kape.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    15.12.2010 15:14 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    JDBC je v podstatě "céčková" knihovna (asi je zřejmé co bylo vzorem), takže podle toho vypadá. Na druhou stranu, když člověk vychytá všechny záludnosti, provede požadované rituály a přinese předepsané obětiny, tak svou práci odvede velmi dobře, a dokonce i výkon lze poladit. No prostě klasická C knihovna.
    stativ avatar 15.12.2010 08:05 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Myslel jsem jazyk jako takový. Ve chvíli, kdy ho dokonale zvládneš tak si uvědomíš kdy jsou jeho vyjadřovací schopnosti nedostačující.
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    14.12.2010 18:55 jehovista
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Ty mi pripadas jako traktorista, ktery nadava pod clankem o skodovce, ze se s ni blbe ora pole.
    Jiří Svoboda avatar 15.12.2010 08:29 Jiří Svoboda | skóre: 37 | blog: cat /dev/mind | Prostějov
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Jojo, neznaménkové typy. Nebo kdyby byl aspoň typ pro byte. Tohle mě taky neskutečně se*e...

    Zlatý Céčkový char...
    15.12.2010 10:26 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Který ovšem může být větší než jeden byte.
    15.12.2010 11:58 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Pořád jsem nepochopil, k čemu by v Javě neznaménkové typy byly. Jaký program v Javě potřebuje s daty pracovat jako s číslem a zároveň ho zajímají nějaké bajty?
    15.12.2010 13:26 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Jakýkoliv, který potřebuje načítat data v nějakém binárním formátu, nejlíp vytvořená programem v jiném jazyce? Jde to samozřejmě obejít, ale je to opruz.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    15.12.2010 14:54 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Takový program načte 8 bitů do proměnné typu byte, 32 bitů do proměnné typu int – pořád tam nevidím ten problém.
    15.12.2010 15:17 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    byte je znaménkový. Na první pohled to vypadá jako drobnost, ale už třeba pokud o porovnání hodnot znamená tvrdý náraz (130 < 100).

    15.12.2010 16:18 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Jenže to porovnání a převod do jiné soustavy jsou právě ty jediné případy, kdy na znaménkovosti záleží. A zároveň je to operace, se kterou se při čtení nějakého binárního formátu setkáte jen velmi zřídka. Takže mám pořád pocit, že absence neznaménkových typů v Javě se hodí akorát tak do teoretických diskusí, a ve skutečnosti při programování s tím ještě nikdy nikdo žádný problém neměl.
    15.12.2010 23:35 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Takže mám pořád pocit, že absence neznaménkových typů v Javě se hodí akorát tak do teoretických diskusí, a ve skutečnosti při programování s tím ještě nikdy nikdo žádný problém neměl.
    Pocit chápu, ale v realitě je to zcela naopak: v teoretických diskusí je to úplně jedno a neznaménkové typy můžeme klidně zahodit jako zbytečné, v realitě se pak problémy (ve formě bugů) objeví překvapivě často.
    16.12.2010 09:05 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Pocit chápu, ale v realitě je to zcela naopak: v teoretických diskusí je to úplně jedno a neznaménkové typy můžeme klidně zahodit jako zbytečné, v realitě se pak problémy (ve formě bugů) objeví překvapivě často.
    Zvláštní je, že to „překvapivě často“ se zatím v několika diskusích nepřetavilo do nějakého konkrétního příkladu „tady jsem s tím měl problém“. Místo toho pokaždé někdo vymýšlí, kde by to asi mohlo problém způsobit.
    Luboš Doležel (Doli) avatar 16.12.2010 11:24 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Třeba já jsem s tím problém měl, i když měl jednoduché řešení. Potřeboval jsem ošetřit situaci, kdy se hodnota prvního znaku v ByteBufferu rovnala něčemu. Než jsem přišel na to, proč mi to triviální porovnání nefunguje... Stačilo přepsat hodnotu, proti které se porovnávalo, na záporné číslo (a u byte mi to přijde opravdu na hlavu).

    Tedy nezpůsobuje to neřešitelné problémy, ale očekával bych, že to člověku, kdo se s tím moc nesetkal, problémy udělá.
    16.12.2010 11:50 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    To je ten převod mezi číselnými soustavami – a problém je v tom, že někde (třeba v dokumentaci) jsou ty bity interpretovány (bez explicitního upozornění) jako bezznaménkové číslo a java je interpretuje znaménkově. Nazval bych to spíš nepříjemností, a u někoho, kdo potřebuje takhle zpracovávat binární data, předpokládám, že si s tím poradí.
    15.12.2010 22:04 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    nejlepsi je nacist byte a pak to hned prevest na int. beztak to VM na ten int interne prevede.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    15.12.2010 22:30 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Já vím, ale je to opruz. Nebo možná až zápis se dá kvalifikovat jako opruz, nevím, už jsem to naštěstí dlouho nedělal :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    15.12.2010 15:29 Pavel Tisnovsky
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    "pro indexaci polí by se nepoužíval int"

    Myslis jako, ze int ma na indexaci poli maly rozsah? To mozna v nekterych pripadech muze mit, ale na 32bitovych platformach, kde Java vznikla, stejne nemuze heap presahnout 4 GB (ani pro pouziti PAE a dalsich obezlicek), takze to nebylo problemem a rekl bych, ze ani dnes (64bitu) to v realnych pripadech neprekrocis. Nebo je takova realna aplikace, co potrebuje vetsi _jednorozmerna_ pole?
    15.12.2010 21:56 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    uvedu to do kontextu. jardik potrebuje indexovat pres vetsi typ, protoze potrebuje do pameti namapovat 4GB soubor a v jave mu to proto nejde. a jsou i jedinci, kteri si mysli, ze je potreba namapovat do pameti rovnou 80GB dat.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    16.12.2010 00:30 Pavel Tisnovsky
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Aha no chapu, ale popravde jsem se s takovym pozadavkem jeste NIKDY nesetkal, protoze ten soubor prece byva nejak strukturovany ne?

    Takze pokud je to textak, tak pole ci lepe seznam stringu to resi (i kdyz - skutecne je potreba to cely napraskat do RAM?), pokud neco jako databazova tabulka, tak pole/seznam objektu (radku databaze - recordu) a pokud nejakej binarni bazmek (treba me ted napadlo 3ds nebo stare dobre FLI :-), tak pole/seznam/strom/whatever jednotlivych bloku.

    Ale pozadavek na to mit silene velke jednorozmerne pole bajtu, to je IMHO na hodne nizke urovni a asi bych do toho nesel ani v cecku ;-) spis je to na hlubsi analyzu reseneho problemu.

    btw: uz jsem videl par skriptu (v Perlu), ktere resily nejakou obdobu vyhledavani/grepovani v logu takovym zpusobem, ze nejprve nacetly celej soubor do pameti a potom iterovaly pres jednotlive radky. No panu programatorovi to na testovacich nekolikakilobajtovych souborech zajiste fungovalo skvele, v praxi s realnymi logy (treba z mesicniho provozu systemu, nekolik zalogovanych operaci za sekunud) to bylo jaxi horsi :)
    16.12.2010 01:09 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Aha no chapu, ale popravde jsem se s takovym pozadavkem jeste NIKDY nesetkal, protoze ten soubor prece byva nejak strukturovany ne?
    ja to chapu a poprve jsem se s necim takovym setkal az tady. osobne, kdybych mel pracovat s necim tak velkym, tak si to stejne mapuju do pameti po castech, vzdy podle toho s cim pracuju nebo, podle toho, co dava logicky smysl. jeste by me teda zajimalo, jak velkou rezii bude mit sprava tak velkych mapovanych useku z pohledu jadra.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    18.12.2010 14:29 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Trošku pozdě si pročítám tuto diskuzi (holt to tak někdy dělám)
    Já jsem na tento problém narazil, ne sice v Jave, ale obecně ve widlých, kde in na 64bit platfomrě je long 32bitový (model LLP64).
    Aplikace pracující s mrakem bodů či polygonovou sítí, potřebují mít všechno v paměti a někdy je toho opravdu hodně.
    Na patřičném hardware lze alokovat i více než 24GB (3×float XYZ * 2^31). A protože platforma dovoluje alokovat tyto bloky ale pro indexaci se „někde“ použil long, tak to vede k nepříjemnostem nemluvím již o tom, že vytvoříte jen index 8GB (int * 2^31).
    Stejně tak komerční software na strojích s opravdu hodně paměti (fčul to bylo 96GB) narazí na tyto limity, protože si pro indexace používá 32bit integer a vývojáři si prostě říkají „tolik paměti jenom na indexi, kde by se to vzalo“
    Samozřejmě u vývoje takové aplikace, je někdy složité se správně rozhodnou, někdy se pro indexaci použije 32integer, protože ukazatel má 64bit a to by ten index už bral 2× více paměti, takže Vám nezbude než se nějak rozhodnout, nebo nechat rozhodnutí na uživateli - něco ve smyslu použij small or huge model. :)
    Ony nahlížet nějak strukturovaně na ohromný počet nestrukturovaných dat rychle, lze jedině tak že je opravdu máte v paměti, bo z toho disku to fakt nejde, proto se to pak dělá na strojích z nesmyslnou pamětí (v kontaktu jsem byl zatím jen se zmiňovanými 96GB RAM, nebo respektive stále můžu být, ale s čím přicházím do styku já, je na platformě Win, a díky zmiňovaným problémům cokoliv na cca. 16GB je zbytečné, kolegové pracující na linuxu říkají, „na 48GB“ už to nezpracujeme - je to málo, chtělo byt to i více než těch 96GB, ale zatím není možné více poskládat na jednom PC x86-64 /i tak tam musí být dva procesory, bo na jednom je max 48GB/).
    Argument udělat pole indexů nebo to rozdělit na více bloků je někdy bezva, ale potom v algoritmech musíte mít další režije s tímto rozdělením, někdy dokonce žádoucí (snazší multithreadové zpracování), ale někdy nežádoucí.
    Tím celým jsem jen chtěl naznačit, že zmiňovaní limita může být i v praxi opravdu limitou.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    vulgární Nick avatar 18.12.2010 20:06 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    uz jsem videl par skriptu (v Perlu), ktere resily nejakou obdobu vyhledavani/grepovani v logu takovym zpusobem, ze nejprve nacetly celej soubor do pameti a potom iterovaly pres jednotlive radky
    Ale to nemusí být nutně špatné řešení. Např. ve chvíli, kdy je načítání souboru náročné (jako log na vzdáleném počítači), kdy je soubor použit několikrát (jako několik hledání) atd.

    Záleží, co člověk potřebuje, záleží, co člověk má za počítač atd.
    JSEM PRASE A HOVADO.
    multi avatar 14.12.2010 10:34 multi | skóre: 38 | blog: JaNejsemOdsut
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Mezi členy JCP, které kritizovaly Sun za neuvolnění licenčních podmínek, byly mimo jiné společnosti IBM a Oracle.
    Zmenila se situace, tak se zmenil postoj firmy (zde Oracl) ... nic prekvapujiciho :D , ale

    Jak tak ctu, co je v pozadi javy a hl. od te doby co mam ARM a na nem zkusenosti s javou a vykonem napr pythonu, tak si rikam, ze je na case se zase kounout na jazyk Vala.
    15.12.2010 08:40 Stan Svec
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Díky za dobrý článek. Jenom nevím, jestli v tom mám úplně jasno. To, že OpenJDK je pod GPL licencí znamená, že kdokoliv může kód OpenJDK libovolně upravovat a následně dále pod GPL licenci šířit třeba pod jiným jménem? Pokud by taková implementace splnila TCK, tak by se dokonce mohla prohlašovat za Javu? Nebo to chápu blbě?
    vulgární Nick avatar 15.12.2010 15:23 vulgární Nick | blog: Takže já jsem jedinej, kdo čůrá do vany?
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Ano, OpenJDK je možné upravovat a šířit v souladu s jeho licencí.

    TCK (JCK) je jednoznačnou podmínkou, ale osobně si myslím, že nebude jedinou, viděl bych tam i nějakou administrativní podmínku. Ale nevím, nezkoumal jsem to.
    JSEM PRASE A HOVADO.
    15.12.2010 12:48 Trained.Monkey | skóre: 12 | blog: monkey
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    OpenJDK nelze svobodne upravovat a sirit pod GPL licenci. Po uprave musi projit TCK testy, a ty maji dost restriktivni licenci. OpenJKD nejde napriklad pouzit v mobilni platforme (konkurence J2ME) nebo v embedded zarizenich.

    Viz http://skife.org/java/jcp/2010/12/07/the-tck-trap.html
    15.12.2010 13:03 Stan Svec
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Super odkaz. Díky.
    15.12.2010 13:28 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Ten článek je nádherně napsaný, paráda! Díky za link.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 15.12.2010 14:11 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    jj, akorát tam zapomíná na třetí možnost: žít ve svobodnější zemi (tzn. kde neplatí SW patenty).
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    15.12.2010 22:51 JoHnY2
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    To je ti platny jen pokud vis, ze nikdy nebudes muset svoje dila prodavat i v zemi, ktera tak svobodna neni.
    15.12.2010 14:53 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Ten článek svoje tvrzení nijak nedokazuje, takže pro mě je to spíš snůška osobních, nijak nepodložených a nepravdivých názorů.

    Například z "OpenJDK community TCK license agreement" nijak neplyne, že by bylo spuštění testů nezbytné, nebo dokonce dávalo právo redistribuovat IP Oracle. A na openjdk.java.net/legal/ jsem nenašel nic, co by jeho tvrzení podporovalo. V zásadě jediné, na co jsou JCK testy skutečně nezbytné je mít možnost tvrdit, že distribuuje Java 6 SE platform, nebo tak něco.

    Tvrdit, že GPLv2 nemá žádnou patentovou ochranu může jenom někdo, kdo tu licenci asi nikdy nečetl. Sekce 7 GPLv2+CE říká jasně - pokud nedokážete zajistit, aby uživatelé vašeho kódu měli možnost používat patenty v něm obsažené, pak jediným způsobem jak dodržet GPL je ukončení distribuce programu. A protože Oracle je ten, který GPLv2 kód primárně distribuuje, je to v první řadě on, který musí zajistit práva pro uživatele. Nebo přestat s projektem OpenJDK.

    Ta část s mobilními telefony je potom už tak moc mimo mísu, že nemám sílu na ni reagovat.
    When your hammer is C++, everything begins to look like a thumb.
    15.12.2010 17:15 Stan Svec
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Tak teď nevím no. Ale třeba tady Apache ten článek potvrzuje. Navíc, kdyby s těmi patenty a omezením pro mobilní zařízení nebyl problém, tak proč pak Google pro Android nezvolil bezpečněji OpenJDK místo Harmony?
    16.12.2010 09:44 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Tak teď nevím no. Ale třeba tady Apache ten článek potvrzuje.
    V čem konkrétně? Například odkazovat se na licenci binárního JDK je v kontextu celého článku nesmysl. Bez splnění TCK testů nemůžeš říkat svojí implementaci Java (SE Platform). A používáním alternativních implementací se vystavuješ riziku žaloby Oracle za používání svého IP, jako se to stalo společnosti Google.
    Navíc, kdyby s těmi patenty a omezením pro mobilní zařízení nebyl problém, tak proč pak Google pro Android nezvolil bezpečněji OpenJDK místo Harmony?
    Netuším, proč Google zvolil Harmony a ne OpenJDK. Pravděpodobně proto, že je pod méně restriktivní licencí a nevyžaduje podepsání Copyright Assigment, jako OpenJDK.

    Nicméně technicky tam žádné problémy nejsou, protože ani Harmony nebyl nikdy zamýšlen jako implementace J2ME, ale Java SE. Proto jsou veškeré stížnosti na TCK a mobilní telefony nesmysl, protože k tomu ty testy nikdy nebyly určeny.

    Jádrem celého sporu Oracle versus Google je podle mě to, že Oracle chce fakticky zabít Apache Harmony a i budoucí alternativní implementace svojí platformy a ponechat OpenJDK, jako jedinou možnost.
    When your hammer is C++, everything begins to look like a thumb.
    xvasek avatar 16.12.2010 10:13 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Já zase nechápu, jak projití TCK ovlivní, že výsledná distribuce bude patentově "čistá" a neabsolvování TCK a následná distribuce pod jiným jménem bude patentově "nečistá". To někde říká Oracle?
    15.12.2010 20:48 Trained.Monkey | skóre: 12 | blog: monkey
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Ale Oracle ti pouziti patentu dokaze zajistit, proste mu zaplatis za licenci... :-)
    16.12.2010 09:47 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Viz bod 7 GPLv2 - je to včetně požadavku na "royalty-free redistribution" včetně práva na používání patentů.
    When your hammer is C++, everything begins to look like a thumb.
    15.12.2010 13:21 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Hodnocení: 100 %
    15.12.2010 14:56 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Otevřená Java 2: OpenJDK, IcedTea a Java wars
    Doplněk k Java wars:

    Apache Software Foundation rezignovalo na místo ve výkonné radě JCP - tedy organizace, která se podílí na tvorbě nových vlastností této platformy.
    When your hammer is C++, everything begins to look like a thumb.

    Založit nové vláknoNahoru

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