Archiwum dla roku 2006

Java Developers Day, Kraków 2006

10.25.2006

Przede wszystkim niesamowita była pogoda, +18C, słoneczko, niesamowity był też dziki tłum turystów w Krakowie, niby po sezonie, a tam się wyroili wszelkiej maści anglicy, amerykanie, wycieczki szkolne z Rosji itp.

Ale do rzeczy. Organizator PROIDEA postanowił trochę poddusić uczestników i zadki im ujędrnić, bo upał był na sali wściekły, a część osób miała miejsca stojące lub siedzące na schodach.

Pierwszy wykład wygłosiła legenda, czyli Bruce Eckel. Duża trauma. Najpier pokazywanie przez 40 minut zdjęć z wakacji, ludzie się zaczeli nawet rozglądać, czy na dobrą imprezę trafili.

Podobno z tych zdjęć miało wynikać, że czasem można się pomylić i przez to projekt źle idzie. Po czym Bruce zasugerował, że to dobrze i tak ma być, trzeba się mylić jak najczęściej. Pokazał przy tym fotki jakiegoś totalnego ciołka, który zamiast kupić cegły sam je robił i się dziwił, że to dużo kosztuje i mu nie wychodzi, poza tym tresował kota, żeby mu na łeb wskakiwał. Tak, tak, to cały czas jest relacja z JDD.

Potem było jeszcze gorzej. Bruce zaczął z religinym zapałem nakłaniać wszystich do stosowania metod Agile, które tym się charakteryzują, że w wydaniu Agileistów do niczego się nie nadają.

Bruce jeszcze nie załapał, że klepanie kodu to nie jest najważniejsza rzecz na Świecie i że są ludzie, którzy mają głęboko w nosie to, że zgodnie z Agile najlepiej jest nie mieć specyfikacji produktu tudzież harmonogramu pracy. W końcu co użytkownika obchodzi, kiedy dostanie oprogramowanie?

Co do specyfikacji, to najwyraźniej Bruce nie pracował nigdy przy projekcie na tyle długim, żeby mu się w jego czasie zmienili członkowie zespołu, a nowe osoby musiały się przedzierać przez kilobajty kodu, żeby cokolwiek zrozumieć, zamiast w 2 dni przeczytać spec.

Najbardziej rozbrajające jest twierdzenie, że testy jednostkowe to jest właśnie specyfikacja. Niech Bruce pokaże jak zdefiniować funkcję sinus przy pomocy testu jednostkowego, a jak już to zrobi, to niech się zastanowi, po co się tak męczyć.

Najsmutniejsze jest to, że parę patentów z Agile jest ok, ale osobnicy, którzy je sprzedają w ideologicznym amoku są nie do zniesienia, pomijając zwyczajną chciwość i wkręcanie klientów w bezsensowne konsultacje z extreme programming.

Zawsze jak widzę konsultanta Agile, to mam wrażenie, że zaraz wyciągnie garnki Zeptera albo słynny odkurzacz za 8 tysięcy, co to niby likwiduje te straszne roztocza pokazywane w 1000 krotnym powiększeniu.

Te roztocze to projekt bez edżajla.

Reszta wykładów była całkiem przyzwoita, gdzieś przeczytałem, że komuś nie podobał się wykład p. Przemysława Pokrywki. Mi się akurat bardzo podobał, ludzie zrobili coś konkretnego, w niegłupi sposób.

Swoją drogą szkoda, że Bruce nie mógł być na tym wykładzie, zobaczył by przykład, w którym język “silnie typowany” powoduje, że dane zagadnienie oprogramowuje się dużo łatwiej i szybciej niż w języku bez typowania.

Jak ktoś nie wie, to przypominam, że Bruce twierdzi, że programista Pythona jest 10 razy wydajnieszy niż programista Java, a poza tym Python opanuje Świat – no może tak twierdził na JDD w 2002 roku w Warszawie. Ponieważ Python nie opanował Świata, to teraz Bruce twierdzi, że może Ruby-iemu się uda.

