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 05:22 | IT novinky

    Zařízení Steam Deck OLED bylo znovu naskladněno, ale vlivem rostoucích cen pamětí a úložišť má novou, vyšší cenovku. Steam Deck OLED 512 GB stojí nově 779 EUR (stál 569 EUR) a Steam Deck OLED 1 TB stojí 919 EUR (stál 679 EUR). Samotné zařízení se nijak nezměnilo a nové ceny tedy pouze odráží aktuální náklady na komponenty a další globální logistické výzvy, se kterými se potýká celá branže.

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

    Český telekomunikační úřad zahajuje novou etapu využívání vysokofrekvenčního rádiového spektra v pásmu 26 GHz. Toto pásmo bude od 1. 7. 2026 otevřeno pro provoz moderních bezdrátových sítí, zejména sítí páté generace (5G), pevných bezdrátových přístupových sítí (FWA) a lokálních či průmyslových sítí určených například pro výrobní areály, logistická centra nebo technologické kampusy. Současně s otevřením pásma 26 GHz přistoupil ČTÚ ke zpřístupnění informací o využívání rádiových kmitočtů v tomto pásmu.

    Ladislav Hagara | Komentářů: 2
    včera 22:11 | IT novinky

    Logitech představil myš Signature Comfort Plus M850 L s polstrovanou opěrkou dlaně pro větší pohodlí a sadu s touto myší a klávesnicí s integrovanou opěrkou dlaní Signature Comfort Plus Combo MK880.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | IT novinky

    Gaël Duval se rozepsal o novinkách a plánech Murena a /e/OS. Počet uživatelů telefonů Murena a mobilního operačního systému /e/OS bez aplikací a služeb od Googlu se blíží 100 000. Ambicí je, aby se /e/OS stal třetí mobilní platformou v Evropě i na světě, s potenciálem dostat se i na PC. Blíží se vydání nové verze 4 s funkcemi zálohování a obnova, import e-mailů z Gmailu a rozpoznávání hlasu. Murena Workspace přinese videohovory, elektronický podpis a správu zařízení (MDM).

    Ladislav Hagara | Komentářů: 4
    včera 15:22 | Komunita

    Dnes a zítra probíhá Ubuntu Summit 26.04. Na programu je řada zajímavých přednášek. Sledovat je lze na YouTube. Úvodní slovo měli Mark Shuttleworth a Jon Seager.

    Ladislav Hagara | Komentářů: 1
    včera 05:00 | Nová verze

    Lazygit byl vydán ve verzi 0.62.0. Jedná se o TUI (Text User Interface) nadstavbu nad gitem.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Zajímavý článek

    Jiří Eischmann se v příspěvku na svém blogu o rozepsal o tom, kam se vyhledávání v jeho očích posledních 10 let posunulo, jaké má zkušenosti s AI vyhledáváním, proč na něm nechce záviset a jaké vyhledávací služby ho v poslední době zaujaly.

    Ladislav Hagara | Komentářů: 2
    včera 03:33 | Nová verze

    Wayland kompozitor Labwc byl vydán ve verzi 0.20.0. Labwc je inspirován správcem oken Openbox. Postavený je na wlroots.

    Ladislav Hagara | Komentářů: 2
    26.5. 17:00 | Nová verze

    AlmaLinux OS byl vydán ve verzích 9.8 s kódovým jménem Olive Jaguar a 10.2 s kódovým jménem Lavender Lion. Podrobnosti v poznámkách k vydání (9.8 a 10.2). Opraveny byly zranitelnosti Copy Fail (CVE-2026-31431), Dirty FRAG, Fragnesia (CVE-2026-46300), nginx Rift (CVE-2026-42945) a SSH Keysign Pwn (CVE-2026-46333).

    Ladislav Hagara | Komentářů: 0
    26.5. 15:22 | IT novinky

    Seznam.cz vykázal za rok 2025 tržby v celkové hodnotě 6,454 miliardy korun. Oproti roku 2024 nárůst o 3,68 %. Zisk před zdaněním oproti předcházejícímu roku poklesl, a to o 11,21 % na 1,330 miliardy korun. Vlastní velké jazykové modely SeLLMa najdou dnes uživatelé téměř na všech seznamáckých službách. Na všechny obsahové služby byla zavedena technologie text-to-speech, díky níž si mohou uživatelé přehrát články v audio verzi namluvené

    … více »
    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (12%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (7%)
     (3%)
     (16%)
     (25%)
    Celkem 1734 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Groovy I.

    4.4.2010 01:45 | Přečteno: 2437× | Výběrový blog | poslední úprava: 4.4.2010 21:18

    Lehký úvod do Groovy, díl první - úvod do úvodu.

    Intro: Doba je zlá. I práce v JZD u krav už není moc jistá. I řekl jsem si jednoho dne, že je třeba se naučiti se i něčemu jinému než jen kydat hnůj. V jedné zdejší diskuzi jsem se onehdá dočetl, že dneska programuje každý dement. Vytušil jsem příležitost a mé nejasné pocity, že bych se měl pokusit více využít svůj nevalný intelekt, začaly dostávat znatelnější kontury: rozhodl jsem se, že se stanu programátorem. Elitářské kecy o tom, že programátorem se člověk nestává, nýbrž se jím rodí, jsem hodil za hlavu a pln odhodlání zasedl ke kompjútru. Rozechvěn nad nově nabytými poznatky jsem se rozhodl, že se o ně s vámí zde budu dělit, alepoň co mé síly a čas dovolí. Nebojte, nebudu vás unavovat, jak již jistě mnozí z vás vytušili z toho, že jsem zasedl ke kompjúru, nudnými definicemi, bezduchými lemmaty a větami a vyumělkovanými důkazy z diskrétní matematiky, nelineárního programování a podobných, od reality a praxe odtržených, věd. Programováním pochopitelně myslím to, co se tím v dnešní době běžně míní: zapisování kódu. Ač jsem si pod zapisováním kódu představoval činnost kterou zvládne opravdu každý (gramotný) dement, brzy narazila kosa na kámen a zjistil jsem, že to není až tak jednoduché jak to vypadá a jak mnozí tvrdí. Nevycouval jsem z boje, ale pro začátek si zvolil dosažitelnější cíl: zkusím se stát pro začátek alepoň programátorem prasičem. Zde musím přiznat, že mě na tuto myšlenku částečně přivedl Ladicek a jeho blog na téma Tajemství kvalitního prasení. No, vylévání srdíčka již ale bylo dost. Jelikož se domnívám, že aby byl člověk kvalitní progamátor-prase, musí prasit nejen na straně databáze, ale i kódu v samotném, začal jsem studovat Groovy... (Pozn. 1: Ano, vím, že prasit jde v kažném jazyce, ale v Groovy to IMHO jde o něco snadněji. Pozn. 2: Ano, PHP jsem zkoušel, ale to je zatím asi nad moje chápání).

    Groovy je objektově orinetovaný skriptovací jazyk pro platformu Java. Hlavním cílem Groovy je zjednodušit vývoj a zvýšit efektivitu, aniž by programátora připravil o výhody které nabízí Java. Na rozdíl od např. Jythonu nebo JRuby Groovy není implementace daného skriptovacího jazyka v Javě, ale je míněn jako rozšíření Javy (ve skutečnosti není úplně pravda, že Groovy je rozšířením Javy, viz níže). Nicméně těmito skriptovacími jazyky se do značné míry inspiroval. Jak praví [2]: "Groovy is how Java should looks like at the end of the day" :-) Byl iniciován i proces (JCP) začlenění Groovy do Java platformy, příslušné JSR (JSR-241) je však neaktivní. Což ale neznamená, že se zastavil i vývoj samotného Groovy. Nejnovější stable release (1.7.1) vyšel vcelku nedávno - 19.2.2010.

    Groovy je jazyk silně typovaný, podporující duck-typing, tj. typování je dynamické. Jazyk obsahuje closures, umožňuje přetěžování operátorů, vkládát do řetězců výrazy, které se vyhodnotí, automaticky generuje gettery a settery a další zajímavé věci. Kód lze skompilovat do javovského bytekódu, takže kód napsaný v Groovy lze jednoduše integrovat do kódu napsaného v Javě (a pochopitelně to platí i naopak). Vyvíjen je pod Apache licencí.

    Máme několik možností, jak spustit kód napsaný v Groovy: první je skript uložený v souboru, opatřený #!/usr/bin/evn groovy. Po spuštění se kód skompiluje (on-the-fly) a spustí. Toto je asi nejběžnější použití pro menší jednoúčelové skripty. Pomocí groovyc můžeme kód skopilovat do javovského bytekódu. Toto typicky využijeme pro rozsáhlejší projekty nebo části, které budeme chtít integrovat do nějaké větší aplikace napsané v Javě. Skompilovaný nebo i neskompilovany kód lze spustit z příkazové řádky pomocí groovy. Další možností je Groovy konzole, a to buď jako jednoduché GUI, kde lze psát a spouštět Groovy kód (groovyConsole) nebo klasická konsole (groovysh). Zde je ale třeba si dát pozor na několik odlišností jak je Groovy kód vykonáván ve srovnání s kompilovaným kódem (v dalším budu předpokládat, že je kód kompilován a na případné odlišnosti od Groovy konzole nebudu upožorňovat). Pro otestování krátkého kousku kódu můžete případně v teminálu použít groovy -e "váš kus kódu". Patně poslední možností jak spustit Groovy kód je sputit jej jako servlet.

    V tomto úvodu se zaměřím na základní odlišnosti od Javy (zajímavější věci jako např. metaprogramování snad někdy příště). Groovy má stejnou syntaxi jako Java, až na několik vyjímek - např. nepodporuje vnitřní třídy (proto nelze říct, že Groovy je rozšířením Javy) - toto není od verze 1.7 pravda, díky za upozornění Ladickovi. Toto je IMHO asi největší odlišnost od Javy. Jinak javovský kód pravděpodobně skompilujete bez problémů i v Groovy. Jak již bylo předesláno, Groovy je sice silně typovaný jazyk, ale typování je dynamické (duck typing), takže typ proměnné se určuje až za běhu. Proměnnou je tedy možné definovat stejně jako v Javě, např. String text, ale i pomocí klíčového slova def, např. def text, kdy nespecifikujeme typ proměnné. Typ takto definované proměnné se může za běhu měnit. Když např. spustíme

    def text = 'text'
    println text.class
    text = 1
    println text.class
    
    dostaneme
    class java.lang.String
    class java.lang.Integer
    

    Jedna z věcí, jak se Groovy snaží urychli vývoj aplikací je automatické generování gettrů a settrů, které lze volat ve zkráceném tvaru class.xyz, místo class.getXyz(), např.:

    class Person{
        String name
    }
    
    p = new Person()
    p.name = "Petr"
    println p.name
    println p.getName()
    
    Jak vidno, class.getXyz() ale funguje také. Toto ale platí jen v prípadě že neuvedete modifikátor atributu. Pokud uvedeme private String name, gettry a settry se nebudou generovat (to samé v případě dalsích modifikátorů jako public). V souvisloti s automatickým generováním gettrů a settrů je vhodné zmínit další vlastnost Groovy (jen tak ve stručnosti, podrobněji příště) - Groovy ignoruje private modifikátory a dává vám přístup k atributům třídy jako by byly public. A to pochopitelne nejen u kódu napsaného v Groovy, ale i u toho napsaného v Javě (což nás ale nemusí tak moc pohoršovat, protože private jde obejít i Javě samotné).

    Pro usnadnění psaní Groovy dále nabízí možnost vynechat hromadu věcí, např.:

    Dále můžeme využít věcí jako vyhodnocování výrazů přímo v řetězcích: int i = 10; println "i je ${i}", nahrazení konstrukce if(p != null){p.name} konstrukcí p?.name, snadnější vytváření listů a map: def list = ["a","b","c"]; def map = [a:1,b:2,c:3], iterování jejich položkami: list.each{println it} a mnohé další.

    Toto byl ryhchlý úvod do Groovy. Příště se (asi) pokusím shrnou některé praktické věci typu jak nastavit class path, kombinovat kód napsaný v Jave a Groovy, provést build pomocí mavenu a pod.

    Literatura:
    [1] D. Konig et al., Groovy in action, Manning Publications (2007)
    [2] S. Dawis, Groovy Recipes, The Pragmatic Programmers (2008)

           

    Hodnocení: 80 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    4.4.2010 03:58 retroslava | skóre: 9 | blog: TryCatch | Žižkoff
    Rozbalit Rozbalit vše Re: Groovy I.
    V textu na začátku máš asi překlep - GIU.

    Jinak koukám že je to dost podobný Ruby, hlavně ten seznam na konci.
    Pozor! Jsem naprostý idiot. Co jsem napsal včera dnes už dávno neplatí. Zavazuji se, že budu diskutovat nezávazně.
    4.4.2010 08:38 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
    Rozbalit Rozbalit vše Re: Groovy I.
    opraveno, diky (i kdyz tech preklepu tam bude jeste asi jak maku)
    4.4.2010 11:16 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Groovy I.
    Jojo, též jsem si všiml :). Ale zas ruby prý běží pod javou též (jruby), takže bych spíš sáhl po něm, kdybych něco na jave zkoušel (jakože jsem se k ní bohužel jestě nedostal :()
    Baník pyčo!
    otasomil avatar 4.4.2010 08:25 otasomil | skóre: 39 | blog: puppylinux
    Rozbalit Rozbalit vše Re: Groovy I.

    S humorem bych napsal:

    Jste si jist, zda si pomuzete prechodem od krav k programovani ?

    Vzdyd naprosta vetsina programatorskych pocinu vznikla z dobre vule a konicku bez naroku na kus chleba (pardon, na hrnek mlika).

    Windows nejsou nejrozsirenejsi platformou proto, ze Microsoft je bajecny, dokonaly, nejlepsi ..... myslete si co chcete, ale proto, ze tisice nadsencu zaclo vytvaret aplikace pro ne a ty se jako free ci svobodne programy rozsirily do celeho sveta prostrednictvim internetu.

    Bez nadsencu (casto chudi lide) by windows byl pouhy bastl takrikajic k nicemu.

    Bez nadsencu bychom dnes v roce 2010 byly tak na urovni win 3.11.

    To stejne se tyka i OSS komunity - ta by bez nadsencu vubec nevznikla.

     

    Nevim jakym programatorskym pocinem si chcete pomoci od onech krav.

    K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
    4.4.2010 08:46 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
    Rozbalit Rozbalit vše Re: Groovy I.
    Jste si jist, zda si pomuzete prechodem od krav k programovani ?
    jisty si pochopitelne nejsu. Od nas z vesnice to jeste nikdo nezkusil, tak moc nevim, do ceho jdu... uvidime:-) Nicmene, delal jsi nekdy u krav a za minimalni mzdu? Me prijde, ze si moc pohorsit uz nejde.
    Vzdyd naprosta vetsina programatorskych pocinu vznikla z dobre vule a konicku bez naroku na kus chleba
    Mym cilem neni vytvorit nejaky zasadni pocin na poli programovani, kterym bych zanechal nesmazatelnou stopu v dejinach:-) Jen se chci stat jednim z mnoha programatoru prasicu, jakych jsou, jestli jsem dobre pochopil zdejsi obsacne diskuze na toto tema, vsu hromady. a jeslti mi to dobre pujde, tak se stat normalnim prumernym programatorem... nic vic, nic min.
    otasomil avatar 4.4.2010 10:56 otasomil | skóre: 39 | blog: puppylinux
    Rozbalit Rozbalit vše Re: Groovy I.

    Mozna je dobra kombinace dopoledne delat u krav a odpoledne programovat. Ze zacatku studijne a pozdeji melouchama.

    V praci si u krav odpocnete hlave a doma programovanim telu.

    K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
    4.4.2010 10:03 xavier | skóre: 10 | blog: borkovo
    Rozbalit Rozbalit vše Re: Groovy I.

    Do groovy jsem se taky pustil, protože po dlouhé době, jsem byl nucen dělat něco ve swingu. Hledal jsem něco v čem nemusím psát tolik zbytečného kódu a jako jasná volba vyšel swingbuilder z groovy. Oproti javě stačí napsat, tak třetinu kódu. Obecně už nikdy nebudu zkoušet psát GUI v něčem jiném než ve skriptovacím jazyce(ještě možná by šly formuláře v XML).

    K tomu prasení v groovy existuje dost konstrukcí, které dokážou solidně sprasit kód:

    podmíněná dereference foo?.bar() (proběhne pouze pokud není null), ternární operátor s vynechanou částí a ?: b (pokud platí a vrací a)

    a oblíbený s kolekcemi
    c = [1, 2, 3]; 
    c.remove(0) // smaže první prvek - remove(int index)
    c.remove(2) // smaže prvek s hodnotou 2 - remove(Object value)
    
    Pro ty kdo by se chtěli o groovy dozvědět víc, tady je video z přednášky CZJUG.
    Jakub Lucký avatar 4.4.2010 15:07 Jakub Lucký | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Groovy I.
    Ano, PHP jsem zkoušel, ale to je zatím asi nad moje chápání).
    To je jen dobře... O nic jste nepřišel...
    If you understand, things are just as they are; if you do not understand, things are just as they are.
    4.4.2010 15:30 retroslava | skóre: 9 | blog: TryCatch | Žižkoff
    Rozbalit Rozbalit vše Re: Groovy I.
    +1
    Pozor! Jsem naprostý idiot. Co jsem napsal včera dnes už dávno neplatí. Zavazuji se, že budu diskutovat nezávazně.
    4.4.2010 18:15 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Groovy I.
    Gratuluju k výborné volbě, programátor-prasič na platformě Java si dnes konečně může bez výčitek svědomí podat ruku s průměrnou prostitutkou, a to nejen platově! Já to dobře vím, jsa sám takovým javistou :-)

    K vnitřním třídám – od verze 1.7 podporovány jsou, čímž se ta největší odlišnost Javy od Groovy stírá. V tuhle chvíli vím jen o jediné věci, která může zapříčinit, že platný javovský kód není platným kódem v Groovy:
    Xxx xxx = new XxxBuilder()
        .withFoo(foo)
        .withBar(bar)
        .build();
    To je samozřejmě dáno možností vynechávat středníky a algoritmem pro parsování – tečky je holt potřeba uvádět na koncích řádků.

    V diskusi zaznělo slovo JRuby. Já mám na to takový názor: pokud máte programátory v Javě a potřebujete skriptovací jazyk, volte Groovy. Pokud máte programátory v Ruby a potřebujete rozumný výkon, volte JRuby :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    4.4.2010 18:23 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Groovy I.
    Ještě jednu věc bych dodal, protože už jsem se párkrát setkal s omylem (ale z přítomného textu si nejsem jistý, jestli je to i tenhle případ): není pravda, že Groovy lze kompilovat do javovského bajtkódu. Je naopak pravda, že Groovy se vždy kompiluje do javovského bajtkódu, který je posléze zaveden standardním mechanismem classloaderů (na classpath musí být běhová knihovna Groovy) a vykonán.

    A ještě bych upozornil na Groovy++, staticky to typované Groovy – i když bohužel ještě není úplně open-source :-(
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    11.4.2010 23:44 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Groovy I.
    Ano. Jen škoda, že je zatím Groovy tak pomalý.

    Já sám vkládám největší naděje do jazyka Scala. Syntaxe je ale dost jiná, to může projekt zabít.
    4.4.2010 21:20 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: Groovy I.
    ma praseni v groovy nejake vyraznejsi vyhody nez praseni treba v Jythonu?
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    4.4.2010 21:26 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
    Rozbalit Rozbalit vše Re: Groovy I.
    doufam, ze tato otazka byla zamerne smerovana na Ladicka, ktery tomu na rozdil ode me asi i rozumi. Sam nejsu (zatim:-) tuto otazku zodpovedet, muj laicky podhled je, ze vyraznejsi vyhody zde nejsou
    4.4.2010 21:28 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
    Rozbalit Rozbalit vše Re: Groovy I.
    tuto otazku zodpovedet
    tuto otazku schopen zodpovedet
    4.4.2010 21:40 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Groovy I.
    Jednu jo – Groovy je navržené speciálně jako skriptovací jazyk pro Javu, takže k tomu můžeš pustit javistu a on začne okamžitě bušit funkční kód jak je zvyklej. Má všechny javovské konstrukce včetně třeba generiků nebo anotací, přidává užitečné metody k běžným javovským třídám, existuje (prý funkční, nezkoušel jsem) způsob, jak překládat zdrojáky v Groovy a v Javě zároveň (ve skutečnosti na tři průchody, ale to je detail).

    Na druhou stranu tahle vlastnost může být i nevýhodou – kdesi jsem četl hezké porovnání Groovy a Ruby, ve kterém autor ukazoval, že Ruby jako zcela samostatně navržený jazyk může řešit některé problémy výrazně efektivněji, ale teď to nemůžu dohledat a už si z toho nic nepamatuju. Používám Groovy jako skriptovací jazyk pro naší javovskou aplikaci, a samostatné skripty píšu v Ruby :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    4.4.2010 21:21 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
    Rozbalit Rozbalit vše Re: Groovy I.
    Gratuluju k výborné volbě, programátor-prasič na platformě Java si dnes konečně může bez výčitek svědomí podat ruku s průměrnou prostitutkou
    nuze dobra, nejsu si ted jisty, jestli je to dobre nebo spatne, kazdopadne mam v zaloze jeste myslenku, ze si udelam rekvalifikaci na kuchare (jeste teda premyslim o elektrikari)
    K vnitřním třídám – od verze 1.7 podporovány jsou
    aha, diky za korekturu, pouzivam starsi verzi a na zmeny v 1.7 jsem byl liny se podivat. V zapisku jsem to opravil.

    Založit nové vláknoNahoru

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