tag:blogger.com,1999:blog-20941681.post7848930388297210079..comments2024-02-13T18:09:44.121+01:00Comments on Jacek Laskowski scala jawnie: Groovy przez pryzmat makr OpenOffice.orgAnonymoushttp://www.blogger.com/profile/09734540973692423017noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-20941681.post-34705471397580898212009-05-04T14:48:00.000+02:002009-05-04T14:48:00.000+02:00Z technologiami web w Java to tak jak z kołkami ro...Z technologiami web w Java to tak jak z kołkami rozporowymi, ludzie myślą że jest tylko jeden rodzaj. Ok, może są lepsze i gorsze... Potem się dziwią czemu kołek do pustaków nie trzyma się w karton-gipsie, a do betonu w pustakach. Nie różnią się wiele z wyglądu, ale różnica w efektywności może przyprawić o ból głowy ;)<br /><br />Zresztą różnice między GWT, Wicket i JSF też są spore. GWT pozawala na zmniejszenie przesyłanych danych, korzystanie z czystej Java i daje AJAX. Traci się kontrole nad wyjściem, współpracę z projektantami itp. W JSF trzeba nauczyć się nowego "języka", inaczej działa AJAX i również traci się trochę kontroli nad wyjściem ale ma się ją w jakimś stopni, ale jak bardzo trzeba to można dogadać się z projektantami (co pewnie się kończy korzystaniem z Facelets albo Shale\Clay). JSF dodatkowo obsługuje różne wyjścia (w teorii, bo w praktyce to widziałem tylko Oracle co jest w stanie wypluwać wyjście na konsole/telnet i Seam co renderuje np. maile). JSF wspiera workflow natywnie, a z zabawkami jeszcze lepiej, ale wymusza korzystanie z POST. Wicket daje kontrole nad html, świetny sposób na budowę komponentów, silną kontrole nad logiką bo ta jest w Java itp. <br /><br />Reasumując różnice są spore :)<br /><br />Szkoda że uczelnie i szkolenia mają tendencje pokazywać budowę kołka, ale przeważnie tylko jednego kołka. I tak dobrze jeśli pokażą jaki do jakiego problemu kołek został stworzony, ale wtedy już nie pokazują zakresu w jakim się nie sprawdza...<br /><br />Pozdrawiam,<br />Krzysztof KowalczykKrzysiekhttps://www.blogger.com/profile/03930625629870670860noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-61089695977923403252009-05-02T10:23:00.000+02:002009-05-02T10:23:00.000+02:00Zły?! Chyba żartujesz. Tylko pokazuje, że brakuje ...Zły?! Chyba żartujesz. Tylko pokazuje, że brakuje takiego miejsca na dyskusje, prowokowane przez wpisy na blogu :)<br /><br />Zastanawiałem się trochę nad tym porównywaniem i faktycznie widzę, że niektóre rozwiązania (szkielety aplikacyjne) nie przystają do siebie, np. Seam jest bardziej obszerny niż Wicket czy GWT. Seam jest na pograniczu "wymagany serwer aplikacyjny Java EE"-"serwer niekonieczny". GWT to szkielet webowy, podobnie Wicket, podczas gdy Seam to szkielet aplikacyjny korzystający z EJB3+JSF. Grails podobnie jak Seam to szkielet aplikacyjny oparty na Spring+Hibrnate. Porównanie Seam vs Grails jest dopasowane w każdym calu - Seam to szkielet aplikacyjny z EJB3+JSF, a Grails z Spring+Hibernate. To są bardzo podobne rozwiązania. Ciekawe, czy to samo można powiedzieć o RoR i Django. Chyba tak, ale nie mam doświadczenia, aby być chociażby w 75% pewien.<br /><br />Bardzo kształcący wątek! Oby tak dalej :)Anonymoushttps://www.blogger.com/profile/09734540973692423017noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-23870529458253152872009-05-02T01:36:00.000+02:002009-05-02T01:36:00.000+02:00Jeśli mam coś porównać, zawsze kojarzy mi się przy...Jeśli mam coś porównać, zawsze kojarzy mi się przy okazji "Feature model" Czarneckiego. Podejrzewam, że dało by się zastosować go do klasyfikacji filozofii webframeworków, jak i ich zakresu. Na takim modelu fajnie było by widać skąd taki wybór frameworków. Przykład zastosowania tutaj (ostrzegam, dużo model driven *): http://www.swen.uwaterloo.ca/~kczarnec/ECE750T7/czarnecki_helsen.pdf<br />Lepszy przykład był w artykule http://portal.acm.org/citation.cfm?id=1165106 ale nie wiem czy masz dostęp.<br /><br />Nie wiem czy da się sensowny model stworzyć dla webframeworków, musiałbym spróbować zrobić by to stwierdzić ;) Mimo to polecam bo dobry model nie jest zły i nawet jeśli nie użyjesz to pokazuje pewne podejście.<br /><br />ps. mam nadzieje, że "właściciel bloga" nie jest zły z powodu offtopic<br /><br />Pozdrawiam, <br />Krzysztof KowalczykKrzysiekhttps://www.blogger.com/profile/03930625629870670860noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-40041278974774711402009-05-01T14:27:00.000+02:002009-05-01T14:27:00.000+02:00@Krzysiek
Dzięki za podpowiedzi. Też myślałem o JS...@Krzysiek<br />Dzięki za podpowiedzi. Też myślałem o JSF i GWT, a Twoja sugestia utwierdziła mnie w przekonaniu, że to może być dobry kierunek.<br /><br />A dlaczego Wicket? Bo chyba się zakochałem ;) Po kiepskich wrażeniach z Tapestry 5, przejście na Wicketa było bardzo orzeźwiające :) Również artykuły właściciela bloga, na którym sobie tak bezczelnie offtopujemy, odegrały swoją rolę :) Inna sprawa, że podczas pisania średniego projektu okazywało się, że wymagania klienta, o których początkowo myślałem, że będą trudne do wykonania, faktycznie są za pomocą Wicketa łatwe do osiągnięcia.<br /><br />A co do sposobu porównania to mam kilka pomysłów. Między innymi, tak jak napisał Jacek: "np. uwierzytelnianie, warunkowe bezpieczeństwo, pobieranie danych z bazy, wiele zakładek, ładne URLe, captcha, ajax". Dodatkowo jakiś czas temu wpadł mi w ręce artykuł o analizie frameworków pod kątem wydajności (JMeter) oraz pamięciożerności i myślę, że taki kierunek też byłby wart wzięcia pod uwagę.<br />Póki co kończę tworzenie wspólnej warstwy (dao + logika) i zaczynam aplikację w Wicket :)Tomasz Dziurkohttps://www.blogger.com/profile/12358627841270423332noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-23354733472528588022009-05-01T01:57:00.000+02:002009-05-01T01:57:00.000+02:00@Tomasz
Rozważyłbym rozważenie
- JSF z Facelates ...@Tomasz<br />Rozważyłbym rozważenie<br /><br />- JSF z Facelates np. RichFaces - przykład podejścia komponentowego. Do samego poprawiania JSF jest kilka dodatkowych frameworków. JSF to standard i enterprise-friendly, ale sam standard to "pomyłka" stąd minimum facelets. ewentualnie JSF w wersji z Seam. <br /><br />- GWT - jako specyficzna filozofia - przykład silnie Javowego podejścia - enterprise-friendly<br /><br />- jakiś przykład MVC mniej zorientowany na kod Java niż Wicket np. Spring MVC<br /><br />Hm, Seam mozna wykorzystac z JSF, Wicket i GWT ;)<br /><br />Jeszcze rozważyłbym Stripes dlatego, że mniej modne ;)<br /><br />Koniecznie JSF i koniecznie GWT. Swoją drogą czemu Wicket?<br /><br />Jeśli uczelnia wymaga tak jak u mnie jakiegoś wkładu pisanego zwanego teorią, to potrzebny będzie model oceny lub nawet model jakości do porównania tych pomarańczy. Dorzucenie wtedy Grails albo RoR itp. polecam poważnie przemyśleć bo to porównywanie pomarańczy z jabłonią i wiśnią (a nie z jabłkami i wiśniami !). Da się zrobić ale zasady porównania trzeba poważnie przemyśleć.Krzysiekhttps://www.blogger.com/profile/03930625629870670860noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-63080158321915113472009-04-30T20:43:00.001+02:002009-04-30T20:43:00.001+02:00Ten komentarz został usunięty przez autora.Tomasz Dziurkohttps://www.blogger.com/profile/12358627841270423332noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-5973425197286224912009-04-30T20:43:00.000+02:002009-04-30T20:43:00.000+02:00@Krzysiek
Aktualnie plan magisterki to porównanie ...@Krzysiek<br />Aktualnie plan magisterki to porównanie frameworków frontendowych w postaci: JPA (Hibernate) + Spring jako wspólna podstawa, a na froncie: Wicket i 2-3 inne frameworki do porównań. Waham się ciągle z wyborem pozostałych, bo zależałoby mi na dwóch rzeczach: porównaniu kilku różnych filozofii i dodatkowo na poznaniu technologii, które na rynku pracy nie pojawiają się tylko sporadycznie :)<br /><br />A co do sensowności porównania Wicket z Grails to myślę, że w miarę ok byłoby porównanie Wicket z JPA i Spring, Groovy/Grails z przyległościami oraz jeszcze czegoś odmiennego: RoR, a może wspomniana Scala z Lift, choć tutaj zaczynam się już zapuszczać w zupełnie nieznane mi obszary :)<br /><br />Ogólnie takie porównanie technologii webowych w przekroju bez ograniczania się tylko do tych javowych wydaje się bardzo ciekawym tematem na magisterkę, tylko nie wiem czy z braku czasu (praca, studia, dziewczyna) nie pozostanę przy wersji z frameworkami tylko z javowego poletka :)Tomasz Dziurkohttps://www.blogger.com/profile/12358627841270423332noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-32441326967978626212009-04-30T10:07:00.000+02:002009-04-30T10:07:00.000+02:00W Lift nie wnikałem, ale Scala = statyczna typizac...W Lift nie wnikałem, ale Scala = statyczna typizacja + odgadywanie typów + styl funkcyjny. Scala jest egzotyczna, bo jest dużo bardziej funkcyjna niż Groovy. Groovy pozwala na styl funkcyjny, Scala go trochę narzuca. Nie wiem czy kojarzysz operacje jak filter, map, foldLeft, reduceLeft. Podejrzewam, że jak ktoś korzysta ze Scala to je kojarzy :)<br /><br />Kod wygląda jak w językach dynamicznych, ale jest statycznie typowany, więc po prostu musi być szybszy (w ramach aktualnej wiedzy o językach). Szybkość Scala jest porównywalna z Java, tak jak Ocaml jest porównywalny z C++. No i statyczna typizacja oznacza łatwiejszą refaktoryzacje, lepsze narzędzia, mniej testów itp.<br /><br />Silne skupienie na podejściu funkcyjnym i preferowanie zmiennych które są stałe ma ułatwiać wielowątkowość.<br /><br />Jeszcze elastyczna składnia i lubiany przeze mnie pattern matching (choć w Ocaml jest ładniejszy).<br /><br />To powiedziawszy Scala nie jest przeze mnie używana, a Groovy tak. Groovy ma minimalną krzywą nauki. Korzysta się z tego, z czego się chce korzystać. Jak się zna podstawowe paradygmaty z innych języków to można się konstrukcji domyśleć. Scala zmienia bardzo dużo podstaw.<br /><br />http://tinyurl.com/dcfm4c<br /><br />Pozdrawiam,<br />Krzysztof KowalczykKrzysiekhttps://www.blogger.com/profile/03930625629870670860noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-81464493885771214482009-04-30T08:52:00.000+02:002009-04-30T08:52:00.000+02:00Co Wy tak z tą Scalą i Liftem?! To zaczyna angażow...Co Wy tak z tą Scalą i Liftem?! To zaczyna angażować coraz więcej ludzi. Ciekawy materiał na bloga. Może ktoś się od nas skusi (nas = polskich bloggerów). Byłoby wspaniale! A może pora zajrzeć w stronę Ruby, aby porównać RoR z rozwiązaniami javowymi - w końcu nauka Ruby to nowy język, ale zawsze można wrócić na jvm z jruby, więc nie tak daleko, a całkowicie nowe. Scala wciąż wydaje się być dla mnie egzotycznym rozwiązaniem.<br /><br />Jeśli potrzebujesz dobrej książki do Groovy/Grails, napisz do mnie. Wyślę je do Ciebie. Mam kilka w pdfie, więc nawet nie potrzeba poczty "analogowej" angażować.Anonymoushttps://www.blogger.com/profile/09734540973692423017noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-77335470490450445662009-04-30T03:09:00.000+02:002009-04-30T03:09:00.000+02:00@Tomasz
Porównanie Grails i frameworków frontendow...@Tomasz<br />Porównanie Grails i frameworków frontendowych nie przekonuje mnie. Grails to pełny framework integraycjny. Front end to kawałek. Grails ma pluginy do Flex, Spring MVC, Wicket, GWT... <br /><br />Już bardziej przemawiało by do mnie porównanie między Seam a Grails, jak i Lift, Rails, Django itp. Czyli kompletnymi frameworkami.<br /><br />Porównanie samych frontendów może być ciekawe, bardzo różne jak i podobne podejścia, każde pociąga ze sobą wady i zalety. Poza samą dojrzałością konkretnej technologii jest jeszcze jej teoretyczny potencjał.<br /><br />@Jacek<br />Jak używam Groovy? Skryptowo. Posprzątać, pozamiatać, zrobić mały skrypcik. Podobało mi się ostatnio jak parę dni temu uczelnia zorganizowała karaoke dla erasmusów, ale nie wydrukowała listy piosenek, a te są trzymane gdzieś w hierarchii na dysku. Java na komputerze była więc wystarczyło jeden zip ściągnąć, trochę magii,... I od razu formalności na uczelni szybciej mi się załatwia ;)<br /><br />Ponad połowa studentów to informatycy byli, jednak Groovy to czysta magia w odpowiednich przykładach.<br /><br />Mnie na początku w Groovy rozbroiło najbardziej:<br /><br />def f = new File("plik.txt")<br />println f.text<br /><br />Niestety zawiodła mnie tu księgarnia i z 4 książek, które chciałem kupić dotarła tylko jedna (EMF), więc Grails czeka do obrony magisterki lub do czasu dorwania dobrej książki.<br /><br />Jeszcze do Scali mnie ciągnie, bo statyczna typizacja, silniejszy styl funkcyjny.<br /><br />Pozdrawiam,<br />KrzysiekKrzysiekhttps://www.blogger.com/profile/03930625629870670860noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-15518120729418192282009-04-30T00:18:00.000+02:002009-04-30T00:18:00.000+02:00A może jeszcze język Scala i framework Lift można ...A może jeszcze język Scala i framework Lift można dorzucić do takiego porównania? :)Marcin Łępickihttps://www.blogger.com/profile/14830812365177330134noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-46246566571887505092009-04-29T20:31:00.000+02:002009-04-29T20:31:00.000+02:00Tomek, obowiązkowo zajmij się Grailsami para-nauko...Tomek, obowiązkowo zajmij się Grailsami para-naukowo, a na pewno nie pożałujesz. Brakuje takiego rzeczowego i poukładanego spojrzenia na Grails/Groovy vs Wicket vs Django vs RoR. Jak starczyłoby Ci pary dodałbym jeszcze JBoss Seam i GWT, bo widać, z ankiety, że one rządzą. Chętnie pomogę, gdzie będzie to możliwe. Należałoby ustawić porównanie z poziomu realizowania przez nie podstawowych funkcjonalności w aplikacjach webowych, np. uwierzytelnianie, warunkowe bezpieczeństwo, pobieranie danych z bazy, wiele zakładek, ładne URLe, captcha, ajax i pewnie kilka innych. Najlepiej wysłać zapytanie o podstawowe cechy na pl.comp.lang.java i do dzieła!Anonymoushttps://www.blogger.com/profile/09734540973692423017noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-82851748002040603502009-04-29T19:27:00.000+02:002009-04-29T19:27:00.000+02:00Cała seria o Groovym i Grailsach bardzo ciekawa, a...Cała seria o Groovym i Grailsach bardzo ciekawa, a z każdym Twoim postem zaczynam się coraz bardziej zastanawiać nad lekką zmianą tematu magisterki, z porównania Javowych frameworków front-endowych na porównanie Wicketa z Groovy/Grails i czymś jeszcze, może Django, może Railsy :)Tomasz Dziurkohttps://www.blogger.com/profile/12358627841270423332noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-16795095150167574442009-04-29T09:30:00.000+02:002009-04-29T09:30:00.000+02:00Ciekawe, ciekawe. Jedyny znany mi teraz problem, t...Ciekawe, ciekawe. Jedyny znany mi teraz problem, to Groovy 1.5.6 w G4OOo zamiast 1.6. Ciekawe rzeczy można wyczyniać w Groovy. Do czego go używasz?Anonymoushttps://www.blogger.com/profile/09734540973692423017noreply@blogger.comtag:blogger.com,1999:blog-20941681.post-28127814700040522112009-04-29T02:21:00.000+02:002009-04-29T02:21:00.000+02:00Nie jest to mixin.
Groovy wspiera mixins na dwa s...Nie jest to mixin.<br /><br />Groovy wspiera mixins na dwa sposoby, więc Twój kod można przepisać bez używania "use" :)<br /><br /><br />http://www.infoq.com/articles/groovy-1-6<br />Tu są opisane dwa sposoby (@Mixin i Runtime mixins) opisane wraz z @Category ułatwiająca jeszcze bardziej tworzenie kategorii.<br /><br />Pozdrawiam,<br />Krzysztof KowalczykKrzysiekhttps://www.blogger.com/profile/03930625629870670860noreply@blogger.com