To nieco przypomina działania Świadków Jehowy, którzy przewidywali koniec Świata na 1987, a jak się Świat nie skończył to przełożyli to zdarzenie na okolice 2030.

Na wykładzie o Acegi Security for Spring miałem wrażenie, że ludzie próbują odkryć na nowo bezpieczeństwo w J2EE i napisać to samodzielnie. Jak standardowa polityka bezpieczeństwa komuś nie wystarcza (zdarza się to, nie da się ukryć), to można przecież napisać odpowiednie rozszerzenie dla serwera aplikacji, JBoss coś takiego wspiera.

Jak ktoś ma doświadczenia w kwestii Acegi kontra standardowa autoryzacja & uwierzytelnianie w J2EE (pardon Java EE), to chętnie się dowiem.

Człowiek, który mówił o TestNG nie powiedział o jednej fajnej rzeczy, możliwości wykonywania testów jednocześnie, ale reszta była bardzo ok.

Wpis umieszczony na portalu JDN [link]

Wszystko Evil

09.22.2006

Pojawił się kolejny artykuł Allena Holuba z serii “Coś tam coś tam is Evli”

Na pierwszy ogień poszło dziedziczenie (Why extends is Evli), potem stosowanie akcesorów i mutatorów, czyli getterów i setterów ( Why getter and setter methods are evil). Teraz przyszedł czas na XML-a Just Say No to XML.

Holub pisze, że do przechowywania danych to jeszcze wolno używać XML-a, nie wolno go za to używać jako “język programowania” (he, he).

Na przykład nie wolno XML-a używać jako języka skryptowego, tak jak w ANT-cie. Jako języka opisu testów (jak w TestNG) albo do definicji encji (jak w Hibernacie). Nie wiem dlaczego Holub uważa, że w którymkolwiek z tych zastosowań XML jest używany jako język programowania. Co ma u diabła konfiguracja TestNG, mówiąca, że ma być wykonywany w ramach zestawu testów X test z klasy Y z językiem programowania?

Najzabawniejsze jest to, że temat artykułu sugerowany w tytule zostaje porzucony już w 2 akapicie na rzecz ordynarnej reklamy jakiejś książki o pisaniu kompilatorów (zacne zajęcie, skąd innąd).

Teza jest taka, że ci wszyscy, którzy używają XML-a robią to, bo są ciemni oraz leniwi i nie potrafią na swoje potrzeby utworzyć języka programowania, napisać do niego kompilatora albo chociaż interpretera i tego używać zamiast przeklętego XML-a.

Doskonały pomysł, marzę o tym, żeby do każdego z wymienionych narzędzi był oddzielny język programowania, którego składni by się trzeba nauczyć (najlepiej, żeby była taka jak w LISP-ie ;)). Wtedy mógłbym zająć się spokojnie robieniem notatek: używam TestNG, linie kodu trzeba zakończyć średnikiem; używam ANT-a, linię kodu kończę przecinkiem; używam Hibernate, muszę pamiętać o wcięciach w kodzie, itd. itp. Po prostu bajka.

Tak to wygląda, że Autor jest raczej teoretykiem programowania niż praktykiem i nie czuje, co w trawie piszczy.

Wpis umieszczony na portalu JDN [link]

Scooby Ruby do (on Rails) kontra Java

05.27.2006

Najpierw będzie przydługi wstęp, w którym popastwię się nad Rubim, a na końcu będzie interesujące porównanie wydajności czasu tworzenia aplikacji w Javie i Rubim na Rejlasach.

Ostatnio sporo szumu pojawiło się w związku z językiem programowania Ruby, a zwłaszcza frejmłorkiem do tworzenia dynamicznych stron WWW Ruby on Rails. Przypomina to bardzo przedostatni szum związany z językiem Python i serwerem Zope – te ostatnie dwie technologie jakoś popadły w niełaskę ostatnio u “trend seterów”.

Przyjrzałem się ciepło Rubiemu, bardzo przyjemny język, bardzo obiektowy i można w nim bardzo dziki kod tworzyć. Na przykład dodawanie 2 + 3 można zapisać w postaci 2.+(3) itp. sztuczki. Kod można pisać w dowolnie niedbały sposób, co ma swoje wady i zalety.

Tak na serio, Ruby jest na prawdę fajny, tylko co z tego.

Grzebiąc w sieci na jego temat (zwłaszcza Ruby on Rails) znalazłem to . I własnym oczom nie mogłem uwierzyć. Tam jest napisane: “Please note that right now Rails basically knows nothing about Unicode and pretends everything is just bytes”. Co? Cooo? Ten ficzer Rubiego faktycznie znakomicie ułatwia tworzenie aplikacji, które mają pecha i używają czegoś więcej niż US-ASCII.

Zwolennicy Rubiego, np. Bruce Tate, autor książki “Beyond Java” twierdzą, że podstawową zaletą Rubiego i Ruby on Rails jest dziesięciokrotne przyspieszenie czasu tworzenia aplikacji w stosunku do Javy.

10 razy robi wrażenie.

Jest nawet w sieci tutorial pokazujący jak szybko można w Rubym on Rails utworzyć aplikację WWW opartą o bazę danych z szybkością 10. Przetrawiłem ten tutorial i rzeczywiście, jedna godzina i prosta aplikacja dodająca i modyfikująca dane w bazie jest gotowa.

Tyle, że to samo w Javie można zrobić szybciej i przyjemniej, nie tracąc tego wszystkiego, co nam daje technologia Java EE: deklarowalną politykę bezpieczeństwa, deklarowalną transakcyjność, komponenty EJB, z którymi może rozmawiać klient GUI i wiele innych. Potrzebujemy do tego Netbeans 5.5 (narazie jest beta) i to w zasadzie wszystko. Demo we flashu jest tutaj.

Parę kliknięć i prosty CRUD w EJB 3.0 i JSF jest gotowy.

Wpis umieszczony na portalu JDN [link]

AJAX bije rekordy

05.16.2006

No newsa przeczytałem niesamowitego. AJAX, czyli Asynchronous JavaScript and XML, a nie płyn do mycia sedesu, pobił rekord. Jak napisali ludzie z ajaxian.com jest już 134 frameworków do AJAX-a. Pobili nawet liczbę frameworków do tworzenia aplikacji WWW w Javie!!!

Oznacza to zdaje się jedno, przy pomocy AJAX-a naprawdę trudno jest napisać coś działającego. Nawet Yahoo nie dało rady i ich nowa strona (yahoo.com/preview) nie działa poprawnie pod Operą i Safari (tak piszą na forach).

Najzabawniejsze jest to, że niektórzy po wielkich mękach potrafią napisać aplikację, która jest dość słabą namiastką aplikacji GUI, zamiast to zrobić w jedyny słuszny sposób, czyli appletem Javy.

Warto porównać sobie funkcjonalność i wygląd napisanego w AJAX-ie writely.com i napisanej w Javie aplikacji biurowej ThinkFree (http://www.thinkfree.com).

Nie da się jednak ukryć, że sortowanie tabelek po wybranej kolumnie lepiej jest zrobić AJAX-em zamiast przeładowywać od nowa całą stronę. Po małej szarpaninie działa coś takiego w prawie wszystkich przeglądarkach. To tak dla osłody dla fanów AJAX-a.

Wpis umieszczony na portalu JDN [link]

Nowy powiew od Słońca: EJB 3.0

03.27.2006

Moja prezentacja EJB 3.0 na konferencji Gigacon 2006

Krótkie streszczenie wykładu…
Czytaj resztę wpisu